I'd like to obtain an API key on behalf of a client app (internal client) before their APIs have been provisioned from the Portal.
The current setup allows you to add a new application, but it forces you to choose APIs as part of the flow. Is it possible to set up a client without selecting APIs so that API keys can be generated and distributed?
As you've discovered, you can't get an API Key without an application being registered, and you can't register an application without having at least 1 API associated with it. The only workaround I can think of would be to have a "temporary" API that you use purely as a placeholder to use for application registration, just to get the API Key. Then, whenever the "real" APIs are deployed, you would then be able to edit the applications and associate all the "real" APIs that are required, and remove the association with the "temporary" API. This will allow you to receive an API Key ahead of time, and then have it associated with the intended APIs when the time arises.
The "temporary" API would still need to be a valid service on the Gateway and Portal for it to be visible and usable for this purpose. However, the service can simply have a policy with a return template response, so that it's not very useful if it's actually consumed.Alternatively, if you'd prefer this to be possible without this workaround, you can post an idea in the communities to request this functionality.
That is the approach that I ended up with of as a workaround.
I'll drop the request in the idea space.