Tools
Listing and running tools, and what their answers mean
Everything the API does is a tool: list posts, schedule one, read leads, save
an email template. An assistant sees them through MCP's tools/list; your own
code lists them with GET /api/public/v1/tools and runs one with
POST /api/public/v1/tools/{name}, the tool's arguments as the JSON body.
The list you get is the list your scopes open: a tool your key cannot use is not offered. Each tool carries its own input schema.
Writes and the Idempotency-Key
A REST call that changes something needs an Idempotency-Key header (any
unique string per change). Send the same key again and you get the first
answer back rather than a second change, so retrying after a timeout is safe.
When a call does not succeed
A refused or failed call answers with a code, a sentence saying what to do, and a link here:
| Code | What it means, and what to do |
|---|---|
forbidden | The key lacks the scope this tool needs. See Scopes. |
bad_request | The arguments did not match the tool's input schema. Adjust them and try again. |
not_found | The item does not exist, or this workspace cannot see it. |
conflict | It clashes with the item's current state, which may already be resolved. Read it again, then retry. |
rate_limited | Too many calls in the window. See Rate limits. |
payment_required | The workspace is out of AI credits. See AI credits. |
unavailable | A store the change depends on is briefly unavailable, and nothing was changed. Retry with the same Idempotency-Key. |
upstream | The network or service on the other end is unavailable. Retry shortly; failed posts are retried on their own. |