{"openapi":"3.1.0","info":{"title":"ARC public API","version":"1.1.0","summary":"Free, no-login API for the ARC open agentic commerce benchmark: check a store, validate UCP, read the Index, leaderboard, protocol matrix and dataset, and contribute stores and runs.","license":{"name":"Data CC-BY-4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"contact":{"name":"ARC","url":"https://www.arcreport.ai/developers"},"description":"Any agent can ask whether a brand gets chosen and whether agents can reach checkout. The answer has two lanes: buy.agent_catalog is a live HTTP check of Shopify catalog tools and a valid UCP profile, and buy.browser is the browser cart. The catalog check is not a browser session and not any third-party agent product, and it does not change the score; browser cart results come from ARC browser shoppers A–E. agents_can_buy is true when either lane reached checkout or the cart (ARC stops before payment; it is not a completed purchase). What Grok tells shoppers is a real model call via API, checked against the store's pages, not the consumer Grok app. Rivals are omitted when that read does not exist. ARC is not affiliated with Meta, Spear Street Technology, SpaceXAI, OpenAI, or the OpenClaw Foundation. A missing score is not a zero."},"servers":[{"url":"https://www.arcreport.ai"}],"security":[],"externalDocs":{"description":"Developer docs, copy-paste examples and MCP tool pages","url":"https://www.arcreport.ai/developers"},"tags":[{"name":"Check a store","description":"Live or saved checks for one store."},{"name":"Read the data","description":"Saved results, aggregates and the open dataset. CC-BY-4.0."},{"name":"Contribute","description":"Add stores and leaderboard runs. Free."},{"name":"Discovery","description":"MCP server cards and machine-readable discovery."}],"paths":{"/api/agent-checkout/product-data":{"get":{"operationId":"product_data_check","tags":["Check a store"],"x-mcp-tool":"product_data_check","summary":"Latest saved product data from the page’s structured data","description":"Free DB read. Includes public Google checkout readiness from saved evidence; not Google approval. Merchant Center feed eligibility cannot be checked from outside. No outbound store request. JSON-LD from server HTML only. Null means unmeasured.","parameters":[{"name":"host","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved productData, googleReadiness, policies, checkedAt, productUrl and honesty note"},"400":{"description":"Invalid host"},"429":{"description":"Read limit"},"503":{"description":"Unavailable"}}}},"/api/agent-facts":{"get":{"operationId":"getAgentFacts","tags":["Read the data"],"x-mcp-tool":"get_agent_facts","summary":"Free agent facts for any store (Jev typed decisions)","description":"No login. Returns stored TypeSafe Jev facts from HTTP scrapes. Not a browser session and not any third-party agent product. download=1 returns a JSON attachment.","parameters":[{"name":"host","in":"query","schema":{"type":"string"}},{"name":"slug","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"download","in":"query","schema":{"type":"string","enum":["1","true"]}}],"responses":{"200":{"description":"Agent facts array with confidences, hashes, and honesty note."},"429":{"description":"Rate limited."},"503":{"description":"Temporarily unavailable."}}}},"/api/agent-checkout/stores":{"get":{"operationId":"findAgentReadyStores","tags":["Read the data"],"x-mcp-tool":"find_agent_ready_stores","summary":"Find stores where an AI agent can reach checkout for running shoes or another need","description":"No login. Reads real HTTP checkout-positive results within seven days. Category matching, not inventory search. 50 reads/network/day and 5,000/site/day, shared with checkout reads. No purchase completed or checkout URLs stored.","parameters":[{"name":"category","in":"query","schema":{"type":"string"},"description":"Category slug or shopper words, such as running shoes."},{"name":"q","in":"query","schema":{"type":"string"},"description":"Product need such as skincare."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}}],"responses":{"200":{"description":"Stores with name, host, category, verdict, checkedAt and arcUrl; total matches, categories, note and directoryUrl. No checkout links."},"400":{"description":"Invalid parameters or no matching category."},"429":{"description":"Daily directory read limit reached."},"503":{"description":"Directory unavailable."}}}},"/api/agent-checkout":{"get":{"operationId":"canAgentCheckout","tags":["Check a store"],"x-mcp-tool":"can_agent_checkout","summary":"Can an AI agent buy from this store or reach checkout?","description":"Free real HTTP check of any public homepage or product URL. No login. Cached per host for 24 hours; 50 requests and 10 fresh checks per network per UTC day, 500 fresh checks site-wide. Returns checkoutWebmcp (Shopify-only status, nullable detected, tools, reason; buyer approval required) separately from the storefront webmcp boolean. Never stores a checkout link or changes a score.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"},"description":"Public HTTP(S) homepage or product URL."}],"responses":{"200":{"description":"Catalog and product facts, checkout link boolean, UCP profile, block status, fix, checkedAt, cached, resultUrl. No checkout URL."},"400":{"description":"Invalid or unsafe store URL."},"429":{"description":"Daily capacity reached or host check in progress."},"503":{"description":"Check temporarily unavailable."}}}},"/api/ucp/validate":{"get":{"operationId":"validateUcpProfile","tags":["Check a store"],"x-mcp-tool":"validate_ucp_profile","summary":"Validate a store's UCP profile against the published UCP schema","description":"Fetches https://<host>/.well-known/ucp (no redirects followed, 6 s timeout) and validates it against the published UCP 2026-08-25 JSON Schema (https://ucp.dev/2026-08-25/schemas/) and spec rules: authority binding, https endpoints, orphaned extensions, and hosting headers. Returns errors, warnings and info, each with a JSON path and spec link. Not certification. 300 validations per network per day.","parameters":[{"name":"url","in":"query","schema":{"type":"string"},"description":"Store host, homepage or profile URL, e.g. allbirds.com.","required":true}],"responses":{"200":{"description":"Report: valid, schema, declaredVersion, counts, errors, warnings, info, summary, http checks, profile, schemaSource and note.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Missing or unsafe URL."},"413":{"description":"Profile larger than 256 KB."},"429":{"description":"Rate limited for this network. Try again later."},"503":{"description":"Temporarily unavailable."}}},"post":{"operationId":"validateUcpProfileJson","tags":["Check a store"],"x-mcp-tool":"validate_ucp_profile","summary":"Validate pasted UCP profile JSON, or a URL","description":"Send {\"profile\": {...}} to validate JSON without fetching anything, or {\"url\": \"allbirds.com\"}.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"profile":{"description":"Profile JSON object or string."}}}}}},"responses":{"200":{"description":"Validation report.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Neither url nor profile."},"413":{"description":"Profile larger than 256 KB."},"429":{"description":"Rate limited for this network. Try again later."},"503":{"description":"Temporarily unavailable."}}}},"/api/agent-checkout/adoption":{"get":{"operationId":"agentCommerceAdoption","tags":["Read the data"],"x-mcp-tool":"agent_commerce_adoption","summary":"Agent commerce adoption counts by category and platform","description":"Counts and rates from ARC's saved HTTP checks: valid UCP profiles, agent catalogs, storefront WebMCP, Checkout WebMCP (Shopify measured denominator; unknown and not checked separate), checkout links. A curated sample, not all e-commerce.","responses":{"200":{"description":"now, categories, byPlatform, platformCoverage, series, changes, methodology, generatedAt, available.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/protocols":{"get":{"operationId":"protocolMatrix","tags":["Read the data"],"x-mcp-tool":"protocol_matrix","summary":"Protocol Matrix: UCP, ACP, PAP, WebMCP, MCP and payments, stage by stage","description":"How many checked stores declare, validate, answer and transact on each protocol, with evidence labels (Measured, Inferred, Not measured). Saved checks only. CC-BY-4.0.","responses":{"200":{"description":"rows, storesChecked, indexStoresChecked, asOf, methodology, license, cite, available and protocols.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/leaderboard":{"get":{"operationId":"agentLeaderboard","tags":["Read the data"],"x-mcp-tool":"agent_leaderboard","summary":"Open agent leaderboard on ARC-100","description":"Cart success over the fixed ARC-100 v1 test set (100 real stores, stopped before payment) for ARC browser shoppers A–E, the UCP path and the storefront MCP path, with n, dates, evidence labels and Wilson 95% intervals, plus unverified outside submissions.","parameters":[{"name":"stores","in":"query","schema":{"type":"string","enum":["1"]},"description":"1 to include the per-store result grid."},{"name":"format","in":"query","schema":{"type":"string","enum":["csv"]},"description":"csv for CSV."}],"responses":{"200":{"description":"Leaderboard JSON, or CSV with format=csv.","content":{"application/json":{"schema":{"type":"object"}},"text/csv":{"schema":{"type":"string"}}}}}}},"/api/leaderboard/submit":{"get":{"operationId":"leaderboardSubmissionFormat","tags":["Contribute"],"summary":"Submission format, schema URL and a full example body","responses":{"200":{"description":"method, spec, schema, example and the MCP tool name.","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"operationId":"submitLeaderboardRun","tags":["Contribute"],"x-mcp-tool":"submit_leaderboard_run","summary":"Submit your agent's ARC-100 run","description":"Format arc-leaderboard-submission/v1 (see /leaderboard/spec and /data/arc-100/v1/submission.schema.json). Runs must stop before payment. Listed as unverified until ARC re-runs a sample. 5 per network per day; 200 KB max.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"https://www.arcreport.ai/data/arc-100/v1/submission.schema.json"}}}},"responses":{"200":{"description":"Duplicate of an earlier run; the existing id is returned.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"Saved: ok, id, status, n, cart_successes.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid submission."},"413":{"description":"Body larger than 200 KB."},"429":{"description":"Rate limited for this network. Try again later."},"503":{"description":"Temporarily unavailable."}}}},"/api/stores/submit":{"post":{"operationId":"submitStores","tags":["Contribute"],"x-mcp-tool":"submit_store","summary":"Add stores to ARC's free open directory","description":"One store as url, or up to 50 as hosts. Each host is validated (live HTTPS, not parked, not redirecting to another brand). Accepted stores are queued for ARC's HTTP checks and join the CC-BY dataset with source=submitted. Rate limited per caller.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"hosts":{"type":"array","items":{"type":"string"},"maxItems":50},"category":{"type":"string"}}},"example":{"url":"yourstore.com","category":"footwear"}}}},"responses":{"200":{"description":"results per host with accepted, already_listed, rejected and limited counts.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"No stores, or more than 50."},"429":{"description":"Rate limited for this network. Try again later."},"503":{"description":"Temporarily unavailable."}}}},"/api/store":{"get":{"operationId":"storeCard","tags":["Read the data"],"x-mcp-tool":"store_card","summary":"A store's public card: saved checks, brand claim and links","description":"Saved data only; no outbound fetch. Brand statements come from the brand and are not measured by ARC. The MCP store_card tool returns a subset with badge and claim URLs.","parameters":[{"name":"host","in":"query","schema":{"type":"string"},"description":"Store host or URL.","required":true}],"responses":{"200":{"description":"host, slug, brandName, brand_claim, rails and links.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid host."}}}},"/api/insights/{file}":{"get":{"operationId":"insightData","tags":["Read the data"],"summary":"Data behind the /insights research pages, as JSON or CSV","description":"index.json lists every insight page with its JSON and CSV URLs. CC-BY-4.0, attribution ARC (arcreport.ai).","parameters":[{"name":"file","in":"path","required":true,"schema":{"type":"string","pattern":"^(index\\.json|[a-z0-9-]+\\.(json|csv))$"},"description":"index.json, or <slug>.json / <slug>.csv."}],"responses":{"200":{"description":"Insight data.","content":{"application/json":{"schema":{"type":"object"}},"text/csv":{"schema":{"type":"string"}}}},"404":{"description":"Unknown insight page."}}}},"/api/methodology/changelog":{"get":{"operationId":"methodologyChangelog","tags":["Read the data"],"summary":"Method version and changelog","responses":{"200":{"description":"methodVersion, webmcpDetectorSince, checkoutWebmcpDetectorSince, changes, license.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/data/latest/manifest.json":{"get":{"operationId":"datasetManifest","tags":["Read the data"],"x-mcp-tool":"dataset_info","summary":"Latest open dataset manifest (CSV and Parquet)","description":"latest/ moves to each new snapshot. Version folders (/data/<version>/) never change; cite them for exact bytes. Dataset card: /data/README.md. CC-BY-4.0.","responses":{"200":{"description":"snapshot_version, generated_at, method_version, license, stores_checked and the file list.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/data/versions.json":{"get":{"operationId":"datasetVersions","tags":["Read the data"],"summary":"Every immutable dataset snapshot version","responses":{"200":{"description":"Versions with manifest URLs.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/badge/{host}.svg":{"get":{"operationId":"storeBadgeSvg","tags":["Read the data"],"summary":"Free embeddable 'Agent-ready, checked by ARC' SVG badge with the store's current saved result and evidence label (Measured, Inferred or Not measured). Cached about an hour. Never starts a check.","parameters":[{"name":"host","in":"path","required":true,"schema":{"type":"string"},"description":"Store host, e.g. allbirds.com."}],"responses":{"200":{"description":"SVG image.","content":{"image/svg+xml":{"schema":{"type":"string"}}}},"404":{"description":"Not a valid store host."}}}},"/store/{host}/badge.svg":{"get":{"operationId":"storeBadge","tags":["Read the data"],"summary":"Embeddable SVG badge with a store's ARC result (same as /badge/{host}.svg)","parameters":[{"name":"host","in":"path","required":true,"schema":{"type":"string"},"description":"Store host, e.g. allbirds.com."}],"responses":{"200":{"description":"SVG image.","content":{"image/svg+xml":{"schema":{"type":"string"}}}}}}},"/api/ask/server-card":{"get":{"operationId":"askServerCard","tags":["Discovery"],"summary":"MCP server card for the no-login /api/ask server","responses":{"200":{"description":"Server card.","content":{"application/mcp-server-card+json":{"schema":{"type":"object"}}}}}}},"/api/mcp/server-card":{"get":{"operationId":"scanServerCard","tags":["Discovery"],"summary":"MCP server card for the signed-in /api/mcp server (OAuth)","responses":{"200":{"description":"Server card.","content":{"application/mcp-server-card+json":{"schema":{"type":"object"}}}}}}},"/.well-known/mcp.json":{"get":{"operationId":"mcpDiscovery","tags":["Discovery"],"summary":"Both MCP servers and every public tool, with docs links","responses":{"200":{"description":"AI catalog entries plus servers and tools.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/ask":{"get":{"operationId":"askArc","tags":["Read the data"],"x-mcp-tool":"ask_arc","summary":"Read the Index","description":"Pass a brand, a product or store URL, or a category. With no parameters, returns a short discovery document.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text brand, product, or category query."},{"name":"url","in":"query","required":false,"schema":{"type":"string"},"description":"Brand, store, or product URL already on the ARC Index."},{"name":"brand","in":"query","required":false,"schema":{"type":"string"},"description":"Brand name, for example Allbirds."},{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Index category or shopper words, for example footwear or running shoes."}],"responses":{"200":{"description":"Index answer, or the discovery document when no query is set."},"429":{"description":"Too many Index reads from this network."},"503":{"description":"Index reads are paused for a moment."}}},"post":{"operationId":"askArcPost","tags":["Read the data","Discovery"],"summary":"Read the Index or check checkout via MCP","description":"JSON body with url, brand, category, or q. A JSON-RPC 2.0 body speaks MCP on this same URL: initialize, tools/list and tools/call. Tools: ask_arc, can_agent_checkout, find_agent_ready_stores, agent_commerce_adoption, product_data_check, google_checkout_readiness, get_agent_facts, list_category_agent_facts, dataset_info, protocol_matrix, agent_leaderboard, submit_leaderboard_run, submit_store, store_card, validate_ucp_profile. Docs per tool: https://www.arcreport.ai/developers/mcp. JSON checkout check: GET /api/agent-checkout?url=. No login. This does not start a scan.","requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"q":{"type":"string"},"url":{"type":"string"},"brand":{"type":"string"},"category":{"type":"string"}}},{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{},"method":{"type":"string"},"params":{"type":"object"}},"required":["jsonrpc","method"]}]}}}},"responses":{"200":{"description":"Index answer or a JSON-RPC result."},"202":{"description":"MCP notification accepted."},"400":{"description":"The body was not JSON."},"429":{"description":"Too many Index reads from this network."},"503":{"description":"Index reads are paused for a moment."}}}}},"x-mcp":{"tool":"ask_arc","tools":["ask_arc","can_agent_checkout","find_agent_ready_stores","agent_commerce_adoption","product_data_check","google_checkout_readiness","get_agent_facts","list_category_agent_facts","dataset_info","protocol_matrix","agent_leaderboard","submit_leaderboard_run","submit_store","store_card","validate_ucp_profile"],"toolDocs":{"ask_arc":{"docs":"https://www.arcreport.ai/developers/mcp/ask_arc","title":"Ask ARC"},"can_agent_checkout":{"docs":"https://www.arcreport.ai/developers/mcp/can_agent_checkout","title":"Can an agent check out?","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"find_agent_ready_stores":{"docs":"https://www.arcreport.ai/developers/mcp/find_agent_ready_stores","title":"Find agent-ready stores","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"agent_commerce_adoption":{"docs":"https://www.arcreport.ai/developers/mcp/agent_commerce_adoption","title":"Agentic commerce adoption","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"product_data_check":{"docs":"https://www.arcreport.ai/developers/mcp/product_data_check","title":"Product data check","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"google_checkout_readiness":{"docs":"https://www.arcreport.ai/developers/mcp/google_checkout_readiness","title":"Google checkout readiness"},"get_agent_facts":{"docs":"https://www.arcreport.ai/developers/mcp/get_agent_facts","title":"Agent facts for a store"},"list_category_agent_facts":{"docs":"https://www.arcreport.ai/developers/mcp/list_category_agent_facts","title":"Agent facts by category"},"dataset_info":{"docs":"https://www.arcreport.ai/developers/mcp/dataset_info","title":"Dataset info","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"protocol_matrix":{"docs":"https://www.arcreport.ai/developers/mcp/protocol_matrix","title":"Protocol matrix","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"agent_leaderboard":{"docs":"https://www.arcreport.ai/developers/mcp/agent_leaderboard","title":"Agent leaderboard","annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"submit_leaderboard_run":{"docs":"https://www.arcreport.ai/developers/mcp/submit_leaderboard_run","title":"Submit a leaderboard run","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},"submit_store":{"docs":"https://www.arcreport.ai/developers/mcp/submit_store","title":"Submit stores","annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"store_card":{"docs":"https://www.arcreport.ai/developers/mcp/store_card","title":"Store card","annotations":{"readOnlyHint":true}},"validate_ucp_profile":{"docs":"https://www.arcreport.ai/developers/mcp/validate_ucp_profile","title":"Validate a UCP profile","annotations":{"readOnlyHint":true,"openWorldHint":true}}},"instant_checkout":{"endpoint":"https://www.arcreport.ai/api/agent-checkout?url=","mcp":"https://www.arcreport.ai/api/ask","tool":"can_agent_checkout","authentication":"none"},"endpoint":"https://www.arcreport.ai/api/ask","signedInServer":"https://www.arcreport.ai/api/mcp","discovery":"https://www.arcreport.ai/.well-known/mcp.json"}}