If you do an http request to another domain, you lose the Sitecore Context Language, putting the language in the url is a way to keep the language.
Registering a custom language is indeed possible on your desktop, but what about Azure PaaS? perhaps you can avoid it to create a custom language?
In code you can easly switch the language do it:
with the LanguageSwitcher
using (new Sitecore.Globalization.LanguageSwitcher("en-foo"))
myItem = myItem.Database.GetItem(myItem.ID);
or just getting an specific language for an item laubplusco.net/.../
What kind or api endpoint are you using?