Agentic Setup
Create and configure an AllModels account for an agent.
You need the email address of the account owner. If they do not already have an AllModels account, the signup flow creates one. If they do, it grants access to their existing account.
Create or access an account
Request a verification code for the owner's email:
curl https://api.allmodels.io/account/agent-signup \
-H "Content-Type: application/json" \
-d '{"email":"owner@example.com"}'Ask the owner for the six-digit code sent to their email, then exchange it within five minutes:
curl https://api.allmodels.io/account/agent-signup/verify \
-H "Content-Type: application/json" \
-d '{"email":"owner@example.com","code":"123456"}'The response contains the account's API key.
Save the API key
Save the key within the agent's security framework, such as its secret store or protected environment configuration. Never expose it in prompts, chat, logs, or source control.
Configure the matching AllModels base URL:
| Adapter | Secret name | Base URL |
|---|---|---|
| ElevenLabs-compatible | ELEVENLABS_API_KEY | https://api.allmodels.io/el |
| OpenAI-compatible voice tools | VOICE_TOOLS_OPENAI_KEY or the agent's documented variable | https://api.allmodels.io/oai |
Optional: request paid credits
Every account starts with free credits. Advanced models require paid credits; if the account has no paid credits, configure the agent to use free models only.
To add paid credits, create a payment link and send the returned url to the owner. Do not ask for payment details:
curl https://api.allmodels.io/account/top-up-link \
-H "Authorization: Bearer $ALLMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount_usd":50}'The amount must be between $5 and $1,000.
Discover models and voices
Fetch the live catalogs instead of guessing IDs:
curl https://api.allmodels.io/v1/models
curl "https://api.allmodels.io/v1/voices?q=warm+narrator&include_facets=true"/v1/models separates tts and stt models. Check the selected providers[] entry:
| Field | Meaning |
|---|---|
streaming: true | Supports incremental audio or transcripts for live conversations. |
synchronous: true | Supports one complete generated-audio or file-transcription response. |
batch: true | The STT provider queues a synchronous file request internally. |
Both discovery endpoints are public. /v1/voices returns model-scoped entries shaped as { model, voice, providers }; use voices[].voice.id exactly as returned and inspect voices[].providers for routes that offer it on voices[].model. Use its search, filters, facets, timestamps, and cursor pagination to help the user choose rather than guessing from IDs.
Verify the setup
- Confirm
GET /account/balancesucceeds with the saved key. - Confirm the selected model supports the required request mode.
- Prefer a catalogue voice offered by the selected provider and model. If the user supplies an unlisted private or generated voice ID, pass it through—the upstream provider validates it.
- Make one short request and ensure the API key does not appear in logs.
See the models guide, voices guide, and account API reference.
