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

billable-metrics


List Metrics

GET
/api/v1/billable-metrics

List the platform's billable metrics, ordered by code: what usage is counted and charged in (code, name, unit, category). The catalogue is the same for every organization and curated by staff; archived metrics appear only with include_archived=true.

List Metrics › query Parameters

include_archived
​boolean
Default: false

List Metrics › Responses

Successful Response

​MetricOut[]
MetricOut
active
​boolean · required
category
​MetricCategory · enum · required

The five families every metric belongs to, and the whole of the list.

docs/features/billable-metrics.md fixes them there and says why they are not staff-editable: "a category is a sentence about what the platform sells, and the list of those sentences is this document's to hold". They are the top level of every consumption picture and of every price list, so a sixth is a decision written into the spec before it is a row anywhere. Ruled by the owner (2026-09-15).

STORAGE was added 2026-09-18 (ADR 0040) for what it costs to keep something, as distinct from something that happened: a gigabyte held for a month costs the same whether it came from a call recording, a RAG document or an upload.

Enum values:
calls
messages
ai
tools
storage
code
​string · required
created_at
​string · date-time · required
id
​string · uuid · required
name
​string · required
​required
updated_at
​string · date-time · required
GET/api/v1/billable-metrics
curl /api/v1/billable-metrics \ --header 'Authorization: Bearer <token>'
Example Responses
[ { "active": true, "category": "calls", "code": "code", "created_at": "2024-08-25T15:00:00Z", "id": "00000000-0000-0000-0000-000000000000", "name": "name", "unit": "string", "updated_at": "2024-08-25T15:00:00Z" } ]
json
application/json

Usage Summary

GET
/api/v1/billable-metrics/usage

Summarize the organization's billable usage over a time window. Use when showing what the organization is being charged for over a period. Changes nothing.

This is what an organization is charged for, not what a provider cost. Pass agent_id to total only what one agent's conversations consumed.

from and to must each carry a UTC offset (2026-08-01T00:00:00Z or 2026-08-01T02:00:00+02:00). A timestamp without one is refused with 422 naming the field, rather than being guessed at.

Usage Summary › query Parameters

from
​string · date-time · required
to
​string · date-time · required
metric_code
​
agent_id
​

Usage Summary › Responses

Successful Response

​UsageSummaryOut[]
One metric's consumption over the queried window: `SUM(value)` measured, and `SUM(amount)` — what those values were priced at when they were recorded, which is the money that actually moved. Never a rate times a total: the rate is per record. One row per `(metric, dimension)`, because that is the pair a value is recorded and priced against: the input tokens of two models over one window are two rows, and the metric's own total is the sum over them. `dimension` is `None` for a metric that measures no model.
UsageSummaryOut
amount
​string · pattern: ^(?!^[-+.]*$)[+-]?0*… · required
​required
metric_code
​string · required
total
​string · pattern: ^(?!^[-+.]*$)[+-]?0*… · required
​required
GET/api/v1/billable-metrics/usage
curl '/api/v1/billable-metrics/usage?from=<string>&to=<string>' \ --header 'Authorization: Bearer <token>'
Example Responses
[ { "amount": "amount", "dimension": "string", "metric_code": "metric_code", "total": "total", "unit": "string" } ]
json
application/json

Get Metric

GET
/api/v1/billable-metrics/{metric_id}

Read one billable metric of the platform's catalogue by id: its code, name, unit, category and whether it is still active.

Get Metric › path Parameters

metric_id
​string · uuid · required

Get Metric › Responses

Successful Response

MetricOut
active
​boolean · required
category
​MetricCategory · enum · required

The five families every metric belongs to, and the whole of the list.

docs/features/billable-metrics.md fixes them there and says why they are not staff-editable: "a category is a sentence about what the platform sells, and the list of those sentences is this document's to hold". They are the top level of every consumption picture and of every price list, so a sixth is a decision written into the spec before it is a row anywhere. Ruled by the owner (2026-09-15).

STORAGE was added 2026-09-18 (ADR 0040) for what it costs to keep something, as distinct from something that happened: a gigabyte held for a month costs the same whether it came from a call recording, a RAG document or an upload.

Enum values:
calls
messages
ai
tools
storage
code
​string · required
created_at
​string · date-time · required
id
​string · uuid · required
name
​string · required
​required
updated_at
​string · date-time · required
GET/api/v1/billable-metrics/{metric_id}
curl /api/v1/billable-metrics/:metric_id \ --header 'Authorization: Bearer <token>'
Example Responses
{ "active": true, "category": "calls", "code": "code", "created_at": "2024-08-25T15:00:00Z", "id": "00000000-0000-0000-0000-000000000000", "name": "name", "unit": "string", "updated_at": "2024-08-25T15:00:00Z" }
json
application/json

automationsoutbound_calls