Docs & API reference

Everything you need to connect your AI chatbot, AI agents and n8n/Make automations to ProofMyAI. Most setups take under 10 minutes and many need no code at all. Prefer video? Watch the 3-minute setup tutorial โ†—.

Quick start

  1. Create a free account (50 conversations a month free, no card).
  2. Open your project โ†’ Settings and copy your API key (it starts with ap_live_). Each project has its own key.
  3. Pick what you want to monitor: upload chat transcripts, connect n8n/Make, or send events to the API below.
  4. Add a Slack, email, Telegram or webhook channel under Settings โ†’ Notifications so you hear about problems.

Connect without code

Authentication

Send your project API key with every request, in either header:

Authorization: Bearer ap_live_xxxxxxxxxxxxxxxx
# or
X-API-Key: ap_live_xxxxxxxxxxxxxxxx

Base URL: https://proofmyai.com/api/v1. Bodies are JSON (Content-Type: application/json), up to 2 MB. Keep the key on your server; don't put it in browser code. You can regenerate it in Settings at any time.

POST /chat-events: live chatbot monitoring

Send each conversation as it happens, either the full message history or just the newest question and answer. Personal data is masked before anything is stored or checked. Replies are graded in the background against your help articles and rules.

FieldTypeDescription
conversation_idstring, requiredYour ID for the conversation. Sending the same ID again adds only the new turns.
messagesarrayFull history: [{ role: "user" | "assistant", content }].
questionstringThe customer's message. Send it alone when the customer writes, and ProofMyAI alerts you if the bot never replies.
answerstringThe bot's reply to question.
bot_namestringOptional label when you run several bots.
latency_msintegerOptional: how long the reply took.
cost_usdnumberOptional: what the reply cost.
errorstringOptional: an error your bot hit while replying.

Send messages, or question + answer, or just question.

curl -X POST https://proofmyai.com/api/v1/chat-events \
  -H "Authorization: Bearer $PROOFMYAI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "conversation_id": "chat-8841",
    "question": "How much is shipping to Germany?",
    "answer": "Shipping to Germany is free on all orders.",
    "latency_ms": 1850
  }'

Response 202: {"accepted": 1}. Add ?wait=1 to wait for the verdicts (slower; useful for testing):

{"graded": 1, "results": [{"turn_index": 0, "verdict": "hallucination", "label": "Made up",
  "severity": "high", "reason": "The shipping article says Germany costs โ‚ฌ9.90; free shipping is not mentioned."}]}

Verdicts: correct, unsupported (not in your docs), hallucination (made up), should_escalate, off_policy, unclear.

Tip: call the API without waiting for it (fire-and-forget) so your bot never slows down. The Live tracking page in your dashboard has ready-made cURL, JavaScript and Python snippets that do this safely, plus no-code steps for Intercom, Zendesk, Crisp and Tidio through n8n or Make.

POST /agent-runs: AI agent monitoring

Send one request when an agent run finishes. ProofMyAI checks it for loops, tool errors, runaway cost, slow runs, empty output and answers the tools didn't support.

FieldTypeDescription
run_idstring, requiredUnique ID of this run. Sending the same run_id twice returns 409.
agent_namestring, requiredWhich agent ran, e.g. "refund-agent".
goalstringWhat the agent was asked to do.
statusstringsuccess (default), error, timeout or cancelled.
final_outputstringThe agent's final answer or result.
stepsarrayEach step: { type: llm | tool | retrieval | other, name, input, output, error, duration_ms, tokens, cost_usd }.
curl -X POST https://proofmyai.com/api/v1/agent-runs \
  -H "Authorization: Bearer $PROOFMYAI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "run_id": "run_2026_0412",
    "agent_name": "refund-agent",
    "goal": "Refund order #1043",
    "status": "success",
    "final_output": "Refund of $49 issued.",
    "steps": [
      {"type": "tool", "name": "lookup_order", "output": {"total": 49}, "duration_ms": 320},
      {"type": "tool", "name": "issue_refund", "error": "Payment API timeout", "duration_ms": 30000, "cost_usd": 0.002}
    ]
  }'

Response 201 (example):

{"id": 812, "score": 55, "issues": [
  {"code": "TOOL_ERRORS", "severity": "high", "message": "..."},
  {"code": "ENDED_ON_ERROR", "severity": "medium", "message": "The last step failed but the run still reported success."}]}

Issue codes: RUN_FAILED, TOOL_ERRORS, LOOP_DETECTED, TOO_MANY_STEPS, OVER_BUDGET, SLOW_RUN, EMPTY_OUTPUT, ENDED_ON_ERROR, plus from the AI review GOAL_NOT_MET and UNGROUNDED_OUTPUT. Set your step, cost and time limits in project Settings.

POST /workflow-runs: n8n, Make and Zapier

Most people connect n8n or Make with an API key instead (see above). Use this endpoint for Zapier, self-built pipelines, or to push runs yourself. Send one run or an array of up to 500.

FieldTypeDescription
workflow_idstring, requiredYour workflow or scenario ID.
execution_idstring, requiredUnique ID of this run (duplicates are ignored).
statusstring, requiredsuccess, error, warning, running, waiting, cancelled or crashed.
platformstringn8n, make, zapier or other (default).
workflow_namestringReadable name shown in alerts.
started_atISO 8601When the run started, with a time zone, e.g. 2026-09-29T10:15:00Z.
duration_msnumberHow long it took.
output_itemsintegerHow many items it produced. 0 on a "success" is flagged as a silent failure.
error_messagestringThe error, if any.
curl -X POST https://proofmyai.com/api/v1/workflow-runs \
  -H "Authorization: Bearer $PROOFMYAI_KEY" \
  -H "Content-Type: application/json" \
  -d '[{"platform": "zapier", "workflow_id": "order-sync", "workflow_name": "Shopify โ†’ Sheets",
        "execution_id": "ex_99121", "status": "success", "output_items": 0, "duration_ms": 2400}]'

Response 201: {"received": 1, "created": 1, "duplicates": 0}

Errors & limits

StatusMeaning
400Invalid JSON or a missing/invalid field. The error field says which one.
401Missing or wrong API key, or the account is suspended.
402Your plan's monthly limit is reached. Upgrade under Plan & billing; nothing else breaks.
409An agent run with this run_id was already recorded.
413Body over 2 MB, or more than 500 workflow runs in one request.
429More than 600 requests per minute for one project. Retry after a short pause.

Errors look like {"error": "conversation_id: Required"}. A service health check is available at https://proofmyai.com/api/health, and live status at /status.

Privacy & data

Emails, phone numbers, card numbers, IBANs, IP addresses and names are masked before storage or AI checks. Per project you can turn on results-only storage, set auto-delete, add your own words to mask, or switch AI checking off. Details in the Trust Center.

Stuck? Open a support ticket or message us on WhatsApp. See what's new in the changelog.

Docs & API reference ยท ProofMyAI