Text, images, video, speech, transcription and music with vocals - behind one base_url and one Bearer key. Chat is OpenAI-compatible: swap the base_url and the client you already wrote keeps working.
Chat in the OpenAI format. The model is picked by one line in the model field.
/chat/completionsGenerate pictures and edit them from references. Its own wallet, the very same key.
/media/generateClips from a prompt or from frames. Async start: you get a job_id and collect the file.
/media/generateText to speech. ElevenLabs and MiniMax voice engines under the same key.
/media/generateSpeech to text with a timing for every word - ready for subtitles.
/audio/transcriptionsTracks from a description - songs with vocals, not just instrumentals.
/media/generateChat is OpenAI-compatible. Change base_url and the key - chat.completions and response parsing keep working as before. No forks, no wrappers.
Charges happen on the fact, once the result is ready. Every kind of work has its own wallet of credits, and when they run out the shared balance is spent. Order failed or ran out of time - nothing charged.
If a route goes down, the router tries the fallbacks itself and retries the order within its deadline. You do not touch the client, you write no manual retries, you do not pay for the failure.
Same SDK, same response parsing, same request fields.
base_url = "https://api.<your-old-gateway>/v1"base_url = "https://api.brorouter.com/v1"api_key = "tba-YOUR_KEY"the rest of the code stays: chat.completions, messages, response parsing - as they wereOne base_url, one Bearer key, familiar endpoints.
Dozens of models across six kinds of work - in one catalog.
Pay on the fact, a wallet of credits for every kind of work.
You send a request, BroRouter picks the route itself, watches the job and brings back the file. Start with the model catalog, or go straight to the API reference.