AgentReady Monitor

For agents and developers

API

Everything the dashboard does, the API does too. Four endpoints, one bearer token, an OpenAPI spec at /api/v1/openapi.json. This page as Markdown: /docs/api.md.

Authentication

You create API keys in the dashboard under Account. The plaintext is shown exactly once — only a SHA-256 hash is stored.

curl https://ai-agent-ready.com/api/v1/cases \
  -H "Authorization: Bearer ark_live_..."

Conventions

Endpoints

GET/api/v1/casesTool: list_cases

Returns every case belonging to the account behind the API key, including the current overall score and the time of the last run.

Response
{
  "cases": [
    {
      "id": "4f1e9b2c-0d8a-4f7b-9d21-1b7c0c9a55e1",
      "name": "Beispiel CRM",
      "domain": "beispiel-crm.de",
      "kategorie": "CRM software for trade businesses",
      "konkurrenten": [
        "Craftnote",
        "Meisterwerk",
        "ToolTime"
      ],
      "status": "active",
      "latest_score": 44,
      "last_run_at": "2026-08-01T03:12:00.000Z"
    }
  ],
  "meta": {
    "pricing": {
      "model": "free"
    },
    "generated_at": "2026-08-25T09:12:44.000Z",
    "docs": "https://ai-agent-ready.com/docs/api"
  }
}
Errors
  • 401 unauthorized Bearer token missing or unknown.
  • 403 no_account No Monitor account exists for this key.
GET/api/v1/cases/{id}/summaryTool: get_case_summary

The result of the most recent finished run: overall score, score per model, share of answer against every competitor, top gaps and the delta to the previous run.

  • id (path, required) — Case id (UUID).
Response
{
  "case": {
    "id": "4f1e9b2c-0d8a-4f7b-9d21-1b7c0c9a55e1",
    "name": "Beispiel CRM"
  },
  "run": {
    "id": "9a0c...",
    "label": "Aug 26",
    "kind": "monthly",
    "finished_at": "2026-08-01T03:41:00.000Z"
  },
  "summary": {
    "total_score": 44,
    "per_model": {
      "openai": 48,
      "anthropic": 39,
      "perplexity": 51,
      "google": 38
    },
    "share_of_answer": [
      {
        "name": "Craftnote",
        "share": 0.8,
        "mentions": 8,
        "total": 10,
        "is_self": false
      },
      {
        "name": "Beispiel CRM",
        "share": 0.4,
        "mentions": 4,
        "total": 10,
        "is_self": true
      }
    ],
    "top_gaps": [
      "Preise werden nicht genannt",
      "Keine Aussage zur Testphase"
    ],
    "delta": {
      "total_score": -6,
      "per_model": {
        "openai": -4
      },
      "previous_run_id": "7c21..."
    }
  },
  "meta": {
    "pricing": {
      "model": "free"
    },
    "generated_at": "2026-08-25T09:12:44.000Z",
    "docs": "https://ai-agent-ready.com/docs/api"
  }
}
Errors
  • 404 not_found Case does not exist or belongs to another account.
  • 409 no_run No run has finished for this case yet.
GET/api/v1/cases/{id}/runsTool: list_runs

All measurement runs of a case, newest first, with status, overall score and the delta to the preceding run.

  • id (path, required) — Case id (UUID).
  • limit (query) — Maximum number of runs (1–100).
Response
{
  "runs": [
    {
      "id": "9a0c...",
      "label": "Aug 26",
      "kind": "monthly",
      "status": "done",
      "scheduled_for": "2026-08-01T03:00:00.000Z",
      "finished_at": "2026-08-01T03:41:00.000Z",
      "total_score": 44,
      "delta": -6
    }
  ],
  "meta": {
    "pricing": {
      "model": "free"
    },
    "generated_at": "2026-08-25T09:12:44.000Z",
    "docs": "https://ai-agent-ready.com/docs/api"
  }
}
Errors
  • 404 not_found Case does not exist or belongs to another account.
POST/api/v1/cases/{id}/runsTool: create_run

Queues a run. The worker picks it up within seconds. Pro plan only; a run that is already queued or in progress for the same case is not duplicated.

  • id (path, required) — Case id (UUID).
Response
{
  "run": {
    "id": "b71f...",
    "label": "After relaunch",
    "kind": "manual",
    "status": "queued"
  },
  "meta": {
    "pricing": {
      "model": "free"
    },
    "generated_at": "2026-08-25T09:12:44.000Z",
    "docs": "https://ai-agent-ready.com/docs/api"
  }
}
Errors
  • 402 plan_required The plan does not allow manual re-runs.
  • 409 run_pending A run is already queued or in progress for this case.

MCP

The MCP server does not run inside this application. It ships as a small Cloudflare Worker (Agents SDK) and consumes only this REST API — which is why each tool matches exactly one endpoint.