atteq API
  • Guides
  • Recipes
  • Cookbook
  • API Reference
Information
agents
    List AgentsgetCreate AgentpostDocument AttachmentsgetGet VersiongetEdit DraftpatchReplace Draft GraphputPublish VersionpostGet AgentgetDelete AgentdeleteCopy AgentpostGet DraftgetGet Agent MapgetPending ChangesgetList PlacementsgetRestore VersionpostList VersionsgetGet Mapget
voice_agent
    Open Browser CallpostEnd Browser CalldeleteGet Agent Test LinkgetGet Bridge CeilinggetSet Bridge Ceilingpatch
ai_profiles
    Get Ai Profile CapabilitiesgetList Live SettingsgetCreate Live SettingspostDelete Live SettingsdeleteUpdate Live SettingspatchList Llm SettingsgetCreate Llm SettingspostDelete Llm SettingsdeleteUpdate Llm SettingspatchList ProfilesgetCreate ProfilepostGet ProfilegetDelete ProfiledeleteUpdate ProfilepatchCopy ProfilepostSet Text SectionputSet Voice SectionputList Stt SettingsgetCreate Stt SettingspostDelete Stt SettingsdeleteUpdate Stt SettingspatchList Tts SettingsgetCreate Tts SettingspostDelete Tts SettingsdeleteUpdate Tts SettingspatchList Vad SettingsgetCreate Vad SettingspostDelete Vad SettingsdeleteUpdate Vad Settingspatch
analyst
    List Agent FindingsgetCall Back FindingpostDismiss FindingpostUndo Finding DismissaldeleteTeach FindingpostWatch FindingpostList Question ChartsgetList Tracked QuestionsgetCreate Tracked QuestionpostGet Question Search CostgetSearch For Tracked QuestionpostPropose Tracked QuestionpostDelete Tracked QuestiondeleteUpdate Tracked QuestionpatchGet Reading SwitchgetSet Reading SwitchputGet Agent Summaryget
analytics
    List ChartsgetCreate ChartpostPreview ChartpostGet ChartgetDelete ChartdeleteUpdate ChartpatchRun ChartpostList DatasetsgetList BoardsgetCreate BoardpostGet TraversalgetGet BoardgetDelete BoarddeleteUpdate Boardpatch
authentication
    List InvitationsgetInvite MemberpostRevoke InvitationdeleteResend InvitationpostList MembersgetRemove MemberdeleteGet Member Conversation AccessgetSet Member Conversation AccesspatchSet Member FlagspatchSet Member RolepatchGet OrganizationgetUpdate OrganizationpatchGet Role FlagsgetSet Role Flagspatch
automations
    List AutomationsgetCreate AutomationpostGet AutomationgetDelete AutomationdeleteUpdate AutomationpatchSet Automation EnabledputGet Automation MapgetRun AutomationpostList Automation RunsgetGet Automation Runget
billable-metrics
    List MetricsgetUsage SummarygetGet Metricget
outbound_calls
    Place CallpostList CampaignsgetCreate CampaignpostGet CampaigngetDelete CampaigndeleteUpdate CampaignpatchActivate CampaignpostLink CollectionpostAdd ContactspostAdd Contacts From CollectionpostRemove Contacts From CollectionpostSet Campaign HoursputPreview Campaign HourspostPause CampaignpostGet Campaign SummarygetExclude ContactpostInclude Contactpost
channels
    List ChannelsgetCreate ChannelpostList Thread SubjectsgetClose Channel ThreadpostList Thread DecisionsgetGet Thread Contact FilegetHand Thread To AgentpostList Thread MailgetGet Prepared ReplygetAsk Again For Prepared ReplypostDiscard Prepared ReplypostSend Prepared ReplypostReply On Channel ThreadpostGet ChannelgetDelete ChanneldeleteUpdate ChannelpatchSend On ChannelpostList Channel ThreadsgetList RostergetCreate Roster EntrypostGet Own Roster EntrygetGet Roster EntrygetDelete Roster EntrydeleteUpdate Roster EntrypatchAdd Roster AddresspostChange Roster AddressputRemove Roster Addressdelete
custom-data
    List CollectionsgetCreate CollectionpostList Collection NamesgetGet CollectiongetDelete CollectiondeleteUpdate CollectionpatchAdd FieldpostDelete FielddeleteUpdate FieldpatchImport RecordspostPlan ImportpostPropose ImportpostGet ImportgetList RecordsgetCreate RecordpostBulk Delete RecordspostBulk Set FieldpostCount RecordsgetList Records Of ContactgetDelete Records Of ContactdeleteGet RecordgetDelete RecorddeleteUpdate Recordpatch
connections
    List ConnectionsgetCreate ConnectionpostCreate Forwarded AddresspostCreate Mail ServerpostDiscover Mail ServerpostAuthorize Microsoft MailboxpostList ProvidersgetGet ConnectiongetDelete ConnectiondeleteUpdate ConnectionpatchGet Forwarded AddressgetCheck Forwarded AddresspostList Person GrantsgetSet Person GrantputRemove Person GrantdeleteGet Mail ServergetUpdate Mail ServerpatchList Mail Server FoldersgetEnter Mail Server PasswordputChange Mail Server ServersputTest Mail Server AgainpostGet Microsoft MailboxgetUpdate Microsoft MailboxpatchList Microsoft Mailbox FoldersgetConsent To Microsoft Mailbox WritespostWithdraw Microsoft Mailbox Writesdelete
custom-tools
    List Custom ToolsgetCreate Custom ToolpostGet Custom ToolgetDelete Custom TooldeleteGet Custom Tool DraftgetEdit Custom Tool DraftpatchPublish Custom ToolpostRestore Custom Tool VersionpostTry Custom ToolpostList Custom Tool Versionsget
rag
    List DocumentsgetUpload DocumentpostSearch DocumentspostGet DocumentgetDelete DocumentdeleteDownload DocumentgetReingest Documentpost
flows
    List FlowsgetCreate FlowpostGet FlowgetDelete FlowdeleteRename FlowpatchAdd Flow EdgepostDelete Flow EdgedeleteSet Entry SteppatchAdd SteppostDelete StepdeleteUpdate SteppatchTest FlowpostList Flow Testsget
dynamic_context
    Create GraphpostGet GraphgetDelete GraphdeleteAdd EdgepostDelete EdgedeleteAdd NodepostDelete NodedeleteUpdate NodepatchSet Rootput
inbox
    Get Inbox Open CountgetSet Inbox PreferencespatchGet Inbox RailgetCreate Inbox ViewpostDelete Inbox ViewdeleteUpdate Inbox Viewpatch
handoff
    Assign Threadpost
interactions
    List InteractionsgetCount InteractionsgetGet InteractiongetSet Conversation LabelspostGet TracegetGet TranscriptgetList LabelsgetCreate LabelpostDelete LabeldeleteUpdate Labelpatch
legal
    Agree To Processing AgreementpostAgree To TermspostLegal BoxesgetList Legal DocumentsgetRead Legal DocumentgetList Legal VersionsgetRead Legal VersiongetDownload Legal VersiongetOrganization Legal HistorygetOwn Legal HistorygetObject To SubprocessorspostWithdraw ObjectionpostLegal Pendingget
not-a-tool
    Agree To Processing AgreementpostAgree To TermspostObject To SubprocessorspostWithdraw Objectionpost
memory
    List MemoriesgetList Memory LinesgetCreate Memory LinepostDelete Memory LinedeleteUpdate Memory LinepatchList Memory PeoplegetGet Memory PersongetForget PersondeleteGet Memory SwitchgetSet Memory SwitchputWipe ContactdeleteGet Conversation MemorygetRecall MemoriespostGet MemorygetDelete MemorydeletePatch Memorypatch
notifications
    List InboxgetGet Unread CountgetMark ReadpostMark Unreaddelete
recipes
    List RecipesgetList Installed RecipesgetGet Installed RecipegetUninstall RecipedeleteSet Recipe EnabledputUpdate Recipe ParameterspatchUpdate RecipepostInstall Recipepost
data-retention
    Get RetentiongetSet Retentionpatch
text
    Open ConversationpostClose ConversationpostAnswer ConfirmationpostGet Sent FilegetSend MessagepostSet Modepatch
tools
    List ToolsgetCreate ToolpostList BuiltinsgetImport Mcp ServerpostImport OpenapipostPreview Openapi ImportpostSuggest Tool ExamplespostGet ToolgetDelete TooldeleteUpdate ToolpatchTest ToolpostList Tool Testsget
trunks
    List Transfer DirectorygetCreate Transfer Directory EntrypostGet Transfer Directory EntrygetDelete Transfer Directory EntrydeleteUpdate Transfer Directory EntrypatchList TrunksgetCreate TrunkpostGet TrunkgetDelete TrunkdeleteUpdate TrunkpatchList Forward Recordsget
Schemas
powered by Zudoku
attek API
attek API

voice_agent


Open Browser Call

POST
/api/v1/agents/{agent_id}/browser-call

Start a call with this agent from the browser, for in-dashboard testing. Use when a signed-in person wants to try the agent themselves, from the dashboard, with no phone number involved.

Admitted, recorded and counted exactly like a call from the phone network — on the outbound side, against the plan's concurrency, billed. Returns a LiveKit room, a participant token and when that token stops working; the agent is already on its way into the room by the time this responds.

A dashboard act, not an integration one. This is where the person signed in clicked a button, or where staff is looking at a customer's own dashboard on their behalf — never where a client's own system reached in with an API key, which this refuses outright (service.ApiKeyRefused), naming get_agent_test_link instead. The embeddable browser widget voice-agent.md names as a later surface is the one an integration would use for this; it does not exist yet.

Open Browser Call › path Parameters

agent_id
​string · uuid · required

Open Browser Call › Responses

Successful Response

Everything the browser needs to join the room it was just admitted into. What `open_browser_call` hands back over HTTP, and what `BrowserRoom` answers with — the same shape twice, because the route adds nothing to it: `interaction_id` is already on the engine's answer by the time it is asked (this slice opened the record before it asked), so there is one type rather than a route-facing one wrapping an engine-facing one. `token` is a LiveKit participant `AccessToken`, already signed — this slice holds no key to sign one itself and never sees the raw JWT beyond passing it through. `url` is the LiveKit server the browser dials, copied rather than assumed so a client never has to know this deployment's address out of band.
BrowserCall
expires_at
​string · date-time · required
interaction_id
​string · uuid · required
room
​string · required
token
​string · required
url
​string · required
POST/api/v1/agents/{agent_id}/browser-call
curl /api/v1/agents/:agent_id/browser-call \ --request POST \ --header 'Authorization: Bearer <token>'
Example Responses
{ "expires_at": "2024-08-25T15:00:00Z", "interaction_id": "00000000-0000-0000-0000-000000000000", "room": "room", "token": "token", "url": "url" }
json
application/json

End Browser Call

DELETE
/api/v1/agents/{agent_id}/browser-call/{interaction_id}

Give back a browser call this tab is leaving, joined or not. Use when the person hangs up, leaves the screen or closes the tab, so the slot this call holds frees up at once and their next test call is admitted.

voice-agent.md rule 73: "A browser that leaves its call releases the record, the slot and the per-person cap at once, whether it had joined or not." A call nobody joined is closed here as a call nobody talked on. A joined call gives back its slot and the per-person cap now, and the voice engine closes its record, with its usage and who hung up.

Only your own, and only while it is open. An id naming a call this person did not open, one already closed, or one opened under a different agent all answer 404 alike (service.NotFound): this route reads a row somebody else could have written, and telling those apart would answer questions about other people's calls to whoever guesses an id.

Not DELETE as erasure: the interaction record is a permanent one and stays. What is deleted is the live call -- the reservation, which is the resource this route's own path names.

End Browser Call › path Parameters

agent_id
​string · uuid · required
interaction_id
​string · uuid · required

End Browser Call › Responses

Successful Response

No data returned
DELETE/api/v1/agents/{agent_id}/browser-call/{interaction_id}
curl /api/v1/agents/:agent_id/browser-call/:interaction_id \ --request DELETE \ --header 'Authorization: Bearer <token>'
Example Responses
No example specified for this content type

Get Agent Test Link

GET
/api/v1/agents/{agent_id}/test-link

Get the link where the person can test this agent by voice; the call starts only when they click. Use when someone asks to talk to or try an agent by voice and you are not the person's own browser: hand them the link and the sentence beside it.

Opens nothing and costs nothing. The page asks them to sign in, shows what the call costs, and the call they start there is an ordinary test from the dashboard (connected-apps.md rule 16). An agent outside this organization answers 404.

Get Agent Test Link › path Parameters

agent_id
​string · uuid · required

Get Agent Test Link › Responses

Successful Response

Where a person tests an agent by voice, for whoever cannot open the call. What `test_link` hands an API key or a connected app instead of a `BrowserCall` (connected-apps.md rule 16): `url` is this deployment's own test page for the agent, which opens nothing — the person signs in there and clicks Call, and that click is the dashboard's ordinary browser call. Nothing here joins a room, so nothing here is a credential. `how` is the sentence a client can show the person beside the link.
TestLink
how
​string · required
url
​string · required
GET/api/v1/agents/{agent_id}/test-link
curl /api/v1/agents/:agent_id/test-link \ --header 'Authorization: Bearer <token>'
Example Responses
{ "how": "how", "url": "url" }
json
application/json

Get Bridge Ceiling

GET
/api/v1/voice/bridge-ceiling

Read how long a bridged transfer of this organization's may last, from the moment its agent leaves the call, in minutes. Use before changing it, or to know when the platform ends a bridge. Owner or admin only. An organization that never set it is held at the default, 120 minutes. Changes nothing.

Get Bridge Ceiling › Responses

200

Successful Response

How long a bridge of this organization's may last, from the moment its agent leaves (voice-agent.md rule 109). `minutes` is the value in force -- the default where the organization never set one, which `is_default` says -- and the range is the platform's.
BridgeCeilingOut
is_default
​boolean · required
minutes
​integer · required
max_minutes
​integer
Default: 240
min_minutes
​integer
Default: 5
GET/api/v1/voice/bridge-ceiling
curl /api/v1/voice/bridge-ceiling \ --header 'Authorization: Bearer <token>'
Example Responses
{ "is_default": true, "max_minutes": 240, "min_minutes": 5, "minutes": 0 }
json
application/json

Set Bridge Ceiling

PATCH
/api/v1/voice/bridge-ceiling

Set how long a bridged transfer of this organization's may last, from the moment its agent leaves the call, in whole minutes from 5 to 240. Use when the organization's people take longer, or shorter, calls with the callers an agent puts through to them. Owner or admin only. Applies to bridges begun after it; the platform ends a bridge at it with no phrase.

Set Bridge Ceiling › Request Body

A new bridge ceiling, in whole minutes, within the platform's range (5 minutes to 4 hours). Applies to bridges begun after it.
BridgeCeilingIn
minutes
​integer · min: 5 · max: 240 · required

Set Bridge Ceiling › Responses

Successful Response

How long a bridge of this organization's may last, from the moment its agent leaves (voice-agent.md rule 109). `minutes` is the value in force -- the default where the organization never set one, which `is_default` says -- and the range is the platform's.
BridgeCeilingOut
is_default
​boolean · required
minutes
​integer · required
max_minutes
​integer
Default: 240
min_minutes
​integer
Default: 5
PATCH/api/v1/voice/bridge-ceiling
curl /api/v1/voice/bridge-ceiling \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "minutes": 5 }'
Example Request Body
{ "minutes": 5 }
json
Example Responses
{ "is_default": true, "max_minutes": 240, "min_minutes": 5, "minutes": 0 }
json
application/json

agentsai_profiles