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.

NO LOGINNOT READ-ONLYNOT DESTRUCTIVEIDEMPOTENTREACHES THE OPEN WEBWRITES

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

NameTypeRequiredDescription
urlstringno
hostsstring[]noup to 50
category"apparel" | "footwear" | "beauty" | "home" | "food-drink" | "supplements" | "outdoor" | "kids" | "pets" | "electronics" | "jewelry"no
Full input JSON Schema
INPUT 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 · 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"}}}'
JAVASCRIPT
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);
PYTHON
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 · POST
curl -s -X POST https://www.arcreport.ai/api/stores/submit \
  -H 'content-type: application/json' \
  -d '{"url":"yourstore.com","category":"footwear"}'