ARC · DEVELOPERS · MCP TOOLS · CONTRIBUTE
submit_store
Submit stores
Add up to 50 stores to ARC's free open directory. Accepted stores are queued for HTTP checks and join the CC-BY dataset.
What it does
Add stores to ARC's free, open agent-commerce directory (CC-BY dataset). Pass url for one store or hosts for up to 50. Each new host is validated (live HTTPS, not parked, not redirecting to another brand); accepted hosts are queued for ARC's plain-HTTP rails checks (UCP, WebMCP, MCP, policies, product data) and appear in the dataset with source=submitted. No model calls, no login. Rate limited per caller.
Writes: Adds the store to the public directory with source=submitted.
Limits: Rate limited per caller. Each host is validated first: live HTTPS, not parked, not redirecting to another brand.
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | no | |
| hosts | string[] | no | up to 50 |
| category | "apparel" | "footwear" | "beauty" | "home" | "food-drink" | "supplements" | "outdoor" | "kids" | "pets" | "electronics" | "jewelry" | no |
Full input JSON Schema
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"hosts": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50
},
"category": {
"type": "string",
"enum": [
"apparel",
"footwear",
"beauty",
"home",
"food-drink",
"supplements",
"outdoor",
"kids",
"pets",
"electronics",
"jewelry"
]
}
},
"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":"submit_store","arguments":{"url":"yourstore.com","category":"footwear"}}}'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": "submit_store",
"arguments": {
"url": "yourstore.com",
"category": "footwear"
}
}
}),
});
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": "submit_store",
"arguments": {
"url": "yourstore.com",
"category": "footwear"
}
}
}, timeout=30)
result = res.json()["result"]
print(json.loads(result["content"][0]["text"]))REST equivalent
POST /api/stores/submit. Documented in openapi.json.
curl -s -X POST https://www.arcreport.ai/api/stores/submit \
-H 'content-type: application/json' \
-d '{"url":"yourstore.com","category":"footwear"}'