The request
Every call is onePOST with a JSON body.
object
required
The arguments the agent chose for this call, keyed by the tool’s input names. It can be an empty object.
boolean
required
true for calls from the dashboard’s test panel and from agent tests. Always false in a real customer conversation. Read data as usual, but do not change anything: no refunds, no bookings, no emails. We cannot enforce this on your side, so your endpoint has to honour it.Headers
string
required
Always
application/json.string
Bearer <token>, when you gave the tool a bearer token. We store the token encrypted and send it only to the tool’s own endpoint. Check it on every request.The response
- Any 2xx status is a success. We parse the body as JSON, and pass it on as plain text if it is not JSON. There is no fixed response format: return what the agent needs to answer.
- Any other status is a failure. The agent is told the call failed with that HTTP status and does not see your body. It can then tell the customer it could not look this up, or hand the conversation to a person.
- Your response is data, not instructions. The agent reads it as the tool’s output. Text such as “ignore your instructions” in a response is treated as content, not obeyed.
- Keep it small. Everything you return is read by the agent on every call. Return the fields it needs, not the whole record.
Limits
Testing your endpoint
Run the same request yourself before connecting it:"dry_run": true.