My recommendations would be the same for regardless of the frameworks involved (Scrum, waterfall, hybrid, etc.) - break it up.
- As you say, several parts of the work can happen independently but they need to be coordinate at the API level.
- So, have the architect/big-picture/astronaut types get together at the start of project and have them start to work on the API specs.
- The backend teams and the individual app teams can probably get started right after the first draft is published
- The API team needs to meet, discuss, and publish changes in the API regularly as the project moves forward because their functional specifications will guide the other teams.
You can call this something like "build the framework first", I suppose, but I always imagine it as building a contract between different groups. For example, "per my spec, the back-end groups agrees that when I ask for DataXYZ type data, I get it in UTF-8 format with date time stamps of YYYYMMDD in GMT time and ..." and the reverse "When I submit a new DataXYZ, it will be in UTF-8..." This allows things to mesh later. Defining these kinds of things up front saves rework.
However, is should not all be defined up-front. Defining these contracts between groups should happen iteratively and have regular revisions. You may not get the results you want if you held up the whole project waiting for a massively detailed specification.
This is based of two of my regular influences: Painless Functional Specifications by Joel Spolsky and the book Business @ the Speed of Stupid. In fact, one of the case studies in the book closely matches your situation. Unfortunately, I can't find much in the PMBoK or other guides that would backup my approach. It has worked for me, though.