I prefer to define my API schema contract first.
I do this by using something like json-server to create a "fake API" endpoint. I can then use these mocked out endpoints to build my front-end.
I find that building the front-end often leads me to think about what data I need to display and that lends itself to updating the mock, and then, in turn, informs what's required when building the backend.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.