{"openapi":"3.1.0","info":{"title":"Agent Shopping Tracker API","version":"1.0.0","summary":"Free, read-only facts on which stores let AI agents buy.","description":"No account and no API key. Responses are JSON from the same files as the website. Each response has updatedAt and source. Credit source when you reuse a fact. The blocklist is CC BY 4.0; link back to its source page. A robots.txt disallow is a request, not proof of a block. New fields may be added. Fields already listed here stay.","license":{"name":"CC BY 4.0 (blocklist)","url":"https://creativecommons.org/licenses/by/4.0/"}},"servers":[{"url":"https://agent-shopping-tracker.vercel.app"}],"paths":{"/api/v1/players":{"get":{"operationId":"listPlayers","summary":"List players","responses":{"200":{"description":"Every tracked player.","content":{"application/json":{"schema":{"type":"object","required":["updatedAt","source","count","players"],"properties":{"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri","description":"Human page on this site. Credit this URL."},"count":{"type":"integer"},"players":{"type":"array","items":{"type":"object","required":["slug","name","type","status","date","summary","sourceUrl","sourceName","pageUrl"],"properties":{"slug":{"type":"string","description":"Stable id. Same string as the path on /players/{slug}."},"name":{"type":"string"},"type":{"type":"string","enum":["store","platform","payment-network","protocol"]},"status":{"type":"string","enum":["live","pilot","announced","none"]},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"summary":{"type":"string"},"sourceUrl":{"type":"string","format":"uri"},"sourceName":{"type":"string"},"uncertainty":{"type":"string","description":"A disagreement or a limit. Keep this when you summarize the row."},"notYetLive":{"type":"boolean","description":"Present and true when shoppers cannot use it yet."},"pageUrl":{"type":"string","format":"uri"}}}}}}}}}}}},"/api/v1/players/{slug}":{"get":{"operationId":"getPlayer","summary":"One player","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"walmart"}],"responses":{"200":{"description":"The player.","content":{"application/json":{"schema":{"type":"object","required":["updatedAt","source","player"],"properties":{"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri","description":"Human page on this site. Credit this URL."},"player":{"type":"object","required":["slug","name","type","status","date","summary","sourceUrl","sourceName","pageUrl"],"properties":{"slug":{"type":"string","description":"Stable id. Same string as the path on /players/{slug}."},"name":{"type":"string"},"type":{"type":"string","enum":["store","platform","payment-network","protocol"]},"status":{"type":"string","enum":["live","pilot","announced","none"]},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"summary":{"type":"string"},"sourceUrl":{"type":"string","format":"uri"},"sourceName":{"type":"string"},"uncertainty":{"type":"string","description":"A disagreement or a limit. Keep this when you summarize the row."},"notYetLive":{"type":"boolean","description":"Present and true when shoppers cannot use it yet."},"pageUrl":{"type":"string","format":"uri"}}}}}}}},"404":{"description":"Unknown slug.","content":{"application/json":{"schema":{"type":"object","required":["error","message","updatedAt","source"],"properties":{"error":{"type":"string","enum":["not_found","bad_request"]},"message":{"type":"string"},"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri"}}}}}}}}},"/api/v1/news":{"get":{"operationId":"listNews","summary":"List news","description":"Newest first. since and player can be used together. since is inclusive.","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"description":"Only items dated on or after this day."},{"name":"player","in":"query","required":false,"schema":{"type":"string"},"description":"Only items linked to this player slug.","example":"walmart"}],"responses":{"200":{"description":"Matching news.","content":{"application/json":{"schema":{"type":"object","required":["updatedAt","source","filters","count","news"],"properties":{"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri","description":"Human page on this site. Credit this URL."},"filters":{"type":"object","required":["since","player"],"properties":{"since":{"type":["string","null"]},"player":{"type":["string","null"]}}},"count":{"type":"integer"},"news":{"type":"array","items":{"type":"object","required":["id","title","date","summary","sourceUrl","sourceName","tags","pageUrl","players"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"summary":{"type":"string"},"sourceUrl":{"type":"string","format":"uri"},"sourceName":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"notYetLive":{"type":"boolean"},"pageUrl":{"type":"string","format":"uri","description":"Tracker page and anchor to credit."},"players":{"type":"array","items":{"type":"string"},"description":"Player slugs this item is linked to."}}}}}}}}},"400":{"description":"since is not a real YYYY-MM-DD date.","content":{"application/json":{"schema":{"type":"object","required":["error","message","updatedAt","source"],"properties":{"error":{"type":"string","enum":["not_found","bad_request"]},"message":{"type":"string"},"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri"}}}}}},"404":{"description":"player is not a known slug.","content":{"application/json":{"schema":{"type":"object","required":["error","message","updatedAt","source"],"properties":{"error":{"type":"string","enum":["not_found","bad_request"]},"message":{"type":"string"},"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri"}}}}}}}}},"/api/v1/protocols":{"get":{"operationId":"listProtocols","summary":"List protocols","responses":{"200":{"description":"Every protocol explainer.","content":{"application/json":{"schema":{"type":"object","required":["updatedAt","source","count","protocols"],"properties":{"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri","description":"Human page on this site. Credit this URL."},"count":{"type":"integer"},"protocols":{"type":"array","items":{"type":"object","required":["slug","name","shortName","status","date","who","summary","sections","links","faqs","pageUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"shortName":{"type":"string"},"status":{"type":"string","enum":["live","pilot","announced","none"]},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"who":{"type":"string"},"summary":{"type":"string"},"uncertainty":{"type":"string"},"pageUrl":{"type":"string","format":"uri"},"sections":{"type":"array","items":{"type":"object","required":["heading","paragraphs"],"properties":{"heading":{"type":"string"},"paragraphs":{"type":"array","items":{"type":"string"}}}}},"links":{"type":"array","items":{"type":"object","required":["label","url"],"properties":{"label":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"faqs":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"question":{"type":"string"},"answer":{"type":"string"}}}}}}}}}}}}}}},"/api/v1/protocols/{slug}":{"get":{"operationId":"getProtocol","summary":"One protocol","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"acp"}],"responses":{"200":{"description":"The protocol.","content":{"application/json":{"schema":{"type":"object","required":["updatedAt","source","protocol"],"properties":{"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri","description":"Human page on this site. Credit this URL."},"protocol":{"type":"object","required":["slug","name","shortName","status","date","who","summary","sections","links","faqs","pageUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"shortName":{"type":"string"},"status":{"type":"string","enum":["live","pilot","announced","none"]},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"who":{"type":"string"},"summary":{"type":"string"},"uncertainty":{"type":"string"},"pageUrl":{"type":"string","format":"uri"},"sections":{"type":"array","items":{"type":"object","required":["heading","paragraphs"],"properties":{"heading":{"type":"string"},"paragraphs":{"type":"array","items":{"type":"string"}}}}},"links":{"type":"array","items":{"type":"object","required":["label","url"],"properties":{"label":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"faqs":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"question":{"type":"string"},"answer":{"type":"string"}}}}}}}}}}},"404":{"description":"Unknown slug.","content":{"application/json":{"schema":{"type":"object","required":["error","message","updatedAt","source"],"properties":{"error":{"type":"string","enum":["not_found","bad_request"]},"message":{"type":"string"},"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri"}}}}}}}}},"/api/v1/blocklist":{"get":{"operationId":"getBlocklist","summary":"Who blocks AI agents","description":"Weekly reading of public robots.txt files. updatedAt is checkedOn, the day the files were fetched. CC BY 4.0. Link back to source.","responses":{"200":{"description":"The blocklist.","content":{"application/json":{"schema":{"type":"object","required":["updatedAt","source","blocklist"],"properties":{"updatedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"source":{"type":"string","format":"uri","description":"Human page on this site. Credit this URL."},"blocklist":{"type":"object","description":"The same document served at /blocklist.json.","required":["name","description","url","license","licenseUrl","attribution","publisher","checkedOn","methodology","findings","agents","sites","policy"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"license":{"type":"string","const":"CC BY 4.0"},"licenseUrl":{"type":"string","format":"uri"},"attribution":{"type":"string"},"publisher":{"type":"string"},"checkedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"methodology":{"type":"string"},"findings":{"type":"array","items":{"type":"string"}},"agents":{"type":"array","items":{"type":"object"}},"sites":{"type":"array","items":{"type":"object","required":["id","name","homepage","robotsUrl","outcome","agents","catchAll"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"homepage":{"type":"string","format":"uri"},"robotsUrl":{"type":"string","format":"uri"},"playerId":{"type":"string"},"fetchedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Calendar date, YYYY-MM-DD."},"outcome":{"type":"string","enum":["ok","missing","unreadable","unreachable"]},"catchAll":{"type":"object"},"agents":{"type":"object","additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["blocked fully","partly","allowed","not mentioned","unknown"]},"rules":{"type":"array","items":{"type":"string"}}}}}}}},"policy":{"type":"array","items":{"type":"object"}}}}}}}}}}}},"/api/v1/openapi.json":{"get":{"operationId":"getOpenApi","summary":"This document","responses":{"200":{"description":"OpenAPI 3.1 JSON."}}}}}}
