POST /calls/inline takes the whole agent configuration in the request body.
Nothing is stored, nothing is reused. Use it when the persona is decided at call
time.
When this is the right choice
- Per-user personas — the prompt is assembled from that user’s data
- Generated agents — your product builds the configuration on the fly
- Testing — try a prompt without creating a record you then have to clean up
- Stateless architectures — you hold the config, we hold nothing
Creating one
systemPrompt, voice, language. The response carries
websocketUrl, exactly as /calls/create does.
Every option
systemPrompt here is the whole prompt. There is no basePrompt /
context / customInstructions layering — that assembly belongs to saved
agents. See Writing agent prompts for what the layered
version produces, if you want to reproduce its structure by hand.From the SDK
joinCall takes inline options directly:
Tools
Inline calls acceptselectedTools in the request. Each entry references one
of three things, and exactly one of them:
What you give up
Calls themselves are still recorded and billed identically, and still appear in
GET /calls.
Saved agents
When configuration should persist.
Tools
What
temporaryTool definitions look like.