ARC · DEVELOPERS · MCP TOOLS · CHECK A STORE
can_agent_checkout
Can an agent check out?
Free live HTTP check of any public store: agent catalog, product found, checkout link returned, UCP profile, storefront WebMCP, Checkout WebMCP (Shopify-only checkoutWebmcp: status, detected nullable boolean, tools, reason; buyer approval required), storefront MCP, robots, product data and policies.
What it does
Can an AI agent buy from this store or check out on this Shopify store? Free real HTTP check of any public homepage or product URL: agent catalog, product, checkout link, UCP profile, Checkout WebMCP (Shopify-only checkoutWebmcp: status, nullable detected, tools, reason; buyer approval required), Shopify WebMCP storefront adapter (used by browser agents; detected in the HTML, not a browser session), blocks, and the fix. No login, model call, payment, or browser scan. Cached per host for 24 hours. A returned link means reach checkout, not a completed purchase.
Writes: A fresh check saves its result to ARC's public directory (CC-BY-4.0). No checkout URL is stored and no purchase is made.
Limits: Cached per host for 24 hours. 50 requests and 10 fresh checks per network per UTC day; 500 fresh checks site-wide.
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | yes | Public store homepage or product URL |
Full input JSON Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public store homepage or product URL"
}
},
"required": [
"url"
],
"additionalProperties": false
}Call it
From Claude, Cursor, ChatGPT or VS Code, connect the server (config) and ask in plain words; the client picks the tool. Or call it directly with JSON-RPC:
curl -s https://www.arcreport.ai/api/ask \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"can_agent_checkout","arguments":{"url":"allbirds.com"}}}'const res = await fetch("https://www.arcreport.ai/api/ask", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "can_agent_checkout",
"arguments": {
"url": "allbirds.com"
}
}
}),
});
const { result } = await res.json();
const data = JSON.parse(result.content[0].text); // result.isError is true on errors
console.log(data);import json, requests
res = requests.post("https://www.arcreport.ai/api/ask", json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "can_agent_checkout",
"arguments": {
"url": "allbirds.com"
}
}
}, timeout=30)
result = res.json()["result"]
print(json.loads(result["content"][0]["text"]))REST equivalent
GET /api/agent-checkout. Documented in openapi.json.
curl -s 'https://www.arcreport.ai/api/agent-checkout?url=allbirds.com'