{
 "slug": "parallel",
 "name": "Parallel",
 "url": "https://parallel.ai",
 "domain": "parallel.ai",
 "category": "search-apis",
 "category_name": "Search APIs",
 "tested_at": "2026-10-15",
 "run": "20261015T062351Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T054703Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": false,
    "inbox": [
     "matfy.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261001T203553Z",
   "date": "2026-10-01",
   "level": 4,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": null,
    "robots": "start"
   },
   "why": "noise"
  },
  {
   "run": "20261002T144001Z",
   "date": "2026-10-02",
   "level": 3,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": null,
    "robots": "start"
   },
   "why": "product"
  },
  {
   "run": "20261013T053254Z",
   "date": "2026-10-13",
   "level": 2,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "obey"
   },
   "why": "product",
   "drives": 2
  },
  {
   "run": "20261015T062351Z",
   "date": "2026-10-15",
   "level": 5,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip"
   },
   "why": "product"
  }
 ],
 "level": 5,
 "level_name": "Autonomous",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 3,
  "tries": 3,
  "self_start": true
 },
 "badges": [
  "agent-can-buy"
 ],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: no key needed, pay per call, sign-up in a browser",
   "way": "keyless"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 80% of the core"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "yes",
   "text": "Pays on its own: paid $0.01 a call (x402), 15 Oct",
   "value": "paid",
   "route": "agent_rail",
   "per_call": {
    "caps": [
     "cap-01",
     "cap-02",
     "cap-03",
     "cap-10"
    ],
    "core": 5,
    "share": 80
   }
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; can't delete its account",
   "at": "delete",
   "left": "stuck"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server; a docs page for each core task",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: no key needed, pay per call, sign-up in a browser",
   "way": "keyless",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 80% of the core",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "yes",
   "text": "Pays on its own: paid $0.01 a call (x402), 15 Oct",
   "value": "paid",
   "route": "agent_rail",
   "per_call": {
    "caps": [
     "cap-01",
     "cap-02",
     "cap-03",
     "cap-10"
    ],
    "core": 5,
    "share": 80
   },
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; can't delete its account",
   "at": "delete",
   "left": "stuck",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "keyless",
   "label": "No key needed",
   "routes": [
    "keyless"
   ],
   "minutes": 1,
   "core": "2/5"
  },
  {
   "key": "pay_per_call",
   "label": "Pay per call",
   "routes": [
    "pay_per_call"
   ],
   "minutes": 1,
   "core": "4/5"
  },
  {
   "key": "browser_signup",
   "label": "Sign-up in a browser",
   "routes": [
    "magic_link",
    "device_login"
   ],
   "minutes": 1.5,
   "core": "3/5"
  }
 ],
 "minutes": 1,
 "next": {
  "to": null,
  "text": "Does it all on its own, payment included"
 },
 "stop": "delete",
 "core": "4/5",
 "scores": {
  "coverage": 68,
  "reliability": 100,
  "resilience": 59,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": 80,
  "docs_match": null,
  "setup": 100,
  "security": "private",
  "standards": [
   {
    "standard": "MCP",
    "state": "behind",
    "behind": 1,
    "value": "2025-11-25"
   },
   {
    "standard": "MCP discovery",
    "state": "behind",
    "behind": null,
    "value": "legacy"
   },
   {
    "standard": "MCP client registration",
    "state": "behind",
    "behind": null,
    "value": "dcr"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   }
  ]
 },
 "reliability_method": "pass^k",
 "resilience": {
  "parts": {
   "error_legibility": 100,
   "recovery": 78,
   "idempotency": 0
  },
  "summary": null
 },
 "stress": [
  {
   "capability": "Create an always-on monitor that watches the web for a query on a schedule",
   "probe": "missing required fields on monitor create",
   "outcome": "422 {type:error, error:{message:'Request validation error.', detail:{errors:[{type:missing, loc:[body,type], msg:'Field required'}, … settings]}}} content-type application/json (not problem+json)",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Fast synchronous entity search (people/company lookup)",
   "probe": "missing required fields on entity search",
   "outcome": "422 errors: missing body.entity_type, missing body.objective",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create an always-on monitor that watches the web for a query on a schedule",
   "probe": "well-formed monitor id that does not exist",
   "outcome": "HTTP/2 404  {\"type\": \"error\", \"error\": {\"ref_id\": \"3c47765d30223df3a1cf5d9e06846807\", \"message\": \"Monitor not found.\", \"detail\": null}}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create an always-on monitor that watches the web for a query on a schedule",
   "probe": "repeat one monitor create with the same Idempotency-Key",
   "outcome": "both 201, monitor ids ['monitor_e2c6753a73df42df80b82d69a8f0a627', 'monitor_ac983c9c76444f33a74a5fd590d942a3']",
   "grade": "clear",
   "idempotent": "no",
   "rate_limit": null
  },
  {
   "capability": "Create an always-on monitor that watches the web for a query on a schedule",
   "probe": "wrong API key",
   "outcome": "HTTP/2 401  {\"code\": 16, \"message\": \"Invalid API key (C.1)\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create an always-on monitor that watches the web for a query on a schedule",
   "probe": "burst of 15 quick GET /v1/monitors",
   "outcome": "codes ['200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200']; rate-limit headers: none",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "none-seen"
  },
  {
   "capability": "Batch-run many task inputs concurrently as a Task Group",
   "probe": "interrupt a multi-step batch: group created, run add refused (402)",
   "outcome": "runs 402; GET group afterwards: num_task_runs 0, is_active false, no half-written run",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create an always-on monitor that watches the web for a query on a schedule",
   "probe": "revoked key of our own",
   "outcome": "401 {code:16, message:'Invalid API key (C.2)'} (~20 s after revoke; immediately after it still answered 200)",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  }
 ],
 "surface_audit": null,
 "coverage_core": 80,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 4,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "9f4b18b8d5ad",
  "kb_version": "3+overlay-1353601952",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 4,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip"
 },
 "same_level_drives": 1,
 "drives": 6,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": null,
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-15"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "docs.parallel.ai with llms.txt, llms-full.txt, a .md page for every page and Accept: text/markdown, OpenAPI 3.1.0 for the API and the Account API, and an agents.md setup skill."
  },
  "signup": {
   "status": "browser",
   "note": "Web form only: email, then a sign-up link (magic link); no CAPTCHA, phone or password. No sign-up API. An anonymous Search MCP and a pay-per-call x402/MPP gateway need no account.",
   "way": "keyless"
  },
  "verify": {
   "status": "browser",
   "note": "The sign-up link arrived within a minute; one 'Continue to sign in' click, then create an organisation (name only), skip invites, optional survey."
  },
  "credentials": {
   "status": "headless",
   "note": "parallel-cli login --no-browser (RFC 8628 device flow, approved in our signed-in browser) gave tokens; the Account API then created an app and a key (POST /account/service/v1/apps, /apps/{id}/keys)."
  },
  "first_call": {
   "status": "headless",
   "note": "GET /v1/monitors answered 200 with our key. Every search, extract, task, FindAll, entity search and responses call answered 402 'Insufficient credit in account' on the $0 balance; free monthly credits need a payment method.",
   "route": "account"
  },
  "first_action": {
   "status": "headless",
   "note": "POST /v1/monitors created a monitor (201), read back, updated and cancelled; its scheduled run failed with the same credit error."
  },
  "pay": {
   "status": "headless",
   "grade": "P4",
   "rails": [
    "x402 v2 on Base (USDC)",
    "MPP (Tempo)",
    "Stripe Projects listing",
    "Stripe Elements card form"
   ],
   "rail_ids": [
    "x402",
    "mpp",
    "stripe-projects",
    "stripe-elements"
   ],
   "first_party": true,
   "rail_scope": "partial",
   "trial_path": "card trial",
   "3ds": "none",
   "route": "agent_rail",
   "checkout": {
    "reached": "card_form",
    "processor": "stripe_elements",
    "captcha": "invisible",
    "three_ds": "not_seen",
    "card_form": true,
    "phone_field": "none",
    "wallets": [
     "google_pay"
    ],
    "rail_offer": "x402",
    "price": null,
    "currency": "USD",
    "period": "usage",
    "plan": "prepaid balance",
    "last_button": "SAVE CARD"
   },
   "person": "none",
   "ours": "no_card",
   "note": "Parallel's own gateway parallelmpp.dev (named in its agentic-payments doc) takes x402 v2 and MPP; we paid four calls for $0.13 (search, extract, responses, task; tx in pay_tx.json), all 200. It sells only those endpoints, not FindAll, Monitor or entity search. In the app, balance is prepaid: 'Add to balance' needs a saved card (Stripe Elements form, SAVE CARD), and the free monthly credits also need a card.",
   "paid": {
    "rail": "x402",
    "network": "eip155:8453",
    "testnet": false,
    "tx": "0x66e60a00040963748e21ee94cbcc55eb67fc3d6d2d0a4319a8805a1a5dde05ba",
    "amount": 0.01,
    "currency": "USD",
    "at": "2026-10-15T06:24:34Z",
    "source": "pay_tx.json"
   },
   "per_call": {
    "caps": [
     "cap-01",
     "cap-02",
     "cap-03",
     "cap-10"
    ],
    "paid_caps": [
     "cap-01",
     "cap-02",
     "cap-03",
     "cap-10"
    ],
    "core": 5,
    "share": 80,
    "proof": "tasks"
   }
  },
  "cancel": {
   "status": "n/a",
   "grade": "X5",
   "note": "Nothing to cancel: our agent used it pay-per-call.",
   "docs_note": "Nothing to cancel: prepaid balance, no plan, auto-reload off; pay-per-call payments are one-off.",
   "nothing": "pay_per_call"
  },
  "delete": {
   "status": "blocked",
   "note": "No delete in the app, the docs or the APIs; the privacy policy says to email support@parallel.ai (not sent: we never mail people). We removed our app, key and monitors; the account, the organisation, an empty task group and the CLI's keys (its app 'cannot be deleted') stay.",
   "left": "stuck",
   "after_hours": null,
   "account": true
  },
  "coverage_core": {}
 },
 "routes": [
  {
   "route": "keyless",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 1
  },
  {
   "route": "pay_per_call",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "wallet",
   "fresh": true,
   "minutes": 1
  },
  {
   "route": "magic_link",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "partial",
   "wall": {
    "type": "card",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 6
  },
  {
   "route": "device_login",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "inbox",
   "fresh": false,
   "minutes": 1.5
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": false,
   "not_tried": "same_as",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null
  },
  {
   "route": "sso_enterprise",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null
  },
  {
   "route": "marketplace",
   "offered": "documented",
   "tried": false,
   "not_tried": "no_kit",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null
  },
  {
   "route": "person_key",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null
  }
 ],
 "checkout": {
  "reached": "card_form",
  "processor": "stripe_elements",
  "captcha": "invisible",
  "three_ds": "not_seen",
  "phone_field": "none",
  "wallets": [
   "google_pay"
  ],
  "rail_offer": "x402",
  "period": "usage",
  "card_form": true,
  "plan": "prepaid balance",
  "last_button": "SAVE CARD"
 },
 "docs": {
  "at": "2026-10-15",
  "read": 195,
  "listed": 203,
  "sampled": false,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "fresh",
  "newest": "2026-10-12",
  "core_pages": "10 of 10",
  "capabilities": "covered"
 },
 "claims": {
  "claimed": 19,
  "tried": 4,
  "held": 4,
  "broken": 0,
  "unclear": 0,
  "not_tried": 15,
  "undocumented_works": 0
 },
 "pay_options": {
  "checked": "2026-10-15",
  "source": "probe",
  "options": [
   {
    "id": "stripe-projects",
    "name": "Stripe Projects",
    "kind": "agent-rail",
    "first_party": true,
    "lead": false,
    "networks": [],
    "testnet": false
   },
   {
    "id": "x402",
    "name": "x402",
    "kind": "agent-rail",
    "first_party": true,
    "lead": false,
    "networks": [
     "Base"
    ],
    "testnet": false
   },
   {
    "id": "mpp",
    "name": "MPP",
    "kind": "agent-rail",
    "first_party": true,
    "lead": false,
    "networks": [
     "tempo:4217"
    ],
    "testnet": false
   }
  ],
  "agentic": [
   "stripe-projects",
   "x402",
   "mpp"
  ],
  "paid": {
   "rail": "x402",
   "network": "eip155:8453",
   "testnet": false,
   "tx": "0x66e60a00040963748e21ee94cbcc55eb67fc3d6d2d0a4319a8805a1a5dde05ba",
   "amount": 0.01,
   "currency": "USD",
   "at": "2026-10-15T06:24:34Z"
  },
  "exercised": true,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": [
   {
    "title": "Sell the plan or credits over the rail, not only side endpoints",
    "how": "Let the paid call buy what the product sells, so the rail covers the whole product."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST, 35 paths in the public OpenAPI plus 6 Account API paths",
  "openapi": "3.1.0, two specs (API and Account API)",
  "cli": "parallel-cli 0.9.3 (npm, uv, pipx, brew), device login"
 },
 "can_do": [
  "Search the web and extract page content through the free anonymous Search MCP, no account",
  "Pay per call with x402 or MPP for search, extract, responses and research tasks, no account",
  "Sign up with an email link and get an API key headlessly through the CLI's device login and the Account API",
  "Create, read, update, list and cancel web monitors through the API on a $0 balance",
  "Create and delete apps and API keys, and read the balance, through the Account API"
 ],
 "cannot_do": [
  {
   "what": "Run search, extract, research tasks, FindAll, entity search or responses on a new account",
   "why": "Every call answers 402 'Insufficient credit'; the free monthly credits need a saved card"
  },
  {
   "what": "Have a monitor actually run or send a webhook",
   "why": "Monitor runs fail with the same credit error"
  },
  {
   "what": "Use memory",
   "why": "'Memory is not available for this account yet'"
  },
  {
   "what": "Delete the account",
   "why": "No delete route; the privacy policy points to support@parallel.ai"
  },
  {
   "what": "Remove the CLI's API keys",
   "why": "The 'parallel-cli Users' app cannot be deleted and keys cannot be listed"
  }
 ],
 "blockers": [
  "No credit without a card: free monthly credits need a payment method",
  "No self-serve account deletion"
 ],
 "tips_for_owner": [
  "Give new accounts free credit without a card",
  "Accept x402 and MPP on api.parallel.ai",
  "Add account deletion to the app and Account API",
  "Let users list and revoke every key",
  "Support MCP (the 28 Jul 2026 spec) and server/discover"
 ],
 "tips_for_agents": [
  "For search and extract, use the anonymous Search MCP at https://search.parallel.ai/mcp: no key, and it answers 2025-11-25 (initialize, not server/discover). An authenticated key with $0 balance makes the same tools fail with 402.",
  "Headless key: parallel-cli login --no-browser (device code), then the Account API (POST /account/service/v1/apps, /apps/{id}/keys) for scoped keys.",
  "Without a card, pay per call at parallelmpp.dev with x402 (Base USDC) or MPP; GET /api/task/{run_id} polling is free.",
  "Monitor management endpoints (/v1/monitors, update is POST /v1/monitors/{id}/update) work at $0 but runs need credit.",
  "Validation errors are clear 422s that list the missing fields; key revocation takes about 20 s."
 ],
 "selfhost": null,
 "summary": "An agent can search and extract through Parallel's free anonymous MCP server and pay per call with x402 or MPP for search, extract, responses and research, all without an account. Signing up by email link works without a bot check and the CLI's device login plus the Account API give a key headlessly, but on a new account every paid endpoint answers 402 until a card is saved, so only monitor management works. The account cannot be deleted without emailing support.",
 "wall": "API calls need credit; credit needs a card",
 "plan_scope": "free plan ($0 prepaid balance; anonymous Search MCP; pay-per-call by us)",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Parallel is an API/tool suite for web search, research, and data-monitoring that AI agents can call. An agent got free search and extraction through a no-account tool, and could pay small per-call fees to search, extract, summarize, and run research tasks without ever creating an account. Signing up for a full account worked without any human checks, but every paid feature on that new account needed a saved credit card, which the test could not provide.",
  "can_do": [
   "Search the web and pull page content for free, with no account needed",
   "Pay small per-use fees (a few cents) to search, extract content, get AI answers, and run research tasks, no account needed",
   "Sign up by email link and get an API key automatically, with no CAPTCHA or human step",
   "Set up, check, change, and turn off scheduled 'watch the web' monitors on a brand-new free account"
  ],
  "cannot_do": [
   {
    "what": "Run searches, research, data lookups, or AI answers using a newly created account",
    "why": "The new account needs a saved credit card before it gets any free usage"
   },
   {
    "what": "Have a monitor actually send an alert",
    "why": "Alerts only fire on paid usage, which needs a card"
   },
   {
    "what": "Delete the account",
    "why": "There's no delete button; you must email support instead"
   },
   {
    "what": "Remove a login key created by the command-line tool",
    "why": "That particular key type cannot be listed or deleted"
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "Deep research (account route)",
   "plan": "prepaid credit (card required)",
   "evidence": "402 'Insufficient credit in account' on a $0 balance; free monthly credits only after adding a payment method"
  },
  {
   "capability": "Enrichment",
   "plan": "prepaid credit (card required)",
   "evidence": "402 'Insufficient credit in account' on a $0 balance; free monthly credits only after adding a payment method"
  },
  {
   "capability": "Processor choice",
   "plan": "prepaid credit (card required)",
   "evidence": "402 'Insufficient credit in account' on a $0 balance; free monthly credits only after adding a payment method"
  },
  {
   "capability": "FindAll",
   "plan": "prepaid credit (card required)",
   "evidence": "402 'Insufficient credit in account' on a $0 balance; free monthly credits only after adding a payment method"
  },
  {
   "capability": "Entity search",
   "plan": "prepaid credit (card required)",
   "evidence": "402 'Insufficient credit in account' on a $0 balance; free monthly credits only after adding a payment method"
  },
  {
   "capability": "Monitor runs",
   "plan": "prepaid credit (card required)",
   "evidence": "402 'Insufficient credit in account' on a $0 balance; free monthly credits only after adding a payment method"
  },
  {
   "capability": "Monitor webhooks",
   "plan": "prepaid credit (card required)",
   "evidence": "402 'Insufficient credit in account' on a $0 balance; free monthly credits only after adding a payment method"
  },
  {
   "capability": "Responses (account route)",
   "plan": "prepaid credit (card required)",
   "evidence": "402 'Insufficient credit in account' on a $0 balance; free monthly credits only after adding a payment method"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Search",
   "capability": "Search the web with a natural-language objective",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/search",
    "mcp": "web_search",
    "cli": "parallel-cli search",
    "ui": "Search Playground (platform.parallel.ai)"
   },
   "check": "Response contains ranked results with URLs and excerpts for the objective",
   "source": "https://docs.parallel.ai/api-reference/search/search; https://parallel.ai/products/search"
  },
  {
   "id": "cap-02",
   "group": "Extract",
   "capability": "Extract clean markdown/excerpts from a specific URL",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/extract",
    "mcp": "web_fetch (Search MCP)",
    "cli": "parallel-cli extract",
    "ui": "Extract Playground"
   },
   "check": "Response returns full_content or excerpts for the given URL",
   "source": "https://docs.parallel.ai/api-reference/extract/extract; https://parallel.ai/products/extract"
  },
  {
   "id": "cap-03",
   "group": "Task API",
   "capability": "Run deep research on an open-ended question and get a cited report",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/tasks/runs",
    "mcp": "Task MCP server",
    "cli": "parallel-cli research run",
    "ui": "platform.parallel.ai/play"
   },
   "check": "GET /v1/tasks/our records returns status completed with output and Basis citations",
   "source": "https://docs.parallel.ai/task-api/examples/task-deep-research; https://docs.parallel.ai/api-reference/tasks/create-task-run"
  },
  {
   "id": "cap-04",
   "group": "Task API",
   "capability": "Enrich existing structured records with new web-sourced fields",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/tasks/runs (input schema + output schema)",
    "mcp": "Task MCP server",
    "cli": "parallel-cli enrich run",
    "ui": "platform.parallel.ai/play"
   },
   "check": "Result JSON contains the requested enrichment fields populated with Basis confidence/citations",
   "source": "https://docs.parallel.ai/task-api/examples/task-enrichment; https://docs.parallel.ai/integrations/cli"
  },
  {
   "id": "cap-05",
   "group": "Task API",
   "capability": "Choose compute tier (processor) to trade cost/speed for depth of research",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "processor field on POST /v1/tasks/runs",
    "mcp": null,
    "cli": "--processor flag",
    "ui": "Playground processor selector"
   },
   "check": "Run created with processor=ultra takes materially longer and returns more fields/sources than processor=lite",
   "source": "https://docs.parallel.ai/task-api/guides/choose-a-processor; https://parallel.ai/pricing"
  },
  {
   "id": "cap-06",
   "group": "FindAll",
   "capability": "Discover a structured dataset of entities from a natural-language query",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/findall/runs",
    "mcp": null,
    "cli": null,
    "ui": "platform.parallel.ai/play/find-all"
   },
   "check": "GET run status/result shows a growing candidates list matching the query criteria",
   "source": "https://docs.parallel.ai/findall-api/findall-quickstart; https://docs.parallel.ai/api-reference/findall/create-findall-run"
  },
  {
   "id": "cap-07",
   "group": "FindAll",
   "capability": "Fast synchronous entity search (people/company lookup)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/findall/entity-search (Fast Entity Search)",
    "mcp": null,
    "cli": null,
    "ui": "platform.parallel.ai/play/find-all"
   },
   "check": "Synchronous response returns ranked entity matches within seconds",
   "source": "https://docs.parallel.ai/findall-api/entity-search; https://docs.parallel.ai/api-reference/findall/fast-entity-search"
  },
  {
   "id": "cap-08",
   "group": "Monitor",
   "capability": "Create an always-on monitor that watches the web for a query on a schedule",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/monitors",
    "mcp": null,
    "cli": null,
    "ui": "platform.parallel.ai/play/monitor"
   },
   "check": "GET /v1/monitors/{id} shows status active with configured cadence (hourly/daily/weekly)",
   "source": "https://docs.parallel.ai/monitor-api/monitor-quickstart; https://docs.parallel.ai/api-reference/monitor/create-monitor"
  },
  {
   "id": "cap-09",
   "group": "Monitor",
   "capability": "Receive webhook notifications when a monitor detects a new event",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "webhook_url field + POST callback",
    "mcp": null,
    "cli": null,
    "ui": "platform.parallel.ai monitor settings"
   },
   "check": "Configured webhook endpoint receives a POST with new event JSON after a matching web change",
   "source": "https://docs.parallel.ai/monitor-api/monitor-webhooks"
  },
  {
   "id": "cap-10",
   "group": "Responses API",
   "capability": "Ask a question and get a conversational answer with live web citations",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/responses",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Response includes answer text with citation annotations pointing to source URLs",
   "source": "https://docs.parallel.ai/responses-api/responses-quickstart; https://docs.parallel.ai/api-reference/responses-api/create-response"
  },
  {
   "id": "cap-11",
   "group": "Task API",
   "capability": "Batch-run many task inputs concurrently as a Task Group",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/tasks/groups, POST /v1/tasks/groups/{id}/runs",
    "mcp": null,
    "cli": "parallel-cli enrich run (bulk CSV)",
    "ui": null
   },
   "check": "GET /v1/tasks/groups/{id} shows aggregated status across all added runs",
   "source": "https://docs.parallel.ai/task-api/group-api; https://docs.parallel.ai/api-reference/tasks/create-task-group"
  },
  {
   "id": "cap-12",
   "group": "Task API",
   "capability": "Chain multi-turn research context across calls via interaction IDs",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "previous_interaction_id on POST /v1/tasks/runs",
    "mcp": null,
    "cli": "--previous-interaction-id",
    "ui": null
   },
   "check": "Follow-up run's output reflects context from the prior run without repeating input details",
   "source": "https://docs.parallel.ai/task-api/guides/interactions"
  },
  {
   "id": "cap-13",
   "group": "Task API",
   "capability": "Stream task/research progress via Server-Sent Events",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/tasks/our records (SSE)",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "SSE connection emits progress/status events before the final result event",
   "source": "https://docs.parallel.ai/task-api/task-sse; https://docs.parallel.ai/api-reference/tasks/stream-task-run-events"
  },
  {
   "id": "cap-14",
   "group": "Task API",
   "capability": "Restrict or require specific source domains/paths for a run (source policy)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "source_policy field on task/search/monitor requests",
    "mcp": null,
    "cli": "--include-domains / --exclude-domains",
    "ui": null
   },
   "check": "Run output cites only URLs within the configured allowed domains",
   "source": "https://docs.parallel.ai/resources/source-policy; https://docs.parallel.ai/search/source-policy"
  },
  {
   "id": "cap-15",
   "group": "Task API",
   "capability": "Pull data from licensed/private connectors beyond the open web",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "data_connectors field on POST /v1/tasks/runs",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Run result includes citations sourced from an enabled connector rather than open web search",
   "source": "https://docs.parallel.ai/resources/data-connectors; https://docs.parallel.ai/task-api/data-connectors"
  },
  {
   "id": "cap-16",
   "group": "Task API",
   "capability": "Call a remote MCP server as a tool during a task run",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "mcp_servers field on POST /v1/tasks/runs",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Task run trace/events show a tool call made to the configured MCP server",
   "source": "https://docs.parallel.ai/task-api/mcp-tool-call"
  },
  {
   "id": "cap-17",
   "group": "FindAll",
   "capability": "Preview a FindAll query against a small candidate sample before full run",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "preview param on POST /v1/findall/runs",
    "mcp": null,
    "cli": null,
    "ui": "FindAll Playground preview toggle"
   },
   "check": "Run returns ~10 candidates quickly at the Preview generator cost tier",
   "source": "https://docs.parallel.ai/findall-api/features/findall-preview"
  },
  {
   "id": "cap-18",
   "group": "FindAll",
   "capability": "Add enrichment fields to matched FindAll entities",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v1/findall/our records",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Candidate records in the run result gain the newly requested non-boolean fields",
   "source": "https://docs.parallel.ai/findall-api/features/findall-enrich; https://docs.parallel.ai/api-reference/findall/add-enrichment-to-findall-run"
  },
  {
   "id": "cap-19",
   "group": "FindAll",
   "capability": "Extend a completed FindAll run to fetch more matches",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v1/findall/our records",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Run's match_limit increases and new candidates beyond the prior limit appear",
   "source": "https://docs.parallel.ai/findall-api/features/findall-extend; https://docs.parallel.ai/api-reference/findall/extend-findall-run"
  },
  {
   "id": "cap-20",
   "group": "FindAll",
   "capability": "Cancel a running FindAll run early to stop costs",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/findall/our records",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET run status transitions to cancelled and no further matches accrue",
   "source": "https://docs.parallel.ai/findall-api/features/findall-cancel; https://docs.parallel.ai/api-reference/findall/cancel-findall-run"
  },
  {
   "id": "cap-21",
   "group": "FindAll",
   "capability": "Refresh a prior FindAll query to find only new entities since last run",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "exclude_list param on POST /v1/findall/runs",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "New run's results exclude entity IDs already returned by the previous run",
   "source": "https://docs.parallel.ai/findall-api/features/findall-refresh"
  },
  {
   "id": "cap-22",
   "group": "FindAll",
   "capability": "Stream FindAll candidate events live as they're found",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/findall/our records (SSE)",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "SSE stream emits candidate-found events before the run completes",
   "source": "https://docs.parallel.ai/findall-api/features/findall-sse; https://docs.parallel.ai/api-reference/findall/stream-findall-events"
  },
  {
   "id": "cap-23",
   "group": "Monitor",
   "capability": "Trigger a follow-up Task (enrichment/deep research) automatically from a monitor event",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "follow_up_task config on POST /v1/monitors",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "A detected monitor event produces a linked task run with research on that event",
   "source": "https://docs.parallel.ai/monitor-api/monitor-task"
  },
  {
   "id": "cap-24",
   "group": "Monitor",
   "capability": "Trigger an immediate out-of-schedule monitor run",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/monitors/{id}/trigger",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "A new monitor execution/events appear immediately rather than waiting for next scheduled cadence",
   "source": "https://docs.parallel.ai/api-reference/monitor/trigger-monitor-run"
  },
  {
   "id": "cap-25",
   "group": "Monitor",
   "capability": "Update or pause an existing monitor's cadence, webhook, or metadata",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /v1/monitors/{id}",
    "mcp": null,
    "cli": null,
    "ui": "platform.parallel.ai monitor settings"
   },
   "check": "GET monitor reflects updated cadence/webhook_url/status after the PATCH",
   "source": "https://docs.parallel.ai/api-reference/monitor/update-monitor; https://parallel.ai/products/monitor"
  },
  {
   "id": "cap-26",
   "group": "Monitor",
   "capability": "List and view aggregate stats across all monitors",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/monitors, GET /v1/monitors/stats",
    "mcp": null,
    "cli": null,
    "ui": "platform.parallel.ai monitors list"
   },
   "check": "Listing endpoint returns all created monitors with counts matching the stats endpoint",
   "source": "https://docs.parallel.ai/api-reference/monitor/list-monitors; https://docs.parallel.ai/api-reference/monitor/monitor-stats"
  },
  {
   "id": "cap-27",
   "group": "Memory",
   "capability": "Search and reuse past Task/Monitor/FindAll results as personal memory",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/memory/retrieve",
    "mcp": null,
    "cli": "parallel-cli (memory-aware agent skill)",
    "ui": "Settings → Account memory toggle"
   },
   "check": "Retrieve-memory call returns prior run content relevant to a new query instead of a fresh web search",
   "source": "https://docs.parallel.ai/resources/memory; https://docs.parallel.ai/api-reference/memory/retrieve-memory"
  },
  {
   "id": "cap-28",
   "group": "Memory",
   "capability": "Evict a specific source or clear an entire memory bank",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/memory/evict, POST /v1/memory/clear",
    "mcp": null,
    "cli": null,
    "ui": "Settings → Account/Organization memory controls"
   },
   "check": "Subsequent retrieve-memory call no longer returns the evicted/cleared entries",
   "source": "https://docs.parallel.ai/api-reference/memory/evict-from-memory; https://docs.parallel.ai/api-reference/memory/clear-memory"
  },
  {
   "id": "cap-29",
   "group": "Integrations",
   "capability": "Run searches/research from a local CLI (parallel-cli)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "parallel-cli search|extract|research|enrich",
    "ui": null
   },
   "check": "Terminal command returns JSON/markdown output matching an equivalent API call",
   "source": "https://docs.parallel.ai/integrations/cli"
  },
  {
   "id": "cap-31",
   "group": "Integrations",
   "capability": "Enrich data directly from SQL/dataframe tools (BigQuery, Snowflake, Spark, DuckDB, Polars, Supabase)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "A SQL UDF/UDTF call (e.g. BigQuery remote function) returns enriched columns sourced from Parallel",
   "source": "https://docs.parallel.ai/data-integrations/overview; https://docs.parallel.ai/data-integrations/bigquery"
  },
  {
   "id": "cap-33",
   "group": "Account",
   "capability": "Create an app and generate/delete API keys",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /account/service/apps, POST /account/service/apps/{id}/keys, DELETE key",
    "mcp": null,
    "cli": "parallel-cli login",
    "ui": "platform.parallel.ai settings"
   },
   "check": "Newly created key authenticates a request; deleted key is rejected with 401",
   "source": "https://docs.parallel.ai/service-api/apps/create-app; https://docs.parallel.ai/service-api/keys/create-key; https://docs.parallel.ai/service-api/keys/delete-key"
  },
  {
   "id": "cap-34",
   "group": "Account",
   "capability": "View and top up prepaid credit balance",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "GET /account/service/balance, POST /account/service/balance",
    "mcp": null,
    "cli": null,
    "ui": "platform.parallel.ai billing"
   },
   "check": "GET balance reflects the increased amount after a successful POST to add-to-balance",
   "source": "https://docs.parallel.ai/service-api/balance/get-balance; https://docs.parallel.ai/service-api/balance/add-to-balance"
  },
  {
   "id": "cap-35",
   "group": "Account",
   "capability": "Manage organization member roles and permissions",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Organization members"
   },
   "check": "A member assigned Admin role can access organization settings a Member role cannot",
   "source": "https://docs.parallel.ai/resources/organization-roles-and-permissions"
  },
  {
   "id": "cap-36",
   "group": "Account",
   "capability": "Authenticate third-party apps on a user's behalf via OAuth provider",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "Parallel OAuth device/auth-code flow",
    "mcp": null,
    "cli": "parallel-cli login --device",
    "ui": null
   },
   "check": "OAuth flow completes and issues a scoped Parallel API key to the requesting app",
   "source": "https://docs.parallel.ai/integrations/oauth-provider; https://docs.parallel.ai/integrations/account-api"
  }
 ],
 "attempts": [
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP version",
   "task": "server/discover on https://search.parallel.ai/mcp",
   "result": "done",
   "evidence": "HTTP 400 JSON-RPC -32600 'Unsupported protocol version: 2026-07-28. Supported versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25' -> legacy; initialize offering 2026-07-28 answered protocolVersion 2025-11-25, serverInfo 'Parallel Web Search MCP Server' 1.27.0, Mcp-Session-Id issued (mcp_search_init.json)",
   "notes": "legacy server; no -32022 error"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP keyless tools",
   "task": "tools/list on search MCP without credentials",
   "result": "done",
   "evidence": "tools: web_search, web_fetch (mcp_search_tools.json); calls return _meta parallel/usage cost_usd 0.001"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP task server",
   "task": "server/discover on https://task-mcp.parallel.ai/mcp",
   "result": "done",
   "evidence": "200 JSON-RPC -32601 'Method not found: server/discover'; initialize -> 401 WWW-Authenticate Bearer resource_metadata=https://task-mcp.parallel.ai/.well-known/oauth-protected-resource/mcp; PRM lists authorization_servers https://platform.parallel.ai, scopes key:read"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "OAuth AS metadata",
   "task": "GET platform.parallel.ai/.well-known/oauth-authorization-server",
   "result": "done",
   "evidence": "registration_endpoint /getKeys/register (DCR), device_authorization_endpoint /getKeys/device/code, grant types authorization_code + device_code, PKCE S256; no client_id_metadata_document_supported (no CIMD)"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP server card",
   "task": "GET <mcp>/server-card, /.well-known/ai-catalog.json, /.well-known/mcp/server-card.json",
   "result": "done",
   "evidence": "search.parallel.ai/mcp/server-card 404 text/plain; parallel.ai/.well-known/ai-catalog.json 404 HTML; parallel.ai/.well-known/mcp/server-card.json 308 -> search.parallel.ai/.well-known/mcp/server-card.json 200 application/json (schema 2025-12-11 server.schema.json, remote streamable-http https://search.parallel.ai/mcp)"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "A2A agent card",
   "task": "GET /.well-known/agent-card.json and agent.json",
   "result": "done",
   "evidence": "both 404 text/html"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "aipref",
   "task": "robots.txt Content-Usage and response header",
   "result": "done",
   "evidence": "parallel.ai/robots.txt: 'User-Agent: * Allow: / Disallow: /legal/*/sign' no Content-Usage/Content-signal lines; no Content-Usage header on pages fetched"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "markdown docs",
   "task": "Accept: text/markdown on docs page, and .md URL",
   "result": "done",
   "evidence": "docs.parallel.ai/search/search-quickstart with Accept text/markdown -> 200 text/markdown, Vary includes Accept; .md URL -> 200 text/markdown"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "OpenAPI",
   "task": "GET docs.parallel.ai/public-openapi.json and account openapi",
   "result": "done",
   "evidence": "public-openapi.json openapi 3.1.0, 35 paths; api.parallel.ai/account/service/openapi.json openapi 3.1.0, 6 paths (balance, balance/add, apps, keys)"
  },
  {
   "t": "02:04",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "llms.txt",
   "task": "GET /llms.txt",
   "result": "done",
   "evidence": "parallel.ai/llms.txt and docs.parallel.ai/llms.txt 200 text/plain; also llms-full.txt; agents.md is a SKILL-style setup file for parallel-cli"
  },
  {
   "t": "02:04",
   "cap": "docs",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Find docs",
   "task": "read docs_pass.json and fetch docs",
   "evidence": "docs.parallel.ai with llms.txt, markdown pages, OpenAPI 3.1.0; Account API (device OAuth), CLI docs, agentic payments doc"
  },
  {
   "t": "06:38",
   "cap": "signup",
   "way": "magic_link",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Sign up",
   "task": "platform.parallel.ai/signup: Sign up with email -> Get sign up link for the agent's inbox",
   "evidence": "'A sign up link was sent to the agent's inbox'; no CAPTCHA signals; only email asked (no password, no phone)",
   "notes": "web form only; no API sign-up documented"
  },
  {
   "t": "06:38",
   "cap": "verify",
   "way": "magic_link",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Verify email",
   "task": "open magic link from mail 'Log in to Parallel Web Systems'",
   "evidence": "mail arrived within ~1 min; link -> 'Continue to sign in' button -> /onboard; created org '[redacted]s' (orgId fd29a97e-…), skipped invites, survey optional -> /home, balance $0.00",
   "notes": "onboard page listed 4 existing orgs on agentdrives.com domain from earlier drives with a 'Request' button; not touched"
  },
  {
   "t": "06:38",
   "cap": "login",
   "way": "magic_link",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Session",
   "task": "magic-link session in browser",
   "evidence": "/home shows 'the agent's inbox', org [redacted]s Admin"
  },
  {
   "t": "06:38",
   "cap": "credentials",
   "way": "magic_link",
   "route": "cli",
   "documented": true,
   "result": "done",
   "verified": true,
   "key": "login",
   "capability": "CLI device login",
   "task": "parallel-cli login --no-browser --json (RFC 8628 device flow), approved code at /getServiceKeys/device in our signed-in browser",
   "evidence": "auth_success; parallel-cli auth --json authenticated true method oauth selected_org_name [redacted]s; balance get: $0.00",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://parallel.ai/agents.md"
   }
  },
  {
   "t": "08:37",
   "cap": "credentials",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "key": "create",
   "capability": "Scoped API key headless",
   "task": "Account API: POST /account/service/v1/apps then POST /apps/{id}/keys with the device-flow bearer token",
   "evidence": "200 app_id ff8457c2-…; 200 api_key_id 312c1a54-…, display_value ao****oVu_, raw_api_key returned once",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/account-api.md",
    "verify_route": "yes"
   },
   "notes": "GET /apps/{id}/keys answers 405 (allow: POST): no documented way to list keys"
  },
  {
   "t": "08:37",
   "cap": "first_call",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "capability": "First API call",
   "task": "POST https://api.parallel.ai/v1/search with the new key",
   "evidence": "HTTP 402 {'message':'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page …'}; balance $0.00; dashboard: 'Add a payment method to become eligible for free monthly credits'",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/search/search-quickstart.md",
    "error_legibility": "clear",
    "recoverable": "no"
   }
  },
  {
   "t": "08:37",
   "cap": "first_call",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "First API call (free endpoint)",
   "task": "GET /v1/monitors with the key",
   "evidence": "200 {monitors:[…]}; free management endpoints answer at $0 balance",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/api-reference"
   }
  },
  {
   "t": "08:37",
   "cap": "first_action",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Create something",
   "task": "POST /v1/monitors type event_stream frequency 1d",
   "evidence": "201 monitor_id monitor_eac4dbb9ad424024b2507a45ff6e4ac7 status active; GET read back 200",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/monitor-api/monitor-quickstart.md"
   }
  },
  {
   "t": "08:37",
   "cap": "cap-08",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "step": "create",
   "result": "done",
   "verified": true,
   "capability": "Create monitor",
   "task": "Watch the web for news about [redacted]s daily",
   "evidence": "POST /v1/monitors 201 monitor_eac4dbb9ad424024b2507a45ff6e4ac7",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/monitor-api/monitor-quickstart.md",
    "verify_route": "yes"
   }
  },
  {
   "t": "08:37",
   "cap": "cap-08",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "step": "read",
   "result": "done",
   "verified": true,
   "capability": "Create monitor",
   "task": "read back",
   "evidence": "GET /v1/monitors/{id} 200 status active frequency 1d; also in GET /v1/monitors list",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/monitor-api/monitor-quickstart.md",
    "verify_route": "yes"
   }
  },
  {
   "t": "08:37",
   "cap": "cap-08",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "step": "update",
   "result": "done",
   "verified": true,
   "capability": "Create monitor",
   "task": "POST /v1/monitors/{id}/update frequency 1w + metadata",
   "evidence": "200; GET read back frequency 1w metadata {drive: agentdrives}",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/api-reference",
    "verify_route": "yes"
   }
  },
  {
   "t": "08:37",
   "cap": "cap-08",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "step": "use",
   "result": "plan_gated",
   "verified": true,
   "capability": "Create monitor",
   "task": "let the monitor run: GET /v1/monitors/{id}/events",
   "evidence": "events: [{event_type: error, error_message: 'Insufficient credit in account, please check your plan and billing details…'}]; runs need prepaid credit; free monthly credits need a payment method (card)"
  },
  {
   "t": "08:37",
   "cap": "cap-26",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "List monitors and stats",
   "task": "GET /v1/monitors and GET /v1/monitors/stats",
   "evidence": "list 200 with our monitor; stats 200 {total:1, processor_counts:{active:{lite:{1w:1}}}}",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/api-reference",
    "verify_route": "yes"
   }
  },
  {
   "t": "08:37",
   "cap": "cap-25",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Update monitor",
   "task": "POST /v1/monitors/{id}/update frequency 1d->1w, metadata",
   "evidence": "200, read back shows frequency 1w",
   "quality": {
    "docs_match": "drift",
    "docs_url": "https://docs.parallel.ai/api-reference"
   },
   "notes": "map names PATCH /v1/monitors/{id}; the OpenAPI documents POST /v1/monitors/{id}/update (no PATCH)"
  },
  {
   "t": "08:37",
   "cap": "cap-24",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Trigger monitor run",
   "task": "POST /v1/monitors/{id}/trigger",
   "evidence": "204 accepted, but the monitor's run errors 'Insufficient credit in account' (events)"
  },
  {
   "t": "08:53",
   "cap": "cap-02",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Extract",
   "task": "POST /v1/extract with our account key",
   "evidence": "HTTP 402 'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page…' (balance $0.00; free monthly credits need a payment method)"
  },
  {
   "t": "08:53",
   "cap": "cap-03",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Deep research",
   "task": "POST /v1/tasks/runs processor lite with our account key",
   "evidence": "HTTP 402 'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page…' (balance $0.00; free monthly credits need a payment method)"
  },
  {
   "t": "08:53",
   "cap": "cap-06",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "FindAll",
   "task": "POST /v1beta/findall/runs generator preview with our account key",
   "evidence": "HTTP 402 'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page…' (balance $0.00; free monthly credits need a payment method)"
  },
  {
   "t": "08:53",
   "cap": "cap-07",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Entity search",
   "task": "POST /v1beta/findall/entity-search with our account key",
   "evidence": "HTTP 402 'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page…' (balance $0.00; free monthly credits need a payment method)"
  },
  {
   "t": "08:53",
   "cap": "cap-10",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Responses",
   "task": "POST /v1/responses with our account key",
   "evidence": "HTTP 402 'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page…' (balance $0.00; free monthly credits need a payment method)"
  },
  {
   "t": "08:53",
   "cap": "cap-01",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Search",
   "task": "POST /v1/search with our account key",
   "evidence": "HTTP 402 'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page…' (balance $0.00; free monthly credits need a payment method)"
  },
  {
   "t": "08:53",
   "cap": "cap-04",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Task API",
   "task": "POST /v1/tasks/runs with input/output schema / processor choice",
   "evidence": "same endpoint as HTTP 402 'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page…' (balance $0.00; free monthly credits need a payment method)"
  },
  {
   "t": "08:53",
   "cap": "cap-05",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Task API",
   "task": "POST /v1/tasks/runs with input/output schema / processor choice",
   "evidence": "same endpoint as HTTP 402 'Insufficient credit in account, please check your plan and billing details. You can add more funds from the billing page…' (balance $0.00; free monthly credits need a payment method)"
  },
  {
   "t": "08:53",
   "cap": "cap-09",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Monitor webhooks",
   "task": "webhook field on monitor",
   "evidence": "monitor runs fail for credit (events error), so no event can fire; also no webhook receiver of ours in the sandbox; webhook object {url, event_types} documented in CreateMonitorRequest"
  },
  {
   "t": "08:53",
   "cap": "cap-01",
   "way": "keyless",
   "route": "mcp",
   "documented": true,
   "step": "use",
   "result": "done",
   "verified": true,
   "capability": "Search the web",
   "task": "web_search via anonymous https://search.parallel.ai/mcp: what is [redacted]s",
   "evidence": "search_id search_06345922…, ranked results with url/title/excerpts; _meta parallel/usage sku_search cost_usd 0.001 (mcp_keyless_search.json)",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/mcp/search-mcp.md",
    "verify_route": "n/a"
   },
   "notes": "search has no stored object: create/update/delete n/a"
  },
  {
   "t": "08:53",
   "cap": "cap-02",
   "way": "keyless",
   "route": "mcp",
   "documented": true,
   "step": "use",
   "result": "done",
   "verified": true,
   "capability": "Extract",
   "task": "web_fetch https://example.com with objective",
   "evidence": "extract_id extract_8aa0479f…, title 'Example Domain', excerpt 'This domain is for use in documentation examples…' (mcp_keyless_fetch.json)",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/mcp/search-mcp.md",
    "verify_route": "n/a"
   }
  },
  {
   "t": "08:53",
   "cap": "cap-01",
   "way": "pay_per_call",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Search",
   "task": "our x402 v2 paid POST parallelmpp.dev/api/search",
   "evidence": "pay_tx.json payment 20261015T062351Z-mv95lu1lb27v, $0.01 USDC Base, tx 0x66e60a…, 200 search_id with results",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/agentic-payments.md"
   }
  },
  {
   "t": "08:53",
   "cap": "cap-02",
   "way": "pay_per_call",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Extract",
   "task": "our x402 paid POST parallelmpp.dev/api/extract",
   "evidence": "pay_tx.json tx 0x196873…, 200 extract_id, example.com excerpts",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/agentic-payments.md"
   }
  },
  {
   "t": "08:53",
   "cap": "cap-10",
   "way": "pay_per_call",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Responses",
   "task": "our x402 paid POST parallelmpp.dev/api/responses",
   "evidence": "pay_tx.json tx 0x84be7d…, 200 resp_216a5b20… model parallel",
   "quality": {
    "docs_match": "drift",
    "docs_url": "https://docs.parallel.ai/integrations/agentic-payments.md"
   },
   "notes": "/api/responses answers 402/200 but the agentic-payments doc's endpoint table lists only search, extract, task"
  },
  {
   "t": "09:05",
   "cap": "cap-03",
   "way": "pay_per_call",
   "route": "api",
   "documented": true,
   "step": "use",
   "result": "partial",
   "verified": true,
   "capability": "Deep research",
   "task": "our x402 paid POST parallelmpp.dev/api/task ($0.10), then free GET /api/task/{run_id}",
   "evidence": "pay_tx.json tx 0x8427ea…; poll 200 run trun_2eef201e… status completed processor pro; output basis with confidence low, no citations: input was a short test string '[redacted]s test', so no cited report",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/agentic-payments.md",
    "verify_route": "yes"
   },
   "notes": "the run and readback worked; the paid call's input was not a real research question, so a cited report is not shown"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "keyless",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "No-account way",
   "task": "anonymous Search MCP",
   "evidence": "initialize + tools/list + web_search + web_fetch answered without credentials; docs: 'The Search MCP is free to use, no API key required'"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "pay_per_call",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Pay per call",
   "task": "x402 v2 on parallelmpp.dev (we, pay_tx.json)",
   "evidence": "4 settled payments $0.13 total: search, extract, responses, task, each 200"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "api_signup",
   "result": "skipped",
   "not_tried": "same_as",
   "verified": false,
   "capability": "API sign-up",
   "task": "documented sign-up call",
   "evidence": "no sign-up API in the docs or either OpenAPI; device flow needs an existing signed-in account"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "stripe_projects",
   "result": "skipped",
   "not_tried": "no_kit",
   "verified": false,
   "capability": "Stripe Projects",
   "task": "stripe projects add parallel",
   "evidence": "listed in the Stripe Projects catalog (pay_probe); our agent has no Stripe Projects account"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "sso_google",
   "result": "skipped",
   "not_tried": "idp_blocked",
   "verified": false,
   "capability": "Sign up with Google",
   "task": "'Sign up with Google' button on /signup",
   "evidence": "button seen; this drive has no SSO kit (drive.json sso: []); Google blocks automated sign-in"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "sso_enterprise",
   "result": "skipped",
   "not_tried": "assisted_only",
   "verified": false,
   "capability": "SSO/SAML",
   "task": "'Sign in with SSO'",
   "evidence": "needs a company IdP"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "marketplace",
   "result": "skipped",
   "not_tried": "no_kit",
   "verified": false,
   "capability": "Google Cloud / AWS Marketplace",
   "task": "subscribe via a cloud marketplace",
   "evidence": "documented; our agent has no cloud marketplace account"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "person_key",
   "result": "skipped",
   "not_tried": "assisted_only",
   "verified": false,
   "capability": "Person's key",
   "task": "a person's API key",
   "evidence": "public drive"
  },
  {
   "t": "09:05",
   "cap": "signup",
   "way": "device_login",
   "route": "cli",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "CLI device login",
   "task": "parallel-cli login --no-browser on the magic-link account",
   "evidence": "device code approved in our signed-in browser; auth_success"
  },
  {
   "t": "10:02",
   "cap": "cap-08",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "step": "delete",
   "result": "done",
   "verified": true,
   "capability": "Create monitor",
   "task": "POST /v1/monitors/{id}/cancel and read back",
   "evidence": "200 status cancelled; GET by id still answers status cancelled; GET /v1/monitors list now empty",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/api-reference",
    "verify_route": "yes"
   },
   "notes": "no DELETE: cancel is the documented end state; object stays readable by id"
  },
  {
   "t": "10:04",
   "cap": "cap-08",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "trial": 2,
   "step": "create",
   "result": "done",
   "verified": true,
   "capability": "Create monitor",
   "task": "create, read back, cancel a monitor",
   "evidence": "HTTP/2 201 monitor_60dbcb86e92244a78607a556ed77dff7; GET status active; cancel -> cancelled",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/monitor-api/monitor-quickstart.md",
    "verify_route": "yes"
   }
  },
  {
   "t": "10:05",
   "cap": "cap-01",
   "way": "keyless",
   "route": "mcp",
   "documented": true,
   "trial": 2,
   "step": "use",
   "result": "done",
   "verified": true,
   "capability": "Search the web",
   "task": "anonymous web_search: who designed the Eiffel Tower",
   "evidence": "{\"jsonrpc\": \"2.0\", \"id\": 12, \"result\": {\"_meta\": {\"parallel/usage\": [{\"name\": \"sku_search\", \"count\": 1, \"cost_usd\": 0.001}]}, \"content\": [{\"type\": \"text\", \"text\": \"{\\n \\\"search_id\\\": \\\"search_ea5150c",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/mcp/search-mcp.md",
    "verify_route": "n/a"
   }
  },
  {
   "t": "10:06",
   "cap": "cap-02",
   "way": "keyless",
   "route": "mcp",
   "documented": true,
   "trial": 2,
   "step": "use",
   "result": "done",
   "verified": true,
   "capability": "Extract",
   "task": "anonymous web_fetch iana.org example-domains page",
   "evidence": "{\"jsonrpc\": \"2.0\", \"id\": 22, \"result\": {\"_meta\": {\"parallel/usage\": [{\"name\": \"sku_extract_excerpts\", \"count\": 1, \"cost_usd\": 0.001}]}, \"content\": [{\"type\": \"text\", \"text\": \"{\\n \\\"extract_id\\\": \\\"ext",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/mcp/search-mcp.md",
    "verify_route": "n/a"
   }
  },
  {
   "t": "10:08",
   "cap": "cap-08",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "trial": 3,
   "step": "create",
   "result": "done",
   "verified": true,
   "capability": "Create monitor",
   "task": "create, read back, cancel a monitor",
   "evidence": "HTTP/2 201 monitor_1dbaa9a4baba41bdbe5ed3c79e8e86b7; GET status active; cancel -> cancelled",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/monitor-api/monitor-quickstart.md",
    "verify_route": "yes"
   }
  },
  {
   "t": "10:09",
   "cap": "cap-01",
   "way": "keyless",
   "route": "mcp",
   "documented": true,
   "trial": 3,
   "step": "use",
   "result": "done",
   "verified": true,
   "capability": "Search the web",
   "task": "anonymous web_search: who designed the Eiffel Tower",
   "evidence": "{\"jsonrpc\": \"2.0\", \"id\": 13, \"result\": {\"_meta\": {\"parallel/usage\": [{\"name\": \"sku_search\", \"count\": 1, \"cost_usd\": 0.001}]}, \"content\": [{\"type\": \"text\", \"text\": \"{\\n \\\"search_id\\\": \\\"search_2e6cbee",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/mcp/search-mcp.md",
    "verify_route": "n/a"
   }
  },
  {
   "t": "10:10",
   "cap": "cap-02",
   "way": "keyless",
   "route": "mcp",
   "documented": true,
   "trial": 3,
   "step": "use",
   "result": "done",
   "verified": true,
   "capability": "Extract",
   "task": "anonymous web_fetch iana.org example-domains page",
   "evidence": "{\"jsonrpc\": \"2.0\", \"id\": 23, \"result\": {\"_meta\": {\"parallel/usage\": [{\"name\": \"sku_extract_excerpts\", \"count\": 1, \"cost_usd\": 0.001}]}, \"content\": [{\"type\": \"text\", \"text\": \"{\\n \\\"extract_id\\\": \\\"ext",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/mcp/search-mcp.md",
    "verify_route": "n/a"
   }
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-01",
   "surface": "api",
   "claim": "POST /v1/search",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)",
   "capability": "Docs claim: Search the web with a natural-language objective",
   "task": "POST /v1/search",
   "route": "api",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-01",
   "surface": "mcp",
   "claim": "web_search",
   "doc_url": "https://docs.parallel.ai/integrations/mcp/search-mcp.md",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "anonymous search.parallel.ai/mcp returned results; with our $0 key on /mcp-oauth: 'Error executing tool web_search: 402: Insufficient credit'",
   "capability": "Docs claim: Search the web with a natural-language objective",
   "task": "web_search",
   "route": "mcp",
   "evidence": "anonymous search.parallel.ai/mcp returned results; with our $0 key on /mcp-oauth: 'Error executing tool web_search: 402: Insufficient credit'"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-01",
   "surface": "cli",
   "claim": "parallel-cli search",
   "doc_url": "https://docs.parallel.ai/integrations/cli.md",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)",
   "capability": "Docs claim: Search the web with a natural-language objective",
   "task": "parallel-cli search",
   "route": "cli",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-02",
   "surface": "api",
   "claim": "POST /v1/extract",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)",
   "capability": "Docs claim: Extract clean markdown/excerpts from a specific URL",
   "task": "POST /v1/extract",
   "route": "api",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-02",
   "surface": "mcp",
   "claim": "web_fetch (Search MCP)",
   "doc_url": "https://docs.parallel.ai/integrations/mcp/search-mcp.md",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "anonymous call returned excerpts",
   "capability": "Docs claim: Extract clean markdown/excerpts from a specific URL",
   "task": "web_fetch (Search MCP)",
   "route": "mcp",
   "evidence": "anonymous call returned excerpts"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-02",
   "surface": "cli",
   "claim": "parallel-cli extract",
   "doc_url": "https://docs.parallel.ai/integrations/cli.md",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)",
   "capability": "Docs claim: Extract clean markdown/excerpts from a specific URL",
   "task": "parallel-cli extract",
   "route": "cli",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-03",
   "surface": "api",
   "claim": "POST /v1/tasks/runs",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method); via x402 gateway /api/task it ran (we paid)",
   "capability": "Docs claim: Run deep research on an open-ended question and get a cited report",
   "task": "POST /v1/tasks/runs",
   "route": "api",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method); via x402 gateway /api/task it ran (we paid)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-03",
   "surface": "mcp",
   "claim": "Task MCP createDeepResearch",
   "doc_url": "https://docs.parallel.ai/integrations/mcp/task-mcp.md",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "processor lite -> clear 400 'Deep Research requires pro or ultra processors' with valid list; pro-fast -> 402 Insufficient credit wrapped as status 500",
   "capability": "Docs claim: Run deep research on an open-ended question and get a cited report",
   "task": "Task MCP createDeepResearch",
   "route": "mcp",
   "evidence": "processor lite -> clear 400 'Deep Research requires pro or ultra processors' with valid list; pro-fast -> 402 Insufficient credit wrapped as status 500"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-03",
   "surface": "cli",
   "claim": "parallel-cli research run",
   "doc_url": "https://docs.parallel.ai/integrations/cli.md",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)",
   "capability": "Docs claim: Run deep research on an open-ended question and get a cited report",
   "task": "parallel-cli research run",
   "route": "cli",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-04",
   "surface": "api",
   "claim": "POST /v1/tasks/runs (input schema + output schema)",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)",
   "capability": "Docs claim: Enrich existing structured records with new web-sourced fields",
   "task": "POST /v1/tasks/runs (input schema + output schema)",
   "route": "api",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-04",
   "surface": "mcp",
   "claim": "Task MCP createTaskGroup",
   "doc_url": "https://docs.parallel.ai/integrations/mcp/task-mcp.md",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "same credit gate as task runs (task group runs 402)",
   "capability": "Docs claim: Enrich existing structured records with new web-sourced fields",
   "task": "Task MCP createTaskGroup",
   "route": "mcp",
   "evidence": "same credit gate as task runs (task group runs 402)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-04",
   "surface": "cli",
   "claim": "parallel-cli enrich run",
   "doc_url": "https://docs.parallel.ai/integrations/cli.md",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "same Task API credit gate",
   "capability": "Docs claim: Enrich existing structured records with new web-sourced fields",
   "task": "parallel-cli enrich run",
   "route": "cli",
   "evidence": "same Task API credit gate"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-05",
   "surface": "api",
   "claim": "processor field on POST /v1/tasks/runs",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)",
   "capability": "Docs claim: Choose compute tier (processor) to trade cost/speed for depth of research",
   "task": "processor field on POST /v1/tasks/runs",
   "route": "api",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-05",
   "surface": "cli",
   "claim": "--processor flag",
   "doc_url": "https://docs.parallel.ai/integrations/cli.md",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "flag exists with 18 tiers in parallel-cli research run --help; the run itself 402",
   "capability": "Docs claim: Choose compute tier (processor) to trade cost/speed for depth of research",
   "task": "--processor flag",
   "route": "cli",
   "evidence": "flag exists with 18 tiers in parallel-cli research run --help; the run itself 402"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-06",
   "surface": "api",
   "claim": "POST /v1beta/findall/runs",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method); note map says /v1/findall/runs, OpenAPI path is /v1beta/findall/runs",
   "capability": "Docs claim: Discover a structured dataset of entities from a natural-language query",
   "task": "POST /v1beta/findall/runs",
   "route": "api",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method); note map says /v1/findall/runs, OpenAPI path is /v1beta/findall/runs"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-07",
   "surface": "api",
   "claim": "POST /v1beta/findall/entity-search",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)",
   "capability": "Docs claim: Fast synchronous entity search (people/company lookup)",
   "task": "POST /v1beta/findall/entity-search",
   "route": "api",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-08",
   "surface": "api",
   "claim": "POST /v1/monitors",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "201, read back, update, cancel all worked at $0; runs error for credit",
   "capability": "Docs claim: Create an always-on monitor that watches the web for a query on a schedule",
   "task": "POST /v1/monitors",
   "route": "api",
   "evidence": "201, read back, update, cancel all worked at $0; runs error for credit"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-09",
   "surface": "api",
   "claim": "webhook field on POST /v1/monitors",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "monitor runs fail for credit; no receiver of ours",
   "capability": "Docs claim: Receive webhook notifications when a monitor detects a new event",
   "task": "webhook field on POST /v1/monitors",
   "route": "api",
   "evidence": "monitor runs fail for credit; no receiver of ours"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-10",
   "surface": "api",
   "claim": "POST /v1/responses",
   "doc_url": "https://docs.parallel.ai/api-reference",
   "result": "plan_gated",
   "verified": false,
   "documented": true,
   "notes": "402 Insufficient credit ($0 balance; free monthly credits need a payment method); via x402 gateway /api/responses it answered (we paid)",
   "capability": "Docs claim: Ask a question and get a conversational answer with live web citations",
   "task": "POST /v1/responses",
   "route": "api",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method); via x402 gateway /api/responses it answered (we paid)"
  },
  {
   "kind": "claim",
   "t": "10:59",
   "cap": "cap-08",
   "surface": "cli",
   "claim": "parallel-cli monitor list|create|update|cancel",
   "doc_url": "https://docs.parallel.ai/integrations/cli.md",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "parallel-cli monitor list showed our monitor; not in the map's surfaces",
   "capability": "Docs claim: Create an always-on monitor that watches the web for a query on a schedule",
   "task": "parallel-cli monitor list|create|update|cancel",
   "route": "cli",
   "evidence": "parallel-cli monitor list showed our monitor; not in the map's surfaces"
  },
  {
   "t": "10:59",
   "cap": "cap-11",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "Task Group",
   "task": "POST /v1/tasks/groups then add a run",
   "evidence": "group created 200 tgrp_6d418bbf9c0b4d6da03110dbaeb31c30, GET read back 200; POST /groups/{id}/runs -> 402 Insufficient credit"
  },
  {
   "t": "10:59",
   "cap": "cap-17",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "FindAll preview",
   "task": "POST /v1beta/findall/runs generator preview",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method); POST /v1beta/findall/ingest (schema from objective) answered 200 for free"
  },
  {
   "t": "10:59",
   "cap": "cap-13",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "SSE task events: no task run could be created (402)",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-14",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "source_policy needs a search/task run: 402",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-20",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "FindAll cancel needs a FindAll run: 402 on create",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-22",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "FindAll SSE needs a FindAll run: 402",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-12",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "previous_interaction_id needs task runs: 402",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-15",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "data_connectors: paid per map; task runs 402",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-16",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "mcp_servers on task runs: 402",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-18",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "FindAll enrich needs a run: 402",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-19",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "FindAll extend needs a run: 402",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-21",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "exclude_list on FindAll: 402",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-23",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "",
   "task": "follow-up task from monitor: monitor runs fail for credit",
   "evidence": "402 Insufficient credit ($0 balance; free monthly credits need a payment method)"
  },
  {
   "t": "10:59",
   "cap": "cap-27",
   "way": "magic_link",
   "route": "cli",
   "documented": true,
   "result": "failed",
   "verified": true,
   "capability": "Memory retrieve",
   "task": "parallel-cli memory retrieve; POST /v1beta/memory/retrieve",
   "evidence": "CLI: 'Memory API error: Memory is not available for this account yet.'; API with app key: 403 'Requests with an app API key must include a memory_scope_key.'",
   "quality": {
    "error_legibility": "clear",
    "docs_match": "drift",
    "docs_url": "https://docs.parallel.ai/api-reference/memory/clear-memory.md",
    "recoverable": "no"
   }
  },
  {
   "t": "10:59",
   "cap": "cap-28",
   "way": "magic_link",
   "route": "cli",
   "documented": true,
   "result": "failed",
   "verified": true,
   "capability": "Memory evict/clear",
   "task": "parallel-cli memory clear",
   "evidence": "memory not available for this account yet (same as)",
   "quality": {
    "error_legibility": "clear"
   }
  },
  {
   "t": "10:59",
   "cap": "cap-29",
   "way": "magic_link",
   "route": "cli",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "capability": "CLI",
   "task": "parallel-cli search/extract/research run",
   "evidence": "login, auth, balance get, monitor list worked; search/extract/research 'Insufficient credit'"
  },
  {
   "t": "10:59",
   "cap": "cap-31",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "capability": "SQL/dataframe integrations",
   "task": "docs check",
   "evidence": "documented at docs.parallel.ai/data-integrations/duckdb.md (and BigQuery, Snowflake, Spark, Polars, Supabase pages); needs task credit and the host tools; not run"
  },
  {
   "t": "10:59",
   "cap": "cap-33",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Apps and keys",
   "task": "Account API create app + key (see credentials)",
   "evidence": "POST /apps 200, POST /apps/{id}/keys 200; GET /apps lists the new app",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/account-api.md"
   }
  },
  {
   "t": "10:59",
   "cap": "cap-34",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Balance",
   "task": "GET /account/service/v1/balance; parallel-cli balance get",
   "evidence": "200 credit_balance_cents 0.0, will_invoice false; CLI 'Credit balance: $0.00'; top-up (POST /balance/add) charges the default payment method: not called (no card)",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/service-api/balance/add-to-balance.md"
   }
  },
  {
   "t": "10:59",
   "cap": "cap-35",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "capability": "Org roles",
   "task": "docs check",
   "evidence": "documented at docs.parallel.ai/resources/organization-roles-and-permissions.md; web UI only; inviting members would mail people: not done"
  },
  {
   "t": "10:59",
   "cap": "cap-36",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "OAuth provider",
   "task": "AS metadata + device flow",
   "evidence": "platform.parallel.ai/.well-known/oauth-authorization-server lists authorize, token, register (DCR), device endpoints; our CLI device flow obtained tokens (docs: oauth-provider.md)",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/oauth-provider.md"
   }
  },
  {
   "t": "15:00",
   "cap": "pay",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Pay probes",
   "task": "read pay_probe.json/pay_tx.json; docs; billing API",
   "evidence": "x402 v2 (Base USDC, eip155:8453) and MPP (tempo) 402s on parallelmpp.dev, named in docs.parallel.ai/integrations/agentic-payments.md; mpp.dev lists it first-party; Stripe Projects catalog lists parallel (lead); we paid 4 calls $0.13 (search, extract, responses, task), all 200; Account API POST /service/v1/balance/add charges the org's default payment method (card attached in the web app); prepaid credit, no plans; free monthly credits only after adding a payment method",
   "notes": "no 402 on api.parallel.ai itself: it answers 402 JSON 'Insufficient credit' without PAYMENT-REQUIRED or WWW-Authenticate: Payment"
  },
  {
   "t": "15:00",
   "cap": "pay",
   "step": "checkout",
   "way": "magic_link",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Walk to last click",
   "task": "Billing > Add to balance, and Billing > Add a payment method",
   "evidence": "'Add to balance' dialog: Amount $, Payment method 'Select a payment method', button PURCHASE (needs a saved card first); 'Add a payment method' dialog: Stripe Elements card form (Country, ZIP, card number, expiry, CVC), button SAVE CARD; Stripe hcaptcha-invisible frame and Google Pay frame loaded; no phone field. Stopped: no card for this drive",
   "notes": "reached card_form; never typed a card"
  },
  {
   "t": "15:00",
   "cap": "cancel",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "capability": "Cancel",
   "task": "nothing recurring was started",
   "evidence": "prepaid balance only; Auto-reload Off; no plan or trial started; nothing to cancel"
  },
  {
   "t": "15:41",
   "cap": "cap-10",
   "way": "pay_per_call",
   "trial": 2,
   "route": "api",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "capability": "Responses",
   "task": "repeat paid /api/responses",
   "evidence": "we makes one paid call per task (pay_tx.json); the agent never pays; account route needs credit (402)"
  },
  {
   "t": "15:41",
   "cap": "cap-10",
   "way": "pay_per_call",
   "trial": 3,
   "route": "api",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "capability": "Responses",
   "task": "repeat paid /api/responses",
   "evidence": "we makes one paid call per task (pay_tx.json); the agent never pays; account route needs credit (402)"
  },
  {
   "t": "16:14",
   "cap": "credentials",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "key": "use",
   "result": "done",
   "verified": true,
   "capability": "Use key",
   "task": "GET/POST /v1/monitors with the created key",
   "evidence": "200/201 (monitor created, listed, updated, cancelled)",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/api-reference"
   }
  },
  {
   "t": "16:14",
   "cap": "credentials",
   "way": "magic_link",
   "route": "api",
   "documented": true,
   "key": "revoke",
   "result": "done",
   "verified": true,
   "capability": "Revoke key",
   "task": "DELETE /account/service/v1/apps/{app}/keys/{key}",
   "evidence": "204; the key still answered 200 right after; ~20 s later 401 {'code':16,'message':'Invalid API key (C.2)'}",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.parallel.ai/integrations/account-api.md",
    "verify_route": "yes"
   },
   "notes": "revocation takes effect within ~20 s, not instantly"
  },
  {
   "t": "19:51",
   "cap": "delete",
   "way": "magic_link",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "capability": "Delete account",
   "task": "find account/org deletion in Settings (Account, Organization, Team, user menu), docs and privacy policy",
   "evidence": "Settings > Account shows only sessions; Organization shows name/ID/terms; user menu: Theme, Settings, Docs, Contact us, Sign out; no delete in the docs or either OpenAPI; privacy policy: 'deletion of your Personal Data … contact us at support@parallel.ai' (mail only: not sent, our rules); cleanup done: our app + key deleted (DELETE /apps/{id} 204. 'parallel-cli Users' app: DELETE -> 400 'The parallel-cli Users app cannot be deleted' and keys cannot be listed, so the two CLI-issued keys still answer 200; empty task group stays (no delete route)",
   "notes": "left: stuck, account, org and CLI keys remain; removal only by mail to support"
  }
 ],
 "stale": false,
 "icon": "/logos/parallel.png",
 "monitored": false,
 "verdict": null,
 "page": "https://agentdrives.com/tools/parallel?via=api"
}