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

custom-tools


List Custom Tools

GET
/api/v1/custom-tools

List this organization's custom tools, newest first. Use when checking what already exists before writing another.

List Custom Tools › Responses

200

Successful Response

​CustomToolOut[]
One custom tool, as everything but its code.
CustomToolOut
created_at
​string · date-time · required
​required
declared_reach
​string[] · required
description
​string · required
id
​string · uuid · required
name
​string · required
org_id
​string · uuid · required
purpose
​string · required
status
​CustomToolStatus · enum · required

Whether this custom tool has ever gone live.

DRAFT is not "being edited" — there is always a draft. It is "no version of this has ever been published", which is what decides whether the registered row has anything to run.

Enum values:
draft
published
​required
updated_at
​string · date-time · required
GET/api/v1/custom-tools
curl /api/v1/custom-tools \ --header 'Authorization: Bearer <token>'
Example Responses
[ { "created_at": "2024-08-25T15:00:00Z", "current_version_id": "00000000-0000-0000-0000-000000000000", "declared_reach": [ "string" ], "description": "description", "id": "00000000-0000-0000-0000-000000000000", "name": "name", "org_id": "00000000-0000-0000-0000-000000000000", "purpose": "purpose", "status": "draft", "tool_id": "00000000-0000-0000-0000-000000000000", "updated_at": "2024-08-25T15:00:00Z" } ]
json
application/json

Create Custom Tool

POST
/api/v1/custom-tools

Create a custom tool: Starlark code for one account, one transform(arguments) function that answers a value. Use only for a calculation or format no existing tool provides, and use it as one step of a flow between the tools that fetch its input and the tool that acts on its output. It cannot call anything: to reach a system, create an HTTP tool pointed at a connection instead.

It arrives as a draft with a stated purpose. Its code is a hermetic transform: it is handed arguments and answers a value, and it cannot reach the network, the file system or anything else — so its declared reach must be empty. Nothing runs it until somebody publishes it.

What it is handed in a conversation is the merged call, not just what it declared. The run loop passes the effective five layers, so a transform also sees any fixed_parameters set on its catalogue row and the system layer's atteq_org_id and atteq_conversation_id. Write it to read the keys it wants and ignore the rest.

Create Custom Tool › Request Body

A new custom tool, as a draft, with the purpose a person will review.
CustomToolCreate
name
​string · minLength: 1 · maxLength: 120 · required
purpose
​string · minLength: 1 · required
declared_reach
​string[]
description
​string
Default:
​object
​object
source_code
​string
Default:

Create Custom Tool › Responses

Successful Response

One custom tool, as everything but its code.
CustomToolOut
created_at
​string · date-time · required
​required
declared_reach
​string[] · required
description
​string · required
id
​string · uuid · required
name
​string · required
org_id
​string · uuid · required
purpose
​string · required
status
​CustomToolStatus · enum · required

Whether this custom tool has ever gone live.

DRAFT is not "being edited" — there is always a draft. It is "no version of this has ever been published", which is what decides whether the registered row has anything to run.

Enum values:
draft
published
​required
updated_at
​string · date-time · required
POST/api/v1/custom-tools
curl /api/v1/custom-tools \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "declared_reach": [ "string" ], "description": "", "input_schema": {}, "name": "name", "output_schema": {}, "purpose": "purpose", "source_code": "" }'
Example Request Body
{ "declared_reach": [ "string" ], "description": "", "input_schema": {}, "name": "name", "output_schema": {}, "purpose": "purpose", "source_code": "" }
json
Example Responses
{ "created_at": "2024-08-25T15:00:00Z", "current_version_id": "00000000-0000-0000-0000-000000000000", "declared_reach": [ "string" ], "description": "description", "id": "00000000-0000-0000-0000-000000000000", "name": "name", "org_id": "00000000-0000-0000-0000-000000000000", "purpose": "purpose", "status": "draft", "tool_id": "00000000-0000-0000-0000-000000000000", "updated_at": "2024-08-25T15:00:00Z" }
json
application/json

Get Custom Tool

GET
/api/v1/custom-tools/{custom_tool_id}

What one custom tool is for, and whether it has gone live. Use when you already have the custom tool's id and need its current status.

Get Custom Tool › path Parameters

custom_tool_id
​string · uuid · required

Get Custom Tool › Responses

Successful Response

One custom tool, as everything but its code.
CustomToolOut
created_at
​string · date-time · required
​required
declared_reach
​string[] · required
description
​string · required
id
​string · uuid · required
name
​string · required
org_id
​string · uuid · required
purpose
​string · required
status
​CustomToolStatus · enum · required

Whether this custom tool has ever gone live.

DRAFT is not "being edited" — there is always a draft. It is "no version of this has ever been published", which is what decides whether the registered row has anything to run.

Enum values:
draft
published
​required
updated_at
​string · date-time · required
GET/api/v1/custom-tools/{custom_tool_id}
curl /api/v1/custom-tools/:custom_tool_id \ --header 'Authorization: Bearer <token>'
Example Responses
{ "created_at": "2024-08-25T15:00:00Z", "current_version_id": "00000000-0000-0000-0000-000000000000", "declared_reach": [ "string" ], "description": "description", "id": "00000000-0000-0000-0000-000000000000", "name": "name", "org_id": "00000000-0000-0000-0000-000000000000", "purpose": "purpose", "status": "draft", "tool_id": "00000000-0000-0000-0000-000000000000", "updated_at": "2024-08-25T15:00:00Z" }
json
application/json

Delete Custom Tool

DELETE
/api/v1/custom-tools/{custom_tool_id}

Delete a custom tool, its versions and its catalogue entry, for good. Use when the tool and all its code should stop existing.

Delete Custom Tool › path Parameters

custom_tool_id
​string · uuid · required

Delete Custom Tool › Responses

Successful Response

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

Get Custom Tool Draft

GET
/api/v1/custom-tools/{custom_tool_id}/draft

The draft being edited, its code included. Use when you need to read the unpublished code before changing or trying it.

Get Custom Tool Draft › path Parameters

custom_tool_id
​string · uuid · required

Get Custom Tool Draft › Responses

Successful Response

One version of a custom tool: the draft, or one that went live.
CustomToolVersionOut
author_kind
​CustomToolAuthorKind · enum · required

Who a published version came from.

The same distinction agents records for a published agent version, spelled in this slice's own words because a slice does not import another's enum for a fact of its own.

Enum values:
person
builder
​required
change_summary
​string · required
created_at
​string · date-time · required
custom_tool_id
​string · uuid · required
id
​string · uuid · required
​object · required
​object · required
​required
source_code
​string · required
updated_at
​string · date-time · required
​required
GET/api/v1/custom-tools/{custom_tool_id}/draft
curl /api/v1/custom-tools/:custom_tool_id/draft \ --header 'Authorization: Bearer <token>'
Example Responses
{ "author_kind": "person", "author_person_id": "00000000-0000-0000-0000-000000000000", "change_summary": "change_summary", "created_at": "2024-08-25T15:00:00Z", "custom_tool_id": "00000000-0000-0000-0000-000000000000", "id": "00000000-0000-0000-0000-000000000000", "input_schema": {}, "output_schema": {}, "published_at": "2024-08-25T15:00:00Z", "source_code": "source_code", "updated_at": "2024-08-25T15:00:00Z", "version_number": 0 }
json
application/json

Edit Custom Tool Draft

PATCH
/api/v1/custom-tools/{custom_tool_id}/draft

Edit the draft — its name, purpose, code, schemas or declared reach; only the fields sent change. Use when the unpublished tool needs to change before trying or publishing it; nothing here reaches a conversation.

The published version keeps running until publish_custom_tool, and the tool's catalogue entry keeps the name and schema it was published with.

Edit Custom Tool Draft › path Parameters

custom_tool_id
​string · uuid · required

Edit Custom Tool Draft › Request Body

A partial edit of the draft. Only the fields that are set change.
CustomToolDraftUpdate
​
​
​
​
​
​
​
​

Edit Custom Tool Draft › Responses

Successful Response

One version of a custom tool: the draft, or one that went live.
CustomToolVersionOut
author_kind
​CustomToolAuthorKind · enum · required

Who a published version came from.

The same distinction agents records for a published agent version, spelled in this slice's own words because a slice does not import another's enum for a fact of its own.

Enum values:
person
builder
​required
change_summary
​string · required
created_at
​string · date-time · required
custom_tool_id
​string · uuid · required
id
​string · uuid · required
​object · required
​object · required
​required
source_code
​string · required
updated_at
​string · date-time · required
​required
PATCH/api/v1/custom-tools/{custom_tool_id}/draft
curl /api/v1/custom-tools/:custom_tool_id/draft \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "change_summary": "string", "declared_reach": [ "string" ], "description": "string", "input_schema": {}, "name": "string", "output_schema": {}, "purpose": "string", "source_code": "string" }'
Example Request Body
{ "change_summary": "string", "declared_reach": [ "string" ], "description": "string", "input_schema": {}, "name": "string", "output_schema": {}, "purpose": "string", "source_code": "string" }
json
Example Responses
{ "author_kind": "person", "author_person_id": "00000000-0000-0000-0000-000000000000", "change_summary": "change_summary", "created_at": "2024-08-25T15:00:00Z", "custom_tool_id": "00000000-0000-0000-0000-000000000000", "id": "00000000-0000-0000-0000-000000000000", "input_schema": {}, "output_schema": {}, "published_at": "2024-08-25T15:00:00Z", "source_code": "source_code", "updated_at": "2024-08-25T15:00:00Z", "version_number": 0 }
json
application/json

Publish Custom Tool

POST
/api/v1/custom-tools/{custom_tool_id}/publish

Freeze the draft as a new version and make it the one conversations run. Use once try_custom_tool answers what you expected and the tool should go live.

Until a version is published, the tool's catalogue row (tool_id on the custom tool) exists and runs nothing. That row is what add_step takes and what update_node attaches, and each run uses whichever version is published, so a flow built around the tool needs no edit when the code changes.

Refused if the code will not run at all — it does not parse, it uses something the language does not have, or it defines no transform. The draft is left exactly as it was.

Publish Custom Tool › path Parameters

custom_tool_id
​string · uuid · required

Publish Custom Tool › Request Body

anyOf
At least one variant must match. Multiple variants may match simultaneously.

Decision Table

VariantMatching Criteria
type = object
type = null
Properties for CustomToolAuthor:
Who is publishing. Omitted, a publish is attributed to the acting person.
CustomToolAuthor
kind
​CustomToolAuthorKind · enum

Who a published version came from.

The same distinction agents records for a published agent version, spelled in this slice's own words because a slice does not import another's enum for a fact of its own.

Enum values:
person
builder
Default: person

Publish Custom Tool › Responses

Successful Response

One version of a custom tool: the draft, or one that went live.
CustomToolVersionOut
author_kind
​CustomToolAuthorKind · enum · required

Who a published version came from.

The same distinction agents records for a published agent version, spelled in this slice's own words because a slice does not import another's enum for a fact of its own.

Enum values:
person
builder
​required
change_summary
​string · required
created_at
​string · date-time · required
custom_tool_id
​string · uuid · required
id
​string · uuid · required
​object · required
​object · required
​required
source_code
​string · required
updated_at
​string · date-time · required
​required
POST/api/v1/custom-tools/{custom_tool_id}/publish
curl /api/v1/custom-tools/:custom_tool_id/publish \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "kind": "person" }'
Example Request Body
{ "kind": "person" }
json
Example Responses
{ "author_kind": "person", "author_person_id": "00000000-0000-0000-0000-000000000000", "change_summary": "change_summary", "created_at": "2024-08-25T15:00:00Z", "custom_tool_id": "00000000-0000-0000-0000-000000000000", "id": "00000000-0000-0000-0000-000000000000", "input_schema": {}, "output_schema": {}, "published_at": "2024-08-25T15:00:00Z", "source_code": "source_code", "updated_at": "2024-08-25T15:00:00Z", "version_number": 0 }
json
application/json

Restore Custom Tool Version

POST
/api/v1/custom-tools/{custom_tool_id}/restore/{version_id}

Publish an earlier version again, making it the one conversations run. Use when the current live version is wrong and an earlier one should run instead.

The draft is left alone; this changes what runs, not what is being edited.

Restore Custom Tool Version › path Parameters

custom_tool_id
​string · uuid · required
version_id
​string · uuid · required

Restore Custom Tool Version › Request Body

anyOf
At least one variant must match. Multiple variants may match simultaneously.

Decision Table

VariantMatching Criteria
type = object
type = null
Properties for CustomToolAuthor:
Who is publishing. Omitted, a publish is attributed to the acting person.
CustomToolAuthor
kind
​CustomToolAuthorKind · enum

Who a published version came from.

The same distinction agents records for a published agent version, spelled in this slice's own words because a slice does not import another's enum for a fact of its own.

Enum values:
person
builder
Default: person

Restore Custom Tool Version › Responses

Successful Response

One version of a custom tool: the draft, or one that went live.
CustomToolVersionOut
author_kind
​CustomToolAuthorKind · enum · required

Who a published version came from.

The same distinction agents records for a published agent version, spelled in this slice's own words because a slice does not import another's enum for a fact of its own.

Enum values:
person
builder
​required
change_summary
​string · required
created_at
​string · date-time · required
custom_tool_id
​string · uuid · required
id
​string · uuid · required
​object · required
​object · required
​required
source_code
​string · required
updated_at
​string · date-time · required
​required
POST/api/v1/custom-tools/{custom_tool_id}/restore/{version_id}
curl /api/v1/custom-tools/:custom_tool_id/restore/:version_id \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "kind": "person" }'
Example Request Body
{ "kind": "person" }
json
Example Responses
{ "author_kind": "person", "author_person_id": "00000000-0000-0000-0000-000000000000", "change_summary": "change_summary", "created_at": "2024-08-25T15:00:00Z", "custom_tool_id": "00000000-0000-0000-0000-000000000000", "id": "00000000-0000-0000-0000-000000000000", "input_schema": {}, "output_schema": {}, "published_at": "2024-08-25T15:00:00Z", "source_code": "source_code", "updated_at": "2024-08-25T15:00:00Z", "version_number": 0 }
json
application/json

Try Custom Tool

POST
/api/v1/custom-tools/{custom_tool_id}/try

Run the draft on sample input, without publishing or registering anything. Use before publish_custom_tool, to check the draft actually does what it should.

This is how you find out what code you were handed actually does. It reaches nothing: the transform is given these arguments and returns a value, and a failure is the answer rather than an error. Shape arguments the way the flow step will hand them — plain values here, since a step's "$ref:<step_id>.<path>" overrides are resolved before the transform sees them. It is not a way to test a tool that calls a system; that is test_tool on the HTTP tool.

It counts as a tool execution, exactly as testing a tool does. The code really runs and really costs something, and the draft it runs has been reviewed by nobody — so the meter is the one lever that makes asking for it repeatedly cost the asker rather than every other tenant.

Try Custom Tool › path Parameters

custom_tool_id
​string · uuid · required

Try Custom Tool › Request Body

Sample input for a draft, run without registering or publishing anything.
TryIn
​object

Try Custom Tool › Responses

Successful Response

What the draft did with that input. `ok` is the whole verdict: a transform that raised, ran out of budget or answered something that is not JSON is `ok=False` with `detail` saying which, and never an error status — asking "what does this code do" is a question that was answered whichever way it came out.
TryOut
duration_ms
​integer · required
ok
​boolean · required
detail
​string
Default:
result
​
POST/api/v1/custom-tools/{custom_tool_id}/try
curl /api/v1/custom-tools/:custom_tool_id/try \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "arguments": {} }'
Example Request Body
{ "arguments": {} }
json
Example Responses
{ "detail": "", "duration_ms": 0, "ok": true, "result": {} }
json
application/json

List Custom Tool Versions

GET
/api/v1/custom-tools/{custom_tool_id}/versions

The versions of this tool that went live, newest first. Use when reviewing history or picking a version to restore.

List Custom Tool Versions › path Parameters

custom_tool_id
​string · uuid · required

List Custom Tool Versions › Responses

Successful Response

​CustomToolVersionOut[]
One version of a custom tool: the draft, or one that went live.
CustomToolVersionOut
author_kind
​CustomToolAuthorKind · enum · required

Who a published version came from.

The same distinction agents records for a published agent version, spelled in this slice's own words because a slice does not import another's enum for a fact of its own.

Enum values:
person
builder
​required
change_summary
​string · required
created_at
​string · date-time · required
custom_tool_id
​string · uuid · required
id
​string · uuid · required
​object · required
​object · required
​required
source_code
​string · required
updated_at
​string · date-time · required
​required
GET/api/v1/custom-tools/{custom_tool_id}/versions
curl /api/v1/custom-tools/:custom_tool_id/versions \ --header 'Authorization: Bearer <token>'
Example Responses
[ { "author_kind": "person", "author_person_id": "00000000-0000-0000-0000-000000000000", "change_summary": "change_summary", "created_at": "2024-08-25T15:00:00Z", "custom_tool_id": "00000000-0000-0000-0000-000000000000", "id": "00000000-0000-0000-0000-000000000000", "input_schema": {}, "output_schema": {}, "published_at": "2024-08-25T15:00:00Z", "source_code": "source_code", "updated_at": "2024-08-25T15:00:00Z", "version_number": 0 } ]
json
application/json

connectionsrag