{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m5w1s4gsa5rx2yp7mfa07eka",
 "ids": {
  "org": "org_01m5w1s4gsbyj1v8akc976d0sw",
  "surfaces": {
   "web": "srf_01m5w1s4gs7yn9py0ecw402cgb",
   "api": "srf_01m5w1s4gsje32wvdbkmcwry84",
   "mcp": "srf_01m5w1s4gsxfx5q12aabykpfq4"
  },
  "slugs": [
   "reqres"
  ],
  "domain": "reqres.in",
  "mcp_registry": [
   "in.reqres/reqres"
  ]
 },
 "slug": "reqres",
 "name": "ReqRes",
 "url": "https://reqres.in",
 "domain": "reqres.in",
 "category": "api-testing",
 "category_name": "API testing and mocking",
 "tested_at": "2026-10-26",
 "run": "20261026T104527Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261026T104527Z",
   "date": "2026-10-26",
   "level": 4,
   "engine": {
    "model": "claude-opus-5-5",
    "driver": 5,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip",
    "version": "2026.10.26",
    "commit": "5fcdb911f0dcc3c91a9794ca76f8d4896244f439",
    "prompts": {
     "version": "2026.10.26",
     "commit": "9bef5e75f8e732d063fdfff8e766feca445cb123"
    },
    "rules": {
     "version": "2026.10.26",
     "commit": "5fcdb911f0dcc3c91a9794ca76f8d4896244f439"
    }
   },
   "stop": "delete",
   "paid": false,
   "agent_paid": null
  }
 ],
 "level": 4,
 "level_name": "Runs on its own",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 1,
  "tries": 1,
  "self_start": true
 },
 "badges": [
  "agent-can-leave"
 ],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: no key needed, runs locally, try first, claim later",
   "how": "no-account",
   "way": "keyless"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 88% of the core"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "No payment made: paying needs an account",
   "value": "not_tried",
   "route": "portal",
   "why": "account"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, deletes what it made",
   "how": "no-account",
   "left": "removed",
   "delete": {
    "state": "yes",
    "text": "Deletes what it made",
    "why": null
   }
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "yes",
   "text": "Docs it can act on: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "gaps"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: no key needed, runs locally, try first, claim later",
   "how": "no-account",
   "way": "keyless",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 88% of the core",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "No payment made: paying needs an account",
   "value": "not_tried",
   "route": "portal",
   "why": "account",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, deletes what it made",
   "how": "no-account",
   "left": "removed",
   "delete": {
    "state": "yes",
    "text": "Deletes what it made",
    "why": null
   },
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "keyless",
   "label": "No key needed",
   "routes": [
    "keyless"
   ],
   "minutes": 3,
   "core": "7/8"
  },
  {
   "key": "local",
   "label": "Runs locally",
   "routes": [
    "local"
   ],
   "minutes": 4,
   "core": "3/8"
  },
  {
   "key": "try_first",
   "label": "Try first, claim later",
   "routes": [
    "claimable"
   ],
   "minutes": 2,
   "core": "4/8"
  }
 ],
 "minutes": 2,
 "next": {
  "to": 5,
  "text": "Next: pay without a person"
 },
 "stop": "delete",
 "core": "7/8",
 "scores": {
  "coverage": 59,
  "reliability": 90,
  "resilience": 80,
  "setup": 90,
  "surface_coverage": 31,
  "docs_accuracy": 93,
  "docs_completeness": 47
 },
 "parts": {
  "holds_up": 85,
  "docs_match": 79,
  "setup": 90,
  "security": null,
  "standards": [
   {
    "standard": "MCP discovery",
    "state": "behind",
    "behind": null,
    "value": "legacy"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 2,
    "value": "3.0.3"
   }
  ]
 },
 "reliability_method": "pass^k",
 "resilience": {
  "parts": {
   "error_legibility": 91,
   "recovery": 82,
   "idempotency": 67
  },
  "summary": null
 },
 "stress": [
  {
   "capability": "Create or update a record in a collection",
   "probe": "record in a collection that does not exist",
   "outcome": "HTTP 404: {\"error\":\"collection_not_found\",\"message\":\"Collection not found.\",\"hint\":\"Check the collection slug and ensure it exists in this environment.\",\"next_steps\":[\"List collections: GET /api/colle",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create or update a record in a collection",
   "probe": "update a well-formed record id that does not exist",
   "outcome": "HTTP 404: {\"error\":\"record_not_found\",\"message\":\"Record not found.\",\"hint\":\"Verify the record ID and collection slug.\",\"next_steps\":[\"List records: GET /api/collections/:slug/records\",\"Check the recor",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create a collection",
   "probe": "create a collection without the required name",
   "outcome": "MCP error -32602: Input validation error: Invalid arguments for tool create_collection: Invalid input: expected string, received undefined at name",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create a project (hosted backend)",
   "probe": "bad credential: a wrong manage key",
   "outcome": "HTTP 403: {\"error\":\"invalid_api_key\",\"message\":\"This API key is not recognized or has been revoked.\",\"hint\":\"Check that your API key is correct and not expired.\",\"next_steps\":[\"Verify the key in your ",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create or update a record in a collection",
   "probe": "public key used for a write",
   "outcome": "HTTP 403: {\"error\":\"insufficient_scope\",\"message\":\"This API key has read-only permissions.\",\"hint\":\"Use a manage key or a read_write key for write operations.\",\"next_steps\":[\"Check your key permission",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create or update a record in a collection",
   "probe": "repeat one create (no idempotency key in MCP)",
   "outcome": "two records a131e629-6194-40a4-990b-ee0ed9ac671a and e7191a62-3a18-43cf-a72c-e0452947653e: duplicated (no idempotency key on the MCP tool or the records API)",
   "grade": "clear",
   "idempotent": "no",
   "rate_limit": null
  },
  {
   "capability": "Simulate a payment (create, confirm, decline, refund)",
   "probe": "repeat a create with the same Idempotency-Key, then change the body",
   "outcome": "201 pi_ZQP87NHW7WQW6VH30KYK0WP7KN twice (replayed, same id), then 409 {\"error\":\"idempotency_error\",\"message\":\"This Idempotency-Key was already used with a different request body. ...\"}",
   "grade": "clear",
   "idempotent": "yes",
   "rate_limit": null
  },
  {
   "capability": "List deterministic agent sandbox fixture data (users, orders)",
   "probe": "bad credential: an x-agent-id that was never issued",
   "outcome": "401 {\"error\":\"invalid_agent_key\",\"message\":\"The x-agent-id header does not match a valid agent key.\",\"hint\":\"... or omit the header to use the free tier.\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Trigger a deliberate failure scenario",
   "probe": "unknown scenario name",
   "outcome": "404 {\"error\":\"unknown_scenario\",\"message\":\"No scenario named 'no-such-scenario'\",\"hint\":\"Available: rate-limited, server-error, ...\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "List deterministic agent sandbox fixture data (users, orders)",
   "probe": "well-formed user id that does not exist",
   "outcome": "200 with a full user object (Marcus Khan) echoing the requested id: no 404 for an id that is not in the list (openapi lists 404 for this operation)",
   "grade": "silent",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "List and read records with filters",
   "probe": "burst of 15 quick reads",
   "outcome": "15 x HTTP 200, isError false; no RateLimit or X-RateLimit headers on /mcp, no 429 (project quota is 250 requests/day). /agent/v1 responses carry legacy X-RateLimit-Limit/Remaining/Reset (100/day per I",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "none-seen"
  },
  {
   "capability": "Create a collection",
   "probe": "go past the free collection limit; check state stays consistent",
   "outcome": "3rd 200; 4th HTTP 403 {\"error\":\"collection_limit_reached\",\"message\":\"Collection limit reached for your plan (3).\",\"limit\":3,\"current\":3,\"plan\":\"free\"}; list_collections afterwards: extra, tasks, produ",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  }
 ],
 "surface_audit": {
  "totals": {
   "items": 87,
   "documented": 87,
   "safe": 87,
   "exercised": 29,
   "passed": 27,
   "skipped": 0,
   "blocked": 58,
   "not_run": 0,
   "match": 27,
   "drift": 1,
   "broken_doc": 1,
   "docs_complete": 2,
   "docs_partial": 78,
   "docs_missing": 7,
   "errors_clear": 0,
   "errors_vague": 1,
   "errors_silent": 1
  }
 },
 "coverage_core": 88,
 "coverage_own": 88,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 5,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false
 },
 "methodology": 42,
 "rules_date": "2026-10-30",
 "engine": {
  "model": "claude-opus-5-5",
  "driver": 5,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip",
  "version": "2026.10.26",
  "commit": "5fcdb911f0dcc3c91a9794ca76f8d4896244f439",
  "prompts": {
   "version": "2026.10.26",
   "commit": "9bef5e75f8e732d063fdfff8e766feca445cb123"
  },
  "rules": {
   "version": "2026.10.26",
   "commit": "5fcdb911f0dcc3c91a9794ca76f8d4896244f439"
  }
 },
 "same_level_drives": 1,
 "drives": 1,
 "same_stop_drives": 1,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Cloudflare Turnstile (Clerk bot protection)",
  "visible": true,
  "type": "network",
  "human": null,
  "how": "Let verified bots and signed agents past the check on sign-up: in Cloudflare, add a WAF custom rule that skips the bot challenge on your sign-up paths for verified bots and for signed agents (rule field cf.bot_management.signed_agent; since 1 July 2026 signed agents count as verified bots), and render Turnstile only when the request is not from a verified agent.",
  "recognises_us": true,
  "vendor_id": "cloudflare",
  "other_way": true,
  "way": "email_password",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "robots",
   "kind": "signup",
   "at": "2026-10-26"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "pending",
  "robots": "closed",
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt, llm.txt, llm.json, openapi.json (3.0.3, 64 operations), pricing.md and an MCP server card all fetched without a browser."
  },
  "signup": {
   "status": "n/a",
   "note": "Not needed: a documented route works without an account.",
   "way": "keyless",
   "no_account": true,
   "note_driver": "No account needed: the documented MCP tool create_project made a claimable project with no email. The REST sign-up call POST /api/projects/sandbox was not sent (robots.txt disallows /api/ for AI agents) and the dashboard sign-up showed a Cloudflare Turnstile; neither was needed to get in.",
   "status_driver": "n/a"
  },
  "verify": {
   "status": "n/a",
   "note": "Not needed: a documented route works without an account.",
   "no_account": true,
   "note_driver": "No email needed for the MCP project.",
   "status_driver": "n/a"
  },
  "credentials": {
   "status": "headless",
   "note": "create_project returned a manage key (pro_) and a public key (pub_). No API to create, rotate or revoke keys: dashboard only.",
   "via": ""
  },
  "first_call": {
   "status": "headless",
   "note": "MCP list_collections with the manage key listed the starter products collection.",
   "route": "no_account"
  },
  "first_action": {
   "status": "headless",
   "note": "MCP create_collection and create_record, read back with list_collections and list_records."
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [
    "Stripe Elements card checkout in the dashboard"
   ],
   "rail_ids": [
    "stripe-elements"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "route": "portal",
   "checkout": {
    "reached": "no",
    "processor": "stripe_elements",
    "captcha": "none",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "none",
    "price": "5.00",
    "currency": "USD",
    "period": "month",
    "plan": "Lite",
    "last_button": ""
   },
   "person": "none",
   "ours": "no account",
   "note": "No agent rail: no 402 on reqres.in, no MPP, Stripe Projects or x402 listing, and no payment went through. Plans (Lite $5/mo up) are bought in the dashboard, which needs an account; the agent could not make one because the dashboard sign-up shows a visible Cloudflare Turnstile, so the checkout was not reached. Stripe Elements loads on /pricing."
  },
  "cancel": {
   "status": "n/a",
   "note": "Nothing to cancel: our agent used the free plan.",
   "docs_note": "Nothing to cancel: the drive used only the free tier. pricing.md 'Cancellation': \"Cancel any time from https://app.reqres.in/billing - access continues until the end of the current billing period.\" (web UI).",
   "docs_grade": "",
   "nothing": "free_plan"
  },
  "delete": {
   "status": "blocked",
   "note": "No documented way to delete a project: no MCP tool, and REST is closed by robots.txt. All 11 records were deleted over MCP (totals 0 afterwards). The product then removed the 3 unclaimed projects by itself: at 12:03Z, after their expires_at (about 1 h after creation), each manage key got HTTP 403 'This API key is not recognized or has been revoked.' The docs say 'Unclaimed projects are deleted after 72 hours', which does not match the 1 h seen.",
   "left": "removed",
   "after_hours": 72,
   "account": false
  }
 },
 "routes": [
  {
   "route": "keyless",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 3,
   "browser": false
  },
  {
   "route": "local",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 4,
   "browser": false
  },
  {
   "route": "claimable",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 2,
   "browser": false
  },
  {
   "route": "api_signup",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "robots",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0.1,
   "browser": null
  },
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "each",
   "brings": "inbox",
   "fresh": true,
   "minutes": 3,
   "browser": null
  },
  {
   "route": "sso_enterprise",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "no",
  "rail_offer": "none",
  "period": "month",
  "price": "5.00",
  "currency": "USD",
  "plan": "Lite"
 },
 "docs": {
  "at": "2026-10-26",
  "read": 9,
  "listed": 9,
  "sampled": false,
  "overall": "gaps",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "unknown",
  "newest": null,
  "core_pages": "3 of 9",
  "capabilities": "gaps",
  "label": "Some gaps"
 },
 "claims": {
  "claimed": 13,
  "tried": 7,
  "held": 7,
  "broken": 0,
  "unclear": 0,
  "not_tried": 6,
  "undocumented_works": 0
 },
 "pay_options": {
  "checked": "2026-10-26",
  "source": "probe",
  "options": [
   {
    "id": "stripe-elements",
    "name": "Stripe card form",
    "kind": "checkout",
    "first_party": true,
    "lead": false,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": true,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": false,
  "sdk": false,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": true
 },
 "urls": {
  "docs": null,
  "llms_txt": "https://reqres.in/llms.txt",
  "mcp": "https://reqres.in/mcp"
 },
 "surface_notes": {
  "api": "REST, 64 operations in openapi.json; /api/ closed to AI agents by robots.txt",
  "openapi": "3.0.3; payments sandbox routes missing",
  "mcp": "official, 7 tools, no auth",
  "llms_txt": "llms.txt with llm.txt, llm.json and pricing.md",
  "sandbox": "keyless agent sandbox and payments sandbox, 100 calls a day per IP"
 },
 "surface_sizes": [
  {
   "kind": "api",
   "listed": 75,
   "tested": 20
  },
  {
   "kind": "mcp",
   "listed": 7,
   "tested": 7
  }
 ],
 "can_do": [
  "Create a hosted backend project with no account through the MCP tool create_project",
  "Create collections and create, update, list and delete records through MCP",
  "Read deterministic seeded users and orders from the agent sandbox with no key",
  "Trigger the free failure scenarios (rate-limited, validation-error, malformed-json)",
  "Run a simulated payment end to end: intent, confirm, 3-D Secure, decline and refund",
  "Complete the sandbox MFA login flow",
  "Download scenario packs and replay a payments pack task",
  "Run the agent sandbox offline from the self-hosted image's own files, byte-identical to hosted"
 ],
 "cannot_do": [
  {
   "what": "Use the REST API (/api/), including the keyless demo users and the project API",
   "why": "robots.txt disallows /api/ for all user agents and for AI agents acting for a user"
  },
  {
   "what": "Sign up for a dashboard account",
   "why": "Cloudflare Turnstile on the sign-up form"
  },
  {
   "what": "Filter records, update or delete collections, or delete a project",
   "why": "REST-only (closed by robots.txt) or not offered; the MCP server has no tool for them"
  },
  {
   "what": "Run chains, trajectories, webhooks and 12 of 15 scenarios",
   "why": "Hosted, they need an agent key from the $49/mo Agent Developer plan; the self-hosted copy runs the preset chains and all scenarios free, but not trajectories or custom chains"
  },
  {
   "what": "Create, rotate or revoke API keys without a browser",
   "why": "Keys are managed only in the dashboard"
  },
  {
   "what": "Run the self-hosted sandbox with the documented docker run on x86-64",
   "why": "The image is published for arm64 only; it runs only when unpacked by hand"
  },
  {
   "what": "Enable trajectories or custom chains on the self-hosted copy",
   "why": "The image's own database migrations fail on an empty Postgres (they assume a table they never create)"
  }
 ],
 "blockers": [
  "robots.txt disallows /api/ for AI agents",
  "Cloudflare Turnstile on the dashboard sign-up"
 ],
 "tips_for_agents": [
  "Use the MCP server at https://reqres.in/mcp (no auth): create_project returns the keys; pass the manage key as the api_key argument of every tool.",
  "Wrap fields in {\"data\": {...}} only on REST; MCP create_record takes the fields in data directly.",
  "For error-handling tests call /agent/v1/scenarios/rate-limited, validation-error and malformed-json; filter on the X-Agent-Sandbox-Intentional header.",
  "Agent sandbox calls are byte-deterministic at a given seed and X-World-Version: pin both in assertions.",
  "Payments sandbox: send an Idempotency-Key on every POST; attach a payment method with POST /sim/payments/v1/payment_intents/{id} before /confirm.",
  "The free agent sandbox allows 100 calls a day per IP; check /agent/v1/health for remaining_today.",
  "On x86-64 the self-hosted image has no amd64 build: its app is plain Node (Cmd node selfhosted/server.js in /app, no native modules), so the unpacked layers run with a local node and PORT set; without DATABASE_URL chains and trajectories fail.",
  "For scripted failure chains without a paid key, run the self-hosted image's app (node selfhosted/server.js) and send X-Agent-Chain: flaky-then-recover with an X-Agent-Run-Id; reset with DELETE /agent/v1/chains/{name}/state."
 ],
 "selfhost": {
  "install": {
   "status": "headless",
   "minutes": 3,
   "note": "The documented `docker run -p 8080:8080 ghcr.io/benhowdle89/reqres-agent-world:v1.1.0` has no linux/amd64 image (arm64 only). Unpacking the image's app layers and running its own Cmd `node selfhosted/server.js` with the host's node (PORT=18080, no DATABASE_URL) started it headless in about 3 minutes; that route is undocumented. It serves /agent/v1 and /sim/payments/v1 only, byte-identical to hosted at seed 42 and world v1.1.0, with all 15 scenarios and the preset chains (X-Agent-Chain) free. Custom chains and trajectories need Postgres, and with our own Postgres 16 the image's migrate.js fails on its first migration (relation \"pro_users\" does not exist), so DATABASE_URL cannot be enabled from the published image."
  },
  "ladder": {
   "signup": {
    "status": "n/a",
    "note": "Local copy, no account."
   },
   "credentials": {
    "status": "n/a",
    "note": "No key needed locally; health reports tier agent_developer."
   },
   "first_call": {
    "status": "headless",
    "note": ""
   },
   "first_action": {
    "status": "headless",
    "note": "Payment intent created, confirmed and read back on the local copy."
   },
   "pay": {
    "status": "n/a",
    "note": "Self-hosted: nothing to pay or cancel."
   },
   "cancel": {
    "status": "n/a",
    "note": "Self-hosted: nothing to pay or cancel."
   }
  },
  "coverage_core": 44,
  "coverage_source": "computed"
 },
 "edge_case": "none",
 "summary": "An agent gets a working ReqRes backend with no account through the official MCP server: create_project hands back keys, and collections and records can be created, updated, listed and deleted. The keyless agent sandbox and payments sandbox work end to end on the free tier. robots.txt closes the whole REST API (/api/), including the no-key demo users, to AI agents, the dashboard sign-up shows a Cloudflare Turnstile, and hosted chains, trajectories and most failure scenarios need the $49/mo agent key.",
 "wall": "robots.txt closes /api/; Turnstile on sign-up",
 "plan_scope": "free plan (no-account MCP project and keyless sandbox)",
 "robots_stop": null,
 "robots": {
  "rule": "star",
  "step": null,
  "seen": "2026-10-26",
  "held": false
 },
 "terms": null,
 "terms_read": "2026-10-26",
 "email_gate": null,
 "plain": {
  "summary": "ReqRes is a hosted mock backend and test sandbox for developers and AI agents. An agent got a working backend with no account through its MCP server and used it to store and read data. It stopped at the REST API, which robots.txt closes to AI agents, and at a human check on the dashboard sign-up.",
  "can_do": [
   "Create a hosted backend project with no account through the MCP server",
   "Create collections and create, update, list and delete records, each read back",
   "Read seeded users and orders from the sandbox with no key",
   "Trigger the three free failure scenarios",
   "Run a simulated payment: intent, confirm, 3-D Secure, decline and refund",
   "Complete the sandbox MFA login and replay a scenario pack"
  ],
  "cannot_do": [
   {
    "what": "Use the REST API, including the keyless demo users",
    "why": "robots.txt closes /api/ to AI agents"
   },
   {
    "what": "Make a dashboard account",
    "why": "A visible Cloudflare Turnstile on the sign-up form"
   },
   {
    "what": "Filter records, change collections or delete a project",
    "why": "Only offered over the closed REST API; MCP has no tool"
   },
   {
    "what": "Run chains, trajectories, webhooks and 12 of 15 scenarios",
    "why": "They need the $49/mo agent key"
   },
   {
    "what": "Pay for a plan",
    "why": "Plans are bought in the dashboard, which needs an account"
   },
   {
    "what": "Create or revoke API keys",
    "why": "Keys are managed only in the dashboard"
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "Run a scripted multi-step failure chain",
   "plan": "Agent Developer ($49/mo)",
   "evidence": "GET /agent/v1/chains -> 401 agent_key_required; llms.txt 'Chains (agent key required)'; the preset chains run free on the self-hosted copy (selfhost block)."
  },
  {
   "capability": "List trajectories",
   "plan": "Agent Developer ($49/mo)",
   "evidence": "GET /agent/v1/trajectories -> 401 agent_key_required"
  },
  {
   "capability": "Diff two trajectories",
   "plan": "Agent Developer ($49/mo)",
   "evidence": "trajectories need an agent key"
  },
  {
   "capability": "Register a payments webhook",
   "plan": "Agent Developer / Agent Platform",
   "evidence": "POST /sim/payments/v1/webhook_endpoints -> 401 'Webhook endpoints need an issued agent key.'"
  },
  {
   "capability": "12 of 15 failure scenarios",
   "plan": "Agent Developer ($49/mo)",
   "evidence": "GET /agent/v1/scenarios/server-error -> 403 scenario_requires_upgrade"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Create a project (hosted backend)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/projects/sandbox",
    "mcp": "create_project",
    "cli": null,
    "ui": "app.reqres.in"
   },
   "check": "GET /api/collections with the returned manage key lists the starter 'products' collection",
   "capability_id": "cap_9a3jhdb4",
   "source": "https://reqres.in/llms.txt; https://reqres.in/openapi.json",
   "result": "done",
   "via": "mcp",
   "done_on": [
    "mcp"
   ]
  },
  {
   "id": "cap-02",
   "capability": "Create a collection",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/collections",
    "mcp": "create_collection",
    "cli": null,
    "ui": "app.reqres.in Data Explorer"
   },
   "check": "GET /api/collections/{slug} returns the new collection",
   "capability_id": "cap_pk30zdpd",
   "source": "https://reqres.in/openapi.json; https://reqres.in/llms.txt",
   "result": "done",
   "via": "mcp",
   "done_on": [
    "mcp"
   ]
  },
  {
   "id": "cap-03",
   "capability": "Create or update a record in a collection",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/collections/{slug}/records, PUT /api/collections/{slug}/records/{recordId}",
    "mcp": "create_record, update_record",
    "cli": null,
    "ui": "app.reqres.in Data Explorer"
   },
   "check": "GET /api/collections/{slug}/records/{recordId} shows the written fields",
   "capability_id": "cap_m34x9t4v",
   "source": "https://reqres.in/openapi.json; https://reqres.in/llms.txt ('Critical: request body format')",
   "result": "done",
   "via": "mcp",
   "done_on": [
    "mcp"
   ]
  },
  {
   "id": "cap-04",
   "capability": "List and read records with filters",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/collections/{slug}/records",
    "mcp": "list_records",
    "cli": null,
    "ui": "app.reqres.in Data Explorer"
   },
   "check": "GET returns the expected record set",
   "capability_id": "cap_bsb5z2vr",
   "source": "https://reqres.in/openapi.json",
   "result": "done",
   "via": "mcp",
   "done_on": [
    "mcp"
   ]
  },
  {
   "id": "cap-05",
   "capability": "List deterministic agent sandbox fixture data (users, orders)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /agent/v1/users, GET /agent/v1/orders",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Same (seed, path, world version) returns byte-identical response per X-World-Version header",
   "capability_id": "cap_xqrrtrx2",
   "unmapped": null,
   "source": "https://reqres.in/openapi.json; https://reqres.in/llms.txt ('Agent Sandbox conventions')",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-06",
   "capability": "Trigger a deliberate failure scenario",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /agent/v1/scenarios/{scenario}",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Response carries header X-Agent-Sandbox-Intentional: <name> and the documented status code/body",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/llms.txt FAQ 'Can I use ReqRes to test how my app handles API errors?'; https://reqres.in/openapi.json",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-07",
   "capability": "Run a scripted multi-step failure chain",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "POST /agent/v1/chains, GET /agent/v1/chains/{name}, header X-Agent-Chain",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Repeated calls with the same X-Agent-Chain advance through the chain's step sequence deterministically",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/llms.txt ('Chains (agent key required)')",
   "result": "partial",
   "via": "api",
   "done_on": [
    "api"
   ],
   "counted": false
  },
  {
   "id": "cap-08",
   "capability": "Simulate a payment (create, confirm, decline, refund)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "/sim/payments/v1/ (customers, payment_intents, charges, refunds)",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET the payment_intent shows status succeeded|failed per the test card token used",
   "capability_id": "cap_7wrqbjj1",
   "source": "https://reqres.in/llms.txt ('Payments Sandbox'); https://reqres.in/openapi.json GET /sim/payments/v1/",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-09",
   "capability": "Read demo fixture users with no signup or key",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/users, GET /api/users/{id}",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET /api/users/{id} returns the fixed demo user object",
   "capability_id": "cap_xqrrtrx2",
   "source": "https://reqres.in/openapi.json; https://reqres.in/ meta description",
   "result": "failed",
   "via": "api"
  },
  {
   "id": "cap-10",
   "capability": "Register and log in a demo user",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/register, POST /api/login, POST /api/logout",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "POST /api/login returns a token for the fixed demo credentials",
   "capability_id": "cap_hmk55v09",
   "source": "https://reqres.in/openapi.json",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-11",
   "capability": "Authenticate an app's end users via magic-link login",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/app-users/login, POST /api/app-users/verify, GET /api/app-users/me",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET /api/app-users/me with the issued Bearer session token returns the logged-in app user",
   "capability_id": "cap_hmk55v09",
   "source": "https://reqres.in/llms.txt ('Auth patterns'); https://reqres.in/openapi.json",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-12",
   "capability": "Manage app users (create, update, delete)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET/PUT/DELETE /api/app-users/{id}",
    "mcp": null,
    "cli": null,
    "ui": "app.reqres.in"
   },
   "check": "GET /api/app-users/{id} after PUT shows the updated fields",
   "capability_id": "cap_m34x9t4v",
   "source": "https://reqres.in/openapi.json",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-13",
   "capability": "Execute a custom endpoint with a user-defined response",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET/POST/PUT/PATCH/DELETE /api/custom/{path}",
    "mcp": null,
    "cli": null,
    "ui": "app.reqres.in"
   },
   "check": "Calling the defined path/method returns the configured response data",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/ FAQ 'How do custom endpoints work?'; https://reqres.in/openapi.json",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-14",
   "capability": "Run automations on collection data changes",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "app.reqres.in"
   },
   "check": "A triggering write produces the configured automation effect, visible in request logs",
   "capability_id": "cap_n1f0dmyw",
   "source": "https://reqres.in/ (ld+json featureList 'Automations and webhooks on collection events'; pricing 'Automations on data changes')",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-15",
   "capability": "Register a webhook on a sandbox payment event",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /sim/payments/v1/webhook_endpoints",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "A triggering payment event delivers a signed POST to the registered endpoint URL",
   "capability_id": "cap_977hxacb",
   "source": "https://reqres.in/llms.txt ('Webhooks (Agent Platform)')",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-16",
   "capability": "Browse collections and inspect request logs (Data Explorer)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "app.reqres.in Data Explorer"
   },
   "check": "The Data Explorer page lists the records and logs matching recent API calls",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/ FAQ 'What is the Data Explorer?'",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-17",
   "capability": "Export stored objects from the Data Explorer",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "app.reqres.in Data Explorer"
   },
   "check": "The exported file contains the current collection's records",
   "capability_id": "cap_8zwmj5wn",
   "source": "https://reqres.in/ FAQ 'What is the Data Explorer?' ('richer observability on paid plans')",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-18",
   "capability": "List trajectories recorded from agent sandbox calls",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /agent/v1/trajectories, GET /agent/v1/trajectories/{run_id}, GET /agent/v1/trajectories/{run_id}/export",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET /trajectories/{run_id} lists the ordered calls made under that X-Agent-Run-Id",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/llms.txt ('Trajectories (agent key required)')",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-19",
   "capability": "Diff two trajectories for divergence",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /agent/v1/trajectories/{a}/diff/{b}",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Response lists the divergence point and per-call deltas between the two runs",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/openapi.json; https://reqres.in/llms.txt",
   "result": "plan_gated",
   "via": "api",
   "counted": false
  },
  {
   "id": "cap-20",
   "capability": "Read a keyless demo trajectory (sample benchmark run)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /agent/v1/trajectories/demo",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Response returns the fixed rate-limit-storm demo call sequence with no auth",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/llms.txt ('Trajectory demo (keyless)')",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-21",
   "capability": "Generate an API from a UI screenshot (Image to API)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "app.reqres.in"
   },
   "check": "Uploading a screenshot produces generated REST endpoints and schemas to deploy",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/ FAQ 'How does the Image to API feature work?'",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-22",
   "capability": "Create and manage API keys with scoped permissions",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "app.reqres.in"
   },
   "check": "A read-only key fails a POST/PUT/DELETE call with a permission error; a manage key succeeds",
   "capability_id": "cap_wbg916v9",
   "source": "https://reqres.in/ FAQ 'What are the different API key types?'",
   "result": "blocked",
   "via": "browser"
  },
  {
   "id": "cap-23",
   "capability": "Run the sandbox offline via a self-hosted Docker image",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "docker run -p 8080:8080 ghcr.io/benhowdle89/reqres-agent-world:v1.1.0",
    "ui": null
   },
   "check": "The same seed and world version against the local container returns byte-identical responses to the hosted sandbox",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/llms.txt ('Self-hosted')",
   "result": "failed",
   "via": "cli"
  },
  {
   "id": "cap-24",
   "capability": "Download a scenario pack (chains, seeds, expected trajectories)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "https://reqres.in/packs/retry-basics.json, https://reqres.in/packs/payments-101.json",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "The downloaded pack's expected trajectories match live sandbox responses for the same seed",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://reqres.in/llms.txt ('Scenario packs')",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-25",
   "capability": "Complete an MFA challenge in the agent sandbox auth flow",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /agent/v1/auth/login, POST /agent/v1/auth/mfa/verify",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Submitting code 424242 against the returned challenge_token returns a session; any other code returns 401",
   "capability_id": "cap_caxts23w",
   "source": "https://reqres.in/llms.txt ('MFA flow'); https://reqres.in/openapi.json",
   "result": "done",
   "via": "api",
   "done_on": [
    "api"
   ]
  },
  {
   "id": "cap-26",
   "capability": "License ReqRes for commercial/company-wide use",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "https://reqres.in/commercial"
   },
   "check": "Procurement pack (licence agreement, security summary) is issued after purchase",
   "capability_id": null,
   "unmapped": "not_a_job",
   "source": "https://reqres.in/llms.txt ('Commercial licensing')",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-27",
   "capability": "Sponsor a placement on the site",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "https://reqres.in/sponsor"
   },
   "check": "A purchased placement appears on the homepage, docs, or blog as agreed",
   "capability_id": null,
   "unmapped": "not_a_job",
   "source": "https://reqres.in/llms.txt ('Sponsorship')",
   "result": "not_tried",
   "via": null
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/reqres.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [],
   "stop": "signup",
   "why": "it asks for a Cloudflare Turnstile check our agent doesn't solve",
   "tone": "wall",
   "text": "Signing up needs a person: it asks for a Cloudflare Turnstile check our agent doesn't solve."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [
    "credentials",
    "first_call",
    "first_action"
   ],
   "stop": "pay",
   "why": null,
   "tone": "neutral",
   "text": "Without an account (no key needed) it gets an API key, makes its first API call and does 88% of the core work. Payment wasn't tried."
  }
 },
 "sdk": null,
 "surface_reach": {
  "surfaces": {
   "api": true,
   "mcp": true
  },
  "read_at": "2026-10-31T01:51:41Z"
 },
 "connect": {
  "mcp": {
   "url": "https://reqres.in/mcp",
   "transport": "streamable-http",
   "state": "tested",
   "tools": {
    "count": 7,
    "names": [
     "create_project",
     "list_collections",
     "create_collection",
     "list_records",
     "create_record",
     "update_record",
     "delete_record"
    ],
    "read_at": "2026-10-31"
   }
  },
  "api": {
   "base_url": "https://reqres.in",
   "state": "documented"
  }
 },
 "surface_sources": {
  "mcp": "https://reqres.in/mcp",
  "docs": "https://reqres.in/llms.txt",
  "llms_txt": "https://reqres.in/llms.txt",
  "api": "https://reqres.in/openapi.json",
  "openapi": "https://reqres.in/openapi.json"
 },
 "copilot_connector": null,
 "stripe_directory": null,
 "in_stripe_directory": null,
 "stripe_projects": null,
 "pay_rails": [],
 "stop_evidence": {
  "at": "delete",
  "date": "2026-10-26",
  "line": "No documented way to delete a project: no MCP tool, and REST is closed by robots.txt. All 11 records were deleted over MCP (totals 0 afterwards)."
 },
 "wall_vendor": null,
 "mcp_sign_in": {
  "sign_in": false,
  "prm": null,
  "registration": null,
  "device": null
 },
 "safety_issues": 2,
 "fix_counts": {
  "small": 6,
  "medium": 2,
  "large": 0,
  "total": 8
 },
 "evidence_sha256": "06cbf827bd446dcdb1a8b9d8a1bd906ebb8c35f6b3f75dabd5d36730d227c63e",
 "first_seen": "2026-10-26",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "correction": {
  "status": "none",
  "open": 0,
  "since": null,
  "reply_by": null
 },
 "attribution": {
  "vendor": "Cloudflare Turnstile",
  "at": "signup",
  "state": "seen",
  "stopped": false,
  "line": null
 },
 "confirmation": {
  "state": "awaiting",
  "drives": 1,
  "agree": 1,
  "review": null,
  "text": "1 drive, awaiting confirmation"
 },
 "stop_shot": null,
 "stop_shot_hash": null,
 "attempts_count": 121,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "ReqRes is a hosted mock backend and test sandbox for developers and AI agents.",
 "kind": "test-service",
 "rules_version": "rules-2026-10-30-42",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-30-42",
 "category_median": null,
 "peers": null,
 "probe": {
  "checked": "2026-11-01",
  "status": "ok",
  "sign_up_page": "robots",
  "wall": "robots",
  "llms_txt": true,
  "mcp": "ok",
  "openapi": true,
  "payment_402": null,
  "payment_rails": [],
  "files": {
   "openapi": {
    "url": "https://reqres.in/openapi.json",
    "found": true
   },
   "llms_txt": {
    "url": "https://reqres.in/llms.txt",
    "found": true
   },
   "llms_full": {
    "url": null,
    "found": false
   }
  }
 },
 "probe_history": [
  {
   "checked": "2026-11-01",
   "status": "ok",
   "sign_up_page": "robots",
   "wall": "robots",
   "llms_txt": true,
   "mcp": "ok",
   "openapi": true,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-31",
   "status": "ok",
   "sign_up_page": "robots",
   "wall": "robots",
   "llms_txt": true,
   "mcp": "ok",
   "openapi": true,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-30",
   "status": "ok",
   "sign_up_page": "robots",
   "wall": "robots",
   "llms_txt": true,
   "mcp": "ok",
   "openapi": true,
   "payment_402": null,
   "payment_rails": []
  }
 ],
 "surface_changes": [],
 "agent_reports": null,
 "verdict": "L4 · Runs on its own: our agent used ReqRes without an account, through the official MCP server. No checkpoint stopped it on the way in: a documented route works without sign-up. create_project returned a manage key and a public key. Over MCP our agent created a collection and records, then read them back. Payment was not reached: plans are bought in the dashboard, whose sign-up shows a visible Cloudflare Turnstile. Nothing needed cancelling on the free plan. The product has no documented way to delete a project: our agent deleted its records over MCP, and the product removed the unclaimed projects by itself.",
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261026T104527Z",
    "date": "2026-10-26",
    "level": 4,
    "stop": "delete",
    "entry": "self-start",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/reqres/changes.json"
 },
 "agreement": null,
 "method_release": "2026-Q4.27",
 "found": {
  "agent_blockers": 2,
  "surface_issues": 10
 },
 "agent_surfaces": {
  "api": {
   "state": "tested",
   "reachable": true,
   "documented": 75,
   "tested": 20,
   "source": "https://reqres.in/openapi.json"
  },
  "mcp": {
   "state": "tested",
   "reachable": true,
   "documented": 7,
   "tested": 7,
   "source": "https://reqres.in/mcp"
  },
  "cli": {
   "state": "none_found",
   "reachable": null,
   "documented": null,
   "tested": null,
   "source": null
  },
  "sdk": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  },
  "docs": {
   "state": "tested",
   "documented": 9,
   "tested": 9,
   "source": "https://reqres.in/llms.txt"
  },
  "payment": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  }
 },
 "issues_found": 12,
 "rank": null,
 "rank_of": 0,
 "rank_change": null,
 "rank_since": null,
 "links": {
  "category": [
   {
    "label": "Developer platform",
    "href": "https://agentdrives.com/categories/developer"
   }
  ],
  "tasks": [
   {
    "label": "Create or update a record",
    "href": "https://agentdrives.com/tasks/create-or-update-a-record"
   },
   {
    "label": "Create a database",
    "href": "https://agentdrives.com/tasks/create-a-database"
   },
   {
    "label": "Query records with filters",
    "href": "https://agentdrives.com/tasks/query-records-with-filters"
   },
   {
    "label": "List databases and read their schema",
    "href": "https://agentdrives.com/tasks/list-databases-and-read-their-schema"
   }
  ],
  "walls": [],
  "vendors": [
   {
    "label": "Cloudflare",
    "href": "https://agentdrives.com/vendors/cloudflare",
    "note": "on one way in",
    "slug": "cloudflare"
   }
  ],
  "standards": [
   {
    "label": "MCP",
    "href": "https://agentdrives.com/standards/mcp",
    "note": "tools an agent can call"
   },
   {
    "label": "OpenAPI",
    "href": "https://agentdrives.com/standards/openapi",
    "note": "its API, described"
   },
   {
    "label": "llms.txt",
    "href": "https://agentdrives.com/standards/llms-txt",
    "note": "its docs, listed for agents"
   }
  ],
  "steps": [
   {
    "label": "Find",
    "href": "https://agentdrives.com/access/find"
   },
   {
    "label": "Get in",
    "href": "https://agentdrives.com/access/get-in"
   },
   {
    "label": "Use",
    "href": "https://agentdrives.com/access/use"
   },
   {
    "label": "Pay",
    "href": "https://agentdrives.com/access/pay"
   },
   {
    "label": "Leave",
    "href": "https://agentdrives.com/access/leave"
   }
  ],
  "rivals": [],
  "compare": [],
  "rail": [
   {
    "label": "Watch this product",
    "href": "https://agentdrives.com/watch"
   },
   {
    "label": "Get the data",
    "href": "https://agentdrives.com/data#plans"
   }
  ]
 },
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Create a project (hosted backend)",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "untried",
    "mcp": "done",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-02",
   "name": "Create a collection",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "untried",
    "mcp": "done",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-03",
   "name": "Create or update a record in a collection",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "untried",
    "mcp": "done",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-04",
   "name": "List and read records with filters",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "untried",
    "mcp": "done",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-05",
   "name": "List deterministic agent sandbox fixture data (users, orders)",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-06",
   "name": "Trigger a deliberate failure scenario",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-07",
   "name": "Run a scripted multi-step failure chain",
   "core": true,
   "result": "partial",
   "surfaces": {
    "api": "partial",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-08",
   "name": "Simulate a payment (create, confirm, decline, refund)",
   "core": true,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-09",
   "name": "Read demo fixture users with no signup or key",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-10",
   "name": "Register and log in a demo user",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-11",
   "name": "Authenticate an app's end users via magic-link login",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-12",
   "name": "Manage app users (create, update, delete)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-13",
   "name": "Execute a custom endpoint with a user-defined response",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-14",
   "name": "Run automations on collection data changes",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-15",
   "name": "Register a webhook on a sandbox payment event",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-16",
   "name": "Browse collections and inspect request logs (Data Explorer)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-17",
   "name": "Export stored objects from the Data Explorer",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-18",
   "name": "List trajectories recorded from agent sandbox calls",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-19",
   "name": "Diff two trajectories for divergence",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "plan",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-20",
   "name": "Read a keyless demo trajectory (sample benchmark run)",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-21",
   "name": "Generate an API from a UI screenshot (Image to API)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-22",
   "name": "Create and manage API keys with scoped permissions",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-23",
   "name": "Run the sandbox offline via a self-hosted Docker image",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "blocked",
    "ui": "none"
   }
  },
  {
   "id": "cap-24",
   "name": "Download a scenario pack (chains, seeds, expected trajectories)",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-25",
   "name": "Complete an MFA challenge in the agent sandbox auth flow",
   "core": false,
   "result": "done",
   "surfaces": {
    "api": "done",
    "mcp": "none",
    "cli": "none",
    "ui": "none"
   }
  },
  {
   "id": "cap-26",
   "name": "License ReqRes for commercial/company-wide use",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-27",
   "name": "Sponsor a placement on the site",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  }
 ],
 "category_place": {
  "category": "api-testing",
  "products": 0,
  "higher": 0,
  "same_level": 0,
  "as_of": "2026-10-26",
  "stop": null,
  "rivals_by": "level",
  "rivals": []
 },
 "page": "https://agentdrives.com/tools/reqres?via=api"
}