Run one tool, or answer diagnostics
A tool call from one conversation, or a diagnostics request when a report is filed.
Tool calls. Answer 200 with { result } when the tool ran. Answer 200 with an execution_failed error when the tool itself threw. The agent reads your message and is told not to retry. Keep other status codes for transport and config problems. On a 400 with code invalid_input the agent reads your message and is told to fix its input. On any other non-2xx answer the agent is told the tool is not answering, and your message is not passed to it.
Median sends each call once and does not retry it. The agent reads the first 4,000 characters of the result.
Diagnostics. The body is { "op": "diagnostics" }. Answer 200 with { result }, or 200 with diagnostics_unsupported when you collect nothing. Median waits 8 seconds and keeps the first 2,000 characters. An unknown op answers 400 unknown_op.
/median-signatureAPI key · headerrequiredapplication/jsontoolstringrequiredtoolCallIdstringrequiredinputobjectrequiredcontextobjectrequiredShow propertiesHide properties
conversationIdstringrequiredriskRiskrequiredlowmediumreviewedhighvisitorVisitorrequiredShow propertiesHide properties
verifiedbooleanrequiredexternalIdstringemailstringnamestringapprovedBystringopstringrequireddiagnosticsresultRefusal | anyrequiredShow propertiesHide properties
okbooleanfalseknownbooleanfalseallowedbooleanfalseoutcomestringblockedunknownreasonstringdetailstringanyerrorobjectrequiredShow propertiesHide properties
codestringrequiredexecution_faileddiagnostics_unsupportedinvalid_bodyunknown_opinvalid_inputmissing_signaturemalformed_signaturestale_timestampinvalid_signatureunknown_toolmethod_not_allowedmissing_secretinvalid_median_keymessagestringrequirederrorobjectrequiredShow propertiesHide properties
codestringrequiredexecution_faileddiagnostics_unsupportedinvalid_bodyunknown_opinvalid_inputmissing_signaturemalformed_signaturestale_timestampinvalid_signatureunknown_toolmethod_not_allowedmissing_secretinvalid_median_keymessagestringrequirederrorobjectrequiredShow propertiesHide properties
codestringrequiredexecution_faileddiagnostics_unsupportedinvalid_bodyunknown_opinvalid_inputmissing_signaturemalformed_signaturestale_timestampinvalid_signatureunknown_toolmethod_not_allowedmissing_secretinvalid_median_keymessagestringrequirederrorobjectrequiredShow propertiesHide properties
codestringrequiredexecution_faileddiagnostics_unsupportedinvalid_bodyunknown_opinvalid_inputmissing_signaturemalformed_signaturestale_timestampinvalid_signatureunknown_toolmethod_not_allowedmissing_secretinvalid_median_keymessagestringrequirederrorobjectrequiredShow propertiesHide properties
codestringrequiredexecution_faileddiagnostics_unsupportedinvalid_bodyunknown_opinvalid_inputmissing_signaturemalformed_signaturestale_timestampinvalid_signatureunknown_toolmethod_not_allowedmissing_secretinvalid_median_keymessagestringrequirederrorobjectrequiredShow propertiesHide properties
codestringrequiredexecution_faileddiagnostics_unsupportedinvalid_bodyunknown_opinvalid_inputmissing_signaturemalformed_signaturestale_timestampinvalid_signatureunknown_toolmethod_not_allowedmissing_secretinvalid_median_keymessagestringrequiredcurl -X POST "https://example.com/api/median/" \
-H "median-signature: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tool": "string",
"toolCallId": "string",
"input": {},
"context": {
"conversationId": "string",
"risk": "low",
"visitor": {
"verified": true,
"externalId": "string",
"email": "string",
"name": "string"
},
"approvedBy": "string"
}
}'const response = await fetch("https://example.com/api/median/", {
method: "POST",
headers: {
"median-signature": "YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
"tool": "string",
"toolCallId": "string",
"input": {},
"context": {
"conversationId": "string",
"risk": "low",
"visitor": {
"verified": true,
"externalId": "string",
"email": "string",
"name": "string"
},
"approvedBy": "string"
}
})
});{
"result": {
"ok": false,
"reason": "not_signed_in",
"detail": "Sign in to see orders."
}
}{
"error": {
"code": "execution_failed",
"message": "string"
}
}{
"error": {
"code": "execution_failed",
"message": "string"
}
}{
"error": {
"code": "execution_failed",
"message": "string"
}
}{
"error": {
"code": "execution_failed",
"message": "string"
}
}{
"error": {
"code": "execution_failed",
"message": "string"
}
}