agent_id from your server, a browser, or a phone call.
Configure once, deploy anywhere. You can also configure an agent inline at connect-time over the WebSocket via
session.update, which is handy for one-off or fully dynamic agents. But for anything you reuse, a stored agent is simpler: the config lives on the server, secrets stay off the client, and HTTP tools run server-side.Create an agent
POST https://agents.assemblyai.com/v1/agents with your API key in the Authorization header. Only name, system_prompt, and voice are required:
id, which is what you deploy with:
agent_id over the WebSocket, from a browser, or on a phone number.
A complete agent
An agent is one JSON object. Here’s every field in a single create call — copy it and delete what you don’t need. Onlyname, system_prompt, and voice are required; everything else has a sensible default. Use Python or Node to skip cURL’s quote-escaping when you edit longer fields like system_prompt:
input/output use PCM at 24 kHz, tools and llm are empty (managed model), and greeting is none (the agent listens first). Go deeper on each field:
system_prompt— Prompting guidevoice/output.volume— Voices, Volumegreeting— Greetinginput/output.format— Audio encodinginput.turn_detection— Turn detectioninput.keyterms— Keytermstools— Toolsllm— Connect your own LLM
Manage and deploy
- Update with
PUT /v1/agents/{id}(send only the fields that change); also list, retrieve, and delete. See the Manage agents reference. - Deploy by
agent_idover the API, a browser, or a phone number. See Deploy your agent.
Next steps
Add tools
Server-side HTTP tools and client-side function tools.
Deploy your agent
Connect by
agent_id over the API, a browser, or a phone number.Prompting guide
Write system prompts that sound human and follow instructions.
Manage agents (REST)
Every endpoint, field, and validation rule.