Can an AI agent use Parallel (parallel.ai)?
As of 15 Oct 2026, an AI agent gets into Parallel on its own and does 80% of the core work.
- Find: Docs for agents: llms.txt, an OpenAPI and an MCP server; a docs page for each core task.
- Access: No key needed, pay per call, sign-up in a browser.
- Use: 80% of the work.
- Pay: Pays on its own: Paid $0.01 a call (x402), 15 Oct.
- Leave: Nothing to cancel: Can't delete its account.
Ways in: No key needed, 2 of 5 core tasks · Pay per call, 4 of 5 core tasks · Sign-up in a browser, 3 of 5 core tasks
Does it all on its own, payment included
What the levels meanDriven 15 Oct 2026New level in the latest driveRules of 15 Oct 2026Claim this page
Written by our agents from this drive. How we write.
Who gets in
- Agents on a serverGet in on their own.
- Signed agentsThe sign-up page opens.
- Agents in a person's browserNot measured yet.
Sign-up page checked 15 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in Parallel (parallel.ai).
On its own
- 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
1 more
- Set up, check, change, and turn off scheduled 'watch the web' monitors on a brand-new free account
What it can't, and why
- Run searches, research, data lookups, or AI answers using a newly created accountThe new account needs a saved credit card before it gets any free usage
- Have a monitor actually send an alertAlerts only fire on paid usage, which needs a card
- Delete the accountThere's no delete button; you must email support instead
1 more
- Remove a login key created by the command-line toolThat particular key type cannot be listed or deleted
Can an AI agent sign up for Parallel on its own?
Yes, in a browser, without a human. 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.
Every way in it offers, as our agent tried them
| Way in | What happened |
|---|---|
| No key needed | Got in, 1 min |
| Pay per call | Got in, 1 min |
| Email link | Got in, 6 min; part of the work done |
| CLI code login | Got in, 2 min |
| Sign‑in for apps (OAuth, MCP) | Not tried: the same as another way |
| Company single sign‑on | Not tried: needs a person's account |
| Marketplace install | Not tried: no account yet |
| A key from a person | Not tried: needs a person's account |
Does Parallel (parallel.ai) have an MCP server, and can an agent connect to it?
Yes. Parallel has an official MCP server.
A new agent can get in on its own: in the drive of 15 Oct 2026, our agent signed up, verified and got its key without a person. Through the MCP server, 9 of our agent's 11 attempts worked.
What the drive found
APIOpenAPIMCP · officialCLIllms.txtWebhooks–SandboxHow does an AI agent get a Parallel (parallel.ai) API key?
In the drive of 15 Oct 2026, our agent got its Parallel API key over the API, without a browser or a person. 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).
Can an AI agent delete its Parallel account?
Not on its own: blocked. 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.
Can an AI agent pay for Parallel?
Pays on its own: paid $0.01 a call (x402), 15 Oct.
Reached the card form and stopped: prepaid balance.
Checkout: a Stripe card formAn invisible bot check loaded at checkoutWallets: Google PayOffers x402 paymentPaid in USDC on Base. 0x66e60a00…de05ba
- Stripe Projects on its own domain
- x402 on its own domain · Base
- MPP on its own domain · Tempo
What would let agents pay on their own
- Sell the plan or credits over the rail, not only side endpoints. Let the paid call buy what the product sells, so the rail covers the whole product.
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.
Ways to pay checked 15 Oct 2026.
For the team behind Parallel.
Where agents stop in Parallel (parallel.ai) today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Give new accounts free credit without a cardStep-by-step guide
- Accept x402 and MPP on api.parallel.ai
- Add account deletion to the app and Account API
2 more fixes
- Let users list and revoke every key
- Support MCP (the 28 Jul 2026 spec) and server/discover
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
The part scores and the measures behind them.
Part scores and the measures · the docs · level history · paid plans
Part scores
- Holds up: 80 of 100, fair
Agent-ready setup
- llms.txt: found
- OpenAPI: found
- MCP server: found
- CLI: found
Not measured in this drive: Docs match (part of an Audit).
Security: reported privately to the owner
The measures
- Work done80
- Reliability100
- Crash test59
The docs
195 of 203 pages read. Complete.
- A getting-started page
- An auth page
- Errors listed with their codes
- Code examples on most pages
- Newest page updated 12 Oct 2026
- A page for 10 of 10 core tasks
Read on 15 Oct 2026.
Tried as documented
4 of 19 documented ways to do the core work worked when tried.
| What happened | Ways |
|---|---|
| Worked when tried | 4 |
| Documented, didn't work | 0 |
| Not tried (a paid plan, or no way to reach it) | 15 |
| Worked, but not in the docs | 0 |
Level history
- 1 Oct 2026L1Needs a person
- 1 Oct 2026sign-up variesL4Runs on its own
- 2 Oct 2026new driveL3Does the work
- 13 Oct 20262 drives · new driveL2Gets in
- 15 Oct 2026new driveL5Autonomous
Needs a paid plan
Not counted in the level. Our drive used free plan ($0 prepaid balance; anonymous Search MCP; pay-per-call by us).
| Capability | Plan |
|---|---|
| Deep research (account route) | prepaid credit (card required) |
| Enrichment | prepaid credit (card required) |
| Processor choice | prepaid credit (card required) |
| FindAll | prepaid credit (card required) |
| Entity search | prepaid credit (card required) |
| Monitor runs | prepaid credit (card required) |
| Monitor webhooks | prepaid credit (card required) |
| Responses (account route) | prepaid credit (card required) |
How Parallel handles an agent's mistakes · 8 probes · core run 3×
Malformed requests, a retry, a wrong key and a short burst of reads on our agent's own account, and how Parallel answered.
- Clear errors100
- Recovery78
- Safe retries0
- Clearmissing required fields on monitor createCreate an always-on monitor that watches the web for a query on a schedule422 {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)
- Clearmissing required fields on entity searchFast synchronous entity search (people/company lookup)422 errors: missing body.entity_type, missing body.objective
- Clearwell-formed monitor id that does not existCreate an always-on monitor that watches the web for a query on a scheduleHTTP/2 404 {"type": "error", "error": {"ref_id": "3c47765d30223df3a1cf5d9e06846807", "message": "Monitor not found.", "detail": null}}
- Clearrepeat one monitor create with the same Idempotency-KeyCreate an always-on monitor that watches the web for a query on a scheduleboth 201, monitor ids ['monitor_e2c6753a73df42df80b82d69a8f0a627', 'monitor_ac983c9c76444f33a74a5fd590d942a3']
- Clearwrong API keyCreate an always-on monitor that watches the web for a query on a scheduleHTTP/2 401 {"code": 16, "message": "Invalid API key (C.1)"}
- Clearburst of 15 quick GET /v1/monitorsCreate an always-on monitor that watches the web for a query on a schedulecodes ['200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200']; rate-limit headers: none
- Clearinterrupt a multi-step batch: group created, run add refused (402)Batch-run many task inputs concurrently as a Task Groupruns 402; GET group afterwards: num_task_runs 0, is_active false, no half-written run
- Clearrevoked key of our ownCreate an always-on monitor that watches the web for a query on a schedule401 {code:16, message:'Invalid API key (C.2)'} (~20 s after revoke; immediately after it still answered 200)
For agents and builders.
The drive as data, every checkpoint and all 106 attempts.
How an agent connects · 5 tips
/api/tools/parallel.json/tools/parallel.mdMCP get_tool {"slug":"parallel"}
- 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.
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessdocs.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.
- Sign upIn a browserWeb 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.
- VerifyIn a browserThe sign-up link arrived within a minute; one 'Continue to sign in' click, then create an organisation (name only), skip invites, optional survey.
- KeyHeadlessparallel-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 callHeadlessGET /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.
- First actionHeadlessPOST /v1/monitors created a monitor (201), read back, updated and cancelled; its scheduled run failed with the same credit error.
- PayHeadlessParallel'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.
- CancelNot neededNothing to cancel: our agent used it pay-per-call.
- DeleteBlockedNo 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.
The attempt log · 106 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| MCP version: server/discover on https://search.parallel.ai/mcp | api | done ✓ | 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) |
| MCP keyless tools: tools/list on search MCP without credentials | api | done ✓ | tools: web_search, web_fetch (mcp_search_tools.json); calls return _meta parallel/usage cost_usd 0.001 |
| MCP task server: server/discover on https://task-mcp.parallel.ai/mcp | api | done ✓ | 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 |
| OAuth AS metadata: GET platform.parallel.ai/.well-known/oauth-authorization-server | api | done ✓ | 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) |
| MCP server card: GET <mcp>/server-card, /.well-known/ai-catalog.json, /.well-known/mcp/server-card.json | api | done ✓ | 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) |
| A2A agent card: GET /.well-known/agent-card.json and agent.json | api | done ✓ | both 404 text/html |
| aipref: robots.txt Content-Usage and response header | api | done ✓ | parallel.ai/robots.txt: 'User-Agent: * Allow: / Disallow: /legal/*/sign' no Content-Usage/Content-signal lines; no Content-Usage header on pages fetched |
| markdown docs: Accept: text/markdown on docs page, and .md URL | api | done ✓ | docs.parallel.ai/search/search-quickstart with Accept text/markdown -> 200 text/markdown, Vary includes Accept; .md URL -> 200 text/markdown |
| OpenAPI: GET docs.parallel.ai/public-openapi.json and account openapi | api | done ✓ | 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) |
| llms.txt: GET /llms.txt | api | done ✓ | 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 |
| Find docs: read docs_pass.json and fetch docs | api | done ✓ | docs.parallel.ai with llms.txt, markdown pages, OpenAPI 3.1.0; Account API (device OAuth), CLI docs, agentic payments doc |
| Sign up: platform.parallel.ai/signup: Sign up with email -> Get sign up link for the agent's inbox | browser | done ✓ | 'A sign up link was sent to the agent's inbox'; no CAPTCHA signals; only email asked (no password, no phone) |
| Verify email: open magic link from mail 'Log in to Parallel Web Systems' | browser | done ✓ | 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 |
| Session: magic-link session in browser | browser | done ✓ | /home shows 'the agent's inbox', org [redacted]s Admin |
| CLI device login: parallel-cli login --no-browser --json (RFC 8628 device flow), approved code at /getServiceKeys/device in our signed-in browser | cli | done ✓ | auth_success; parallel-cli auth --json authenticated true method oauth selected_org_name [redacted]s; balance get: $0.00 |
| Scoped API key headless: Account API: POST /account/service/v1/apps then POST /apps/{id}/keys with the device-flow bearer token | api | done ✓ | 200 app_id ff8457c2-…; 200 api_key_id 312c1a54-…, display_value ao****oVu_, raw_api_key returned once |
| First API call: POST https://api.parallel.ai/v1/search with the new key | api | failed ✓ | 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' |
| First API call (free endpoint): GET /v1/monitors with the key | api | done ✓ | 200 {monitors:[…]}; free management endpoints answer at $0 balance |
| Create something: POST /v1/monitors type event_stream frequency 1d | api | done ✓ | 201 monitor_id monitor_eac4dbb9ad424024b2507a45ff6e4ac7 status active; GET read back 200 |
| Create monitor: Watch the web for news about [redacted]s daily | api | done ✓ | POST /v1/monitors 201 monitor_eac4dbb9ad424024b2507a45ff6e4ac7 |
| Create monitor: read back | api | done ✓ | GET /v1/monitors/{id} 200 status active frequency 1d; also in GET /v1/monitors list |
| Create monitor: POST /v1/monitors/{id}/update frequency 1w + metadata | api | done ✓ | 200; GET read back frequency 1w metadata {drive: agentdrives} |
| Create monitor: let the monitor run: GET /v1/monitors/{id}/events | api | plan_gated ✓ | 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) |
| List monitors and stats: GET /v1/monitors and GET /v1/monitors/stats | api | done ✓ | list 200 with our monitor; stats 200 {total:1, processor_counts:{active:{lite:{1w:1}}}} |
| Update monitor: POST /v1/monitors/{id}/update frequency 1d->1w, metadata | api | done ✓ | 200, read back shows frequency 1w |
| Trigger monitor run: POST /v1/monitors/{id}/trigger | api | plan_gated | 204 accepted, but the monitor's run errors 'Insufficient credit in account' (events) |
| Extract: POST /v1/extract with our account key | api | plan_gated | 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) |
| Deep research: POST /v1/tasks/runs processor lite with our account key | api | plan_gated | 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) |
| FindAll: POST /v1beta/findall/runs generator preview with our account key | api | plan_gated | 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) |
| Entity search: POST /v1beta/findall/entity-search with our account key | api | plan_gated | 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) |
| Responses: POST /v1/responses with our account key | api | plan_gated | 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) |
| Search: POST /v1/search with our account key | api | plan_gated | 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) |
| Task API: POST /v1/tasks/runs with input/output schema / processor choice | api | plan_gated | 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) |
| Task API: POST /v1/tasks/runs with input/output schema / processor choice | api | plan_gated | 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) |
| Monitor webhooks: webhook field on monitor | api | plan_gated | 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 |
| Search the web: web_search via anonymous https://search.parallel.ai/mcp: what is [redacted]s | mcp | done ✓ | search_id search_06345922…, ranked results with url/title/excerpts; _meta parallel/usage sku_search cost_usd 0.001 (mcp_keyless_search.json) |
| Extract: web_fetch https://example.com with objective | mcp | done ✓ | extract_id extract_8aa0479f…, title 'Example Domain', excerpt 'This domain is for use in documentation examples…' (mcp_keyless_fetch.json) |
| Search: our x402 v2 paid POST parallelmpp.dev/api/search | api | done ✓ | pay_tx.json payment 20261015T062351Z-mv95lu1lb27v, $0.01 USDC Base, tx 0x66e60a…, 200 search_id with results |
| Extract: our x402 paid POST parallelmpp.dev/api/extract | api | done ✓ | pay_tx.json tx 0x196873…, 200 extract_id, example.com excerpts |
| Responses: our x402 paid POST parallelmpp.dev/api/responses | api | done ✓ | pay_tx.json tx 0x84be7d…, 200 resp_216a5b20… model parallel |
| Deep research: our x402 paid POST parallelmpp.dev/api/task ($0.10), then free GET /api/task/{run_id} | api | partial ✓ | 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 |
| No-account way: anonymous Search MCP | mcp | done ✓ | initialize + tools/list + web_search + web_fetch answered without credentials; docs: 'The Search MCP is free to use, no API key required' |
| Pay per call: x402 v2 on parallelmpp.dev (we, pay_tx.json) | api | done ✓ | 4 settled payments $0.13 total: search, extract, responses, task, each 200 |
| API sign-up: documented sign-up call | skipped | no sign-up API in the docs or either OpenAPI; device flow needs an existing signed-in account | |
| Stripe Projects: stripe projects add parallel | skipped | listed in the Stripe Projects catalog (pay_probe); our agent has no Stripe Projects account | |
| Sign up with Google: 'Sign up with Google' button on /signup | skipped | button seen; this drive has no SSO kit (drive.json sso: []); Google blocks automated sign-in | |
| SSO/SAML: 'Sign in with SSO' | skipped | needs a company IdP | |
| Google Cloud / AWS Marketplace: subscribe via a cloud marketplace | skipped | documented; our agent has no cloud marketplace account | |
| Person's key: a person's API key | skipped | public drive | |
| CLI device login: parallel-cli login --no-browser on the magic-link account | cli | done ✓ | device code approved in our signed-in browser; auth_success |
| Create monitor: POST /v1/monitors/{id}/cancel and read back | api | done ✓ | 200 status cancelled; GET by id still answers status cancelled; GET /v1/monitors list now empty |
| Create monitor: create, read back, cancel a monitor | api | done ✓ | HTTP/2 201 monitor_60dbcb86e92244a78607a556ed77dff7; GET status active; cancel -> cancelled |
| Search the web: anonymous web_search: who designed the Eiffel Tower | mcp | done ✓ | {"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 |
| Extract: anonymous web_fetch iana.org example-domains page | mcp | done ✓ | {"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 |
| Create monitor: create, read back, cancel a monitor | api | done ✓ | HTTP/2 201 monitor_1dbaa9a4baba41bdbe5ed3c79e8e86b7; GET status active; cancel -> cancelled |
| Search the web: anonymous web_search: who designed the Eiffel Tower | mcp | done ✓ | {"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 |
| Extract: anonymous web_fetch iana.org example-domains page | mcp | done ✓ | {"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 |
| Docs claim: Search the web with a natural-language objective: POST /v1/search | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Docs claim: Search the web with a natural-language objective: web_search | mcp | done ✓ | anonymous search.parallel.ai/mcp returned results; with our $0 key on /mcp-oauth: 'Error executing tool web_search: 402: Insufficient credit' |
| Docs claim: Search the web with a natural-language objective: parallel-cli search | cli | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Docs claim: Extract clean markdown/excerpts from a specific URL: POST /v1/extract | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Docs claim: Extract clean markdown/excerpts from a specific URL: web_fetch (Search MCP) | mcp | done ✓ | anonymous call returned excerpts |
| Docs claim: Extract clean markdown/excerpts from a specific URL: parallel-cli extract | cli | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Docs claim: Run deep research on an open-ended question and get a cited report: POST /v1/tasks/runs | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method); via x402 gateway /api/task it ran (we paid) |
| Docs claim: Run deep research on an open-ended question and get a cited report: Task MCP createDeepResearch | mcp | plan_gated | processor lite -> clear 400 'Deep Research requires pro or ultra processors' with valid list; pro-fast -> 402 Insufficient credit wrapped as status 500 |
| Docs claim: Run deep research on an open-ended question and get a cited report: parallel-cli research run | cli | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Docs claim: Enrich existing structured records with new web-sourced fields: POST /v1/tasks/runs (input schema + output schema) | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Docs claim: Enrich existing structured records with new web-sourced fields: Task MCP createTaskGroup | mcp | plan_gated | same credit gate as task runs (task group runs 402) |
| Docs claim: Enrich existing structured records with new web-sourced fields: parallel-cli enrich run | cli | plan_gated | same Task API credit gate |
| Docs claim: Choose compute tier (processor) to trade cost/speed for depth of research: processor field on POST /v1/tasks/runs | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Docs claim: Choose compute tier (processor) to trade cost/speed for depth of research: --processor flag | cli | done ✓ | flag exists with 18 tiers in parallel-cli research run --help; the run itself 402 |
| Docs claim: Discover a structured dataset of entities from a natural-language query: POST /v1beta/findall/runs | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method); note map says /v1/findall/runs, OpenAPI path is /v1beta/findall/runs |
| Docs claim: Fast synchronous entity search (people/company lookup): POST /v1beta/findall/entity-search | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Docs claim: Create an always-on monitor that watches the web for a query on a schedule: POST /v1/monitors | api | done ✓ | 201, read back, update, cancel all worked at $0; runs error for credit |
| Docs claim: Receive webhook notifications when a monitor detects a new event: webhook field on POST /v1/monitors | api | plan_gated | monitor runs fail for credit; no receiver of ours |
| Docs claim: Ask a question and get a conversational answer with live web citations: POST /v1/responses | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method); via x402 gateway /api/responses it answered (we paid) |
| Docs claim: Create an always-on monitor that watches the web for a query on a schedule: parallel-cli monitor list|create|update|cancel | cli | done ✓ | parallel-cli monitor list showed our monitor; not in the map's surfaces |
| Task Group: POST /v1/tasks/groups then add a run | api | plan_gated | group created 200 tgrp_6d418bbf9c0b4d6da03110dbaeb31c30, GET read back 200; POST /groups/{id}/runs -> 402 Insufficient credit |
| FindAll preview: POST /v1beta/findall/runs generator preview | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method); POST /v1beta/findall/ingest (schema from objective) answered 200 for free |
| : SSE task events: no task run could be created (402) | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : source_policy needs a search/task run: 402 | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : FindAll cancel needs a FindAll run: 402 on create | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : FindAll SSE needs a FindAll run: 402 | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : previous_interaction_id needs task runs: 402 | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : data_connectors: paid per map; task runs 402 | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : mcp_servers on task runs: 402 | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : FindAll enrich needs a run: 402 | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : FindAll extend needs a run: 402 | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : exclude_list on FindAll: 402 | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| : follow-up task from monitor: monitor runs fail for credit | api | plan_gated | 402 Insufficient credit ($0 balance; free monthly credits need a payment method) |
| Memory retrieve: parallel-cli memory retrieve; POST /v1beta/memory/retrieve | cli | failed ✓ | 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.' |
| Memory evict/clear: parallel-cli memory clear | cli | failed ✓ | memory not available for this account yet (same as) |
| CLI: parallel-cli search/extract/research run | cli | plan_gated | login, auth, balance get, monitor list worked; search/extract/research 'Insufficient credit' |
| SQL/dataframe integrations: docs check | none | skipped | 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 |
| Apps and keys: Account API create app + key (see credentials) | api | done ✓ | POST /apps 200, POST /apps/{id}/keys 200; GET /apps lists the new app |
| Balance: GET /account/service/v1/balance; parallel-cli balance get | api | done ✓ | 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) |
| Org roles: docs check | none | skipped | documented at docs.parallel.ai/resources/organization-roles-and-permissions.md; web UI only; inviting members would mail people: not done |
| OAuth provider: AS metadata + device flow | api | done ✓ | 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) |
| Pay probes: read pay_probe.json/pay_tx.json; docs; billing API | api | done ✓ | 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 |
| Walk to last click: Billing > Add to balance, and Billing > Add a payment method | browser | done ✓ | '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 |
| Cancel: nothing recurring was started | none | skipped | prepaid balance only; Auto-reload Off; no plan or trial started; nothing to cancel |
| Responses: repeat paid /api/responses | api | skipped | we makes one paid call per task (pay_tx.json); the agent never pays; account route needs credit (402) |
| Responses: repeat paid /api/responses | api | skipped | we makes one paid call per task (pay_tx.json); the agent never pays; account route needs credit (402) |
| Use key: GET/POST /v1/monitors with the created key | api | done ✓ | 200/201 (monitor created, listed, updated, cancelled) |
| Revoke key: DELETE /account/service/v1/apps/{app}/keys/{key} | api | done ✓ | 204; the key still answered 200 right after; ~20 s later 401 {'code':16,'message':'Invalid API key (C.2)'} |
| Delete account: find account/org deletion in Settings (Account, Organization, Team, user menu), docs and privacy policy | browser | blocked ✓ | 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) |
Also in Search APIs.
TavilyL3Gets in on its ownParallel vs Tavily
ExaL2Gets in on its ownParallel vs Exa
Brave Search APIL1Can't get an API key on its ownParallel vs Brave Search API
Perplexity APIL1Can't sign up on its ownParallel vs Perplexity API