{"openapi":"3.1.0","info":{"title":"Agent Web Map API","version":"0.3.0","description":"Directory of websites publishing llms.txt, ranked by authority, with a free JSON API and MCP server for AI agents. Verify your site to rank first. Reads need no key. Owners get a key by verifying their domain. MCP server: https://agentwebmap.com/mcp"},"servers":[{"url":"https://agentwebmap.com"}],"paths":{"/v1/stats":{"get":{"operationId":"getStats","summary":"Directory-wide counts","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}}}}},"/v1/domains":{"get":{"operationId":"listDomains","summary":"Ranked listing (verified first, then authority)","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"include_unlisted","in":"query","schema":{"type":"boolean","default":false}},{"name":"verified","in":"query","schema":{"type":"boolean","default":false},"description":"Only domains whose owner has verified them"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Listing"}}}}}}},"/v1/search":{"get":{"operationId":"searchDomains","summary":"Full-text search over domain, title, summary, description, tags","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"include_unlisted","in":"query","schema":{"type":"boolean","default":false}},{"name":"verified","in":"query","schema":{"type":"boolean","default":false},"description":"Only domains whose owner has verified them"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Listing"}}}}}}},"/v1/domain/{domain}":{"get":{"operationId":"lookupDomain","summary":"Everything known about one domain","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}},"404":{"description":"Not in the directory"}}}},"/v1/sites":{"post":{"operationId":"registerSite","summary":"Submit a domain for crawling; returns verification instructions","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string"}}}}}},"responses":{"200":{"description":"Already tracked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Registration"}}}},"202":{"description":"Queued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Registration"}}}},"429":{"description":"Rate limited"}}}},"/v1/sites/{domain}/verification":{"get":{"operationId":"verificationInstructions","summary":"Token and the four verification methods","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Verification"}}}}}}},"/v1/sites/{domain}/verify":{"post":{"operationId":"verifySite","summary":"Check the four methods; on success returns the owner API key (shown once)","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"verified":{"type":"boolean"},"via":{"type":"string"},"api_key":{"type":"string"},"badge":{"type":"object"}}}}}},"422":{"description":"Token not found yet"}}}},"/v1/sites/{domain}":{"patch":{"operationId":"updateSite","summary":"Owner: edit profile and notification channels","security":[{"apiKey":[]}],"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteUpdate"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}},"401":{"description":"Bad or missing API key"}}}},"/v1/sites/{domain}/stats":{"get":{"operationId":"siteStats","summary":"Owner: lookups, score history, notifications, badge","security":[{"apiKey":[]}],"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/sites/{domain}/recrawl":{"post":{"operationId":"recrawlSite","summary":"Owner: re-validate now (once per 10 minutes)","security":[{"apiKey":[]}],"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}}}}},"/v1/sites/{domain}/notify/test":{"post":{"operationId":"testNotification","summary":"Owner: send a test event to the configured webhook/email","security":[{"apiKey":[]}],"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/badge/{domain}.svg":{"get":{"operationId":"badge","summary":"SVG status badge","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"image/svg+xml"}}}},"/v1/check/{domain}":{"get":{"operationId":"checkLlmsTxt","summary":"Validate a site's llms.txt: each check with what to fix, and a preview","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/generate/{domain}":{"get":{"operationId":"generateLlmsTxt","summary":"Draft an llms.txt from the site's homepage, sitemap and page titles (10-30 s)","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"},"description":"Domain name, e.g. example.com"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}}}}}}}}},"/v1/map":{"get":{"operationId":"mapData","summary":"Valid, listed and verified sites per country (ISO 3166-1 alpha-2)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"Owner API key from /verify"}},"schemas":{"Stats":{"type":"object","properties":{"domains_tracked":{"type":"integer"},"valid_llms_txt":{"type":"integer"},"listed":{"type":"integer"},"verified":{"type":"integer"},"with_llms_full_txt":{"type":"integer"},"pending":{"type":"integer"},"last_checked":{"type":["string","null"]}}},"Domain":{"type":"object","properties":{"domain":{"type":"string"},"status":{"type":"string","enum":["pending","valid","invalid","unreachable"]},"tier":{"type":["string","null"],"enum":["featured","listed","unlisted","rejected",null]},"authority":{"type":["integer","null"],"description":"0-100"},"verified":{"type":"boolean"},"verified_at":{"type":["string","null"]},"llms_txt":{"type":["string","null"]},"llms_full_txt":{"type":["string","null"]},"nested_llms_txt":{"type":"array","items":{"type":"string"}},"title":{"type":["string","null"]},"summary":{"type":["string","null"]},"description":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"contact":{"type":["string","null"]},"sections":{"type":["integer","null"]},"links":{"type":["integer","null"]},"rank":{"type":["integer","null"],"description":"Popularity rank, lower is better"},"registered_at":{"type":["string","null"]},"country":{"type":["string","null"],"description":"ISO 3166-1 alpha-2"},"first_seen":{"type":"string"},"last_checked":{"type":["string","null"]},"badge":{"type":"string"},"claim":{"type":"object","description":"Present on unverified domains: how to verify and what it buys"}}},"Listing":{"type":"object","properties":{"query":{"type":"string"},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"results":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}}}},"Verification":{"type":"object","properties":{"domain":{"type":"string"},"token":{"type":"string"},"verify_endpoint":{"type":"string"},"methods":{"type":"array","items":{"type":"object","properties":{"method":{"type":"string"},"description":{"type":"string"},"snippet":{"type":"string"}}}}}},"Registration":{"type":"object","properties":{"domain":{"type":"string"},"status":{"type":"string"},"queued":{"type":"boolean"},"lookup":{"type":"string"},"verification":{"$ref":"#/components/schemas/Verification"},"benefits":{"type":"array","items":{"type":"string"}}}},"SiteUpdate":{"type":"object","properties":{"description":{"type":["string","null"],"maxLength":500},"tags":{"type":"array","items":{"type":"string"},"maxItems":10},"nested_llms_txt":{"type":"array","items":{"type":"string"},"maxItems":20},"contact":{"type":["string","null"]},"webhook_url":{"type":["string","null"]},"notify_email":{"type":["string","null"]}}}}}}