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

rag


List Documents

GET
/api/v1/documents

List the organization's documents, newest first. Use when showing the document library, or checking for an existing one before uploading. Changes nothing.

List Documents › query Parameters

status
​

List Documents › Responses

Successful Response

​DocumentOut[]
One document, as everything outside this slice sees it. **`content` and `text` are absent by construction**, the way `ToolView` omits `config`. A listing must never carry a 10 MiB blob, and building the shape without the field means there is no flag to forget. The bytes come back from one route, streamed.
DocumentOut
byte_size
​integer · required
chunk_count
​integer · required
created_at
​string · date-time · required
error
​string · required
filename
​string · required
id
​string · uuid · required
media_type
​string · required
org_id
​string · uuid · required
status
​IngestionStatus · enum · required

Where a document is between "uploaded" and "searchable".

failed is a state, not an exception (DECISIONS.md D7): a PDF that will not parse stays in the library with a reason the client can read, because they uploaded a file and a file that vanishes is worse than one that says what went wrong.

Enum values:
pending
extracting
embedding
ready
failed
updated_at
​string · date-time · required
GET/api/v1/documents
curl /api/v1/documents \ --header 'Authorization: Bearer <token>'
Example Responses
[ { "byte_size": 0, "chunk_count": 0, "created_at": "2024-08-25T15:00:00Z", "error": "error", "filename": "filename", "id": "00000000-0000-0000-0000-000000000000", "media_type": "media_type", "org_id": "00000000-0000-0000-0000-000000000000", "status": "pending", "updated_at": "2024-08-25T15:00:00Z" } ]
json
application/json

Upload Document

POST
/api/v1/documents

Upload a document into the organization's library and start ingesting it. Use when adding a new document for an agent to ground on.

A filename the library already has is 409 unless replace is true; with it, that document keeps its id (and every agent reading it) and takes the new file, processed again from scratch.

The row is committed before the job is deferred, so a queue that refuses leaves a document in pending with nothing coming for it. That is the reingest route's case, and it is this way round deliberately: the reverse would defer a job for a document that does not exist.

Upload Document › query Parameters

replace
​boolean
Default: false

Upload Document › Request Body

Body_upload_document
file
​string · required

Upload Document › Responses

Successful Response

One document, as everything outside this slice sees it. **`content` and `text` are absent by construction**, the way `ToolView` omits `config`. A listing must never carry a 10 MiB blob, and building the shape without the field means there is no flag to forget. The bytes come back from one route, streamed.
DocumentOut
byte_size
​integer · required
chunk_count
​integer · required
created_at
​string · date-time · required
error
​string · required
filename
​string · required
id
​string · uuid · required
media_type
​string · required
org_id
​string · uuid · required
status
​IngestionStatus · enum · required

Where a document is between "uploaded" and "searchable".

failed is a state, not an exception (DECISIONS.md D7): a PDF that will not parse stays in the library with a reason the client can read, because they uploaded a file and a file that vanishes is worse than one that says what went wrong.

Enum values:
pending
extracting
embedding
ready
failed
updated_at
​string · date-time · required
POST/api/v1/documents
curl /api/v1/documents \ --request POST \ --header 'Content-Type: multipart/form-data' \ --header 'Authorization: Bearer <token>' \ --form 'file=file'
Example Request Body
{ "file": "file" }
text
Example Responses
{ "byte_size": 0, "chunk_count": 0, "created_at": "2024-08-25T15:00:00Z", "error": "error", "filename": "filename", "id": "00000000-0000-0000-0000-000000000000", "media_type": "media_type", "org_id": "00000000-0000-0000-0000-000000000000", "status": "pending", "updated_at": "2024-08-25T15:00:00Z" }
json
application/json

Search Documents

POST
/api/v1/documents/search

Search one agent's attached documents and return the passages that match. Use when a person, not a running conversation, wants to try what an agent's documents answer for a query — a running conversation retrieves through the built-in instead.

The live version's documents, because this is a person asking. A running conversation asks the pinned version's instead, through the built-in. Propagates agents.NotFound — a 404 — for an agent this organization cannot see, raised by the binding rather than by this slice.

Search Documents › Request Body

A human's search, over one agent's documents. `agent_id` is here because **this is the builder's and the panel's read**, and a person asking has to say which agent's library they mean. The conversation tool takes no such field: a model may not choose the scope it is searched under, which is the whole of ADR 0014.
SearchIn
agent_id
​string · uuid · required
query
​string · required
limit
​integer · min: 1 · max: 20
Default: 5

Search Documents › Responses

Successful Response

​SearchHit[]
One chunk that matched, and enough to quote it and say where from.
SearchHit
content
​string · required
document_id
​string · uuid · required
filename
​string · required
​required
seq
​integer · required
POST/api/v1/documents/search
curl /api/v1/documents/search \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "agent_id": "00000000-0000-0000-0000-000000000000", "limit": 5, "query": "query" }'
Example Request Body
{ "agent_id": "00000000-0000-0000-0000-000000000000", "limit": 5, "query": "query" }
json
Example Responses
[ { "content": "content", "document_id": "00000000-0000-0000-0000-000000000000", "filename": "filename", "score": 0, "seq": 0 } ]
json
application/json

Get Document

GET
/api/v1/documents/{document_id}

Read one document's details and how far its ingestion has got. Use when checking a specific document's status by id. Changes nothing.

Get Document › path Parameters

document_id
​string · uuid · required

Get Document › Responses

Successful Response

One document, as everything outside this slice sees it. **`content` and `text` are absent by construction**, the way `ToolView` omits `config`. A listing must never carry a 10 MiB blob, and building the shape without the field means there is no flag to forget. The bytes come back from one route, streamed.
DocumentOut
byte_size
​integer · required
chunk_count
​integer · required
created_at
​string · date-time · required
error
​string · required
filename
​string · required
id
​string · uuid · required
media_type
​string · required
org_id
​string · uuid · required
status
​IngestionStatus · enum · required

Where a document is between "uploaded" and "searchable".

failed is a state, not an exception (DECISIONS.md D7): a PDF that will not parse stays in the library with a reason the client can read, because they uploaded a file and a file that vanishes is worse than one that says what went wrong.

Enum values:
pending
extracting
embedding
ready
failed
updated_at
​string · date-time · required
GET/api/v1/documents/{document_id}
curl /api/v1/documents/:document_id \ --header 'Authorization: Bearer <token>'
Example Responses
{ "byte_size": 0, "chunk_count": 0, "created_at": "2024-08-25T15:00:00Z", "error": "error", "filename": "filename", "id": "00000000-0000-0000-0000-000000000000", "media_type": "media_type", "org_id": "00000000-0000-0000-0000-000000000000", "status": "pending", "updated_at": "2024-08-25T15:00:00Z" }
json
application/json

Delete Document

DELETE
/api/v1/documents/{document_id}

Delete a document and everything indexed from it. Use when a document should stop existing, and every agent attached to it should stop grounding on it — there is no undo.

Delete Document › path Parameters

document_id
​string · uuid · required

Delete Document › Responses

Successful Response

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

Download Document

GET
/api/v1/documents/{document_id}/content

Download the original file, exactly as it was uploaded. Use when the raw uploaded file itself is needed, not its indexed content. Changes nothing.

Download Document › path Parameters

document_id
​string · uuid · required

Download Document › Responses

Successful Response

No data returned
GET/api/v1/documents/{document_id}/content
curl /api/v1/documents/:document_id/content \ --header 'Authorization: Bearer <token>'
Example Responses
{}
json
application/json

Reingest Document

POST
/api/v1/documents/{document_id}/reingest

Run ingestion again for a document that failed or was never ingested. Use when a document is stuck in a failed or pending state and needs another attempt, without re-uploading the file.

Reingest Document › path Parameters

document_id
​string · uuid · required

Reingest Document › Responses

Successful Response

One document, as everything outside this slice sees it. **`content` and `text` are absent by construction**, the way `ToolView` omits `config`. A listing must never carry a 10 MiB blob, and building the shape without the field means there is no flag to forget. The bytes come back from one route, streamed.
DocumentOut
byte_size
​integer · required
chunk_count
​integer · required
created_at
​string · date-time · required
error
​string · required
filename
​string · required
id
​string · uuid · required
media_type
​string · required
org_id
​string · uuid · required
status
​IngestionStatus · enum · required

Where a document is between "uploaded" and "searchable".

failed is a state, not an exception (DECISIONS.md D7): a PDF that will not parse stays in the library with a reason the client can read, because they uploaded a file and a file that vanishes is worse than one that says what went wrong.

Enum values:
pending
extracting
embedding
ready
failed
updated_at
​string · date-time · required
POST/api/v1/documents/{document_id}/reingest
curl /api/v1/documents/:document_id/reingest \ --request POST \ --header 'Authorization: Bearer <token>'
Example Responses
{ "byte_size": 0, "chunk_count": 0, "created_at": "2024-08-25T15:00:00Z", "error": "error", "filename": "filename", "id": "00000000-0000-0000-0000-000000000000", "media_type": "media_type", "org_id": "00000000-0000-0000-0000-000000000000", "status": "pending", "updated_at": "2024-08-25T15:00:00Z" }
json
application/json

custom-toolsflows