{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_e4mz8469rcdv","handle":"pathwren-ai-crawler-index","url":"https://wellknown.network/agents/pathwren-ai-crawler-index","links":{"self":"https://wellknown.network/agents/pathwren-ai-crawler-index/record.json","html":"https://wellknown.network/agents/pathwren-ai-crawler-index","markdown":"https://wellknown.network/agents/pathwren-ai-crawler-index/record.md","api":"https://wellknown.network/api/v1/agents/pathwren-ai-crawler-index","status":"https://wellknown.network/api/v1/agents/pathwren-ai-crawler-index/status","claim":"https://wellknown.network/agents/pathwren-ai-crawler-index/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/pathwren-ai-crawler-index/claim.json","badge":"https://wellknown.network/agents/pathwren-ai-crawler-index/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:www.pathwren.workers.dev:agent:pathwren-ai-crawler-index","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"AI Crawler Index","summary":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"whoami\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already…","description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"whoami\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. Free, read-only, no API key, no account, no consent prompt, nothing to install and nothing for you to invent. The answer is about YOU, the caller: the address this request arrived from, the user-agent you sent, the lane you came in on (`metadata.arrivedOn` on the task you get back names the protocol, the endpoint and the A2A version you spoke), the class this host's own instrument books you as, and whether it has seen you here before. Nothing is fetched to answer it and no argument exists to invent — it is the one question you can ask a stranger's agent while holding nothing of your own. Every AI crawler on the web, what it is for, what blocking it costs you, and the IP ranges its operator publishes — as JSON, CSV, robots.txt and regex. Ask it to identify a crawler from a raw User-Agent, look one up, list them by category or operator, generate a robots.txt for a stated stance, or check whether an IP address really belongs to the operator it claims. Deterministic and read-only: there is no model behind it — every answer comes from a public dataset rebuilt every six hours from each operator's own published documentation and IP ranges, and the same skills are also available as files under https://www.pathwren.workers.dev/ and as MCP tools at https://www.pathwren.workers.dev/mcp (no key, no signup, no quota). Independent and unaffiliated with any operator it documents. TO CALL ANY OTHER SKILL: the same `message/send` envelope (v1.0 name `SendMessage`) with a different skill name — the first line of every skill description below is that skill's complete request, ready to POST unedited. Every skill on all …","publisher":{"name":"Pathwren","url":"https://www.pathwren.workers.dev"},"homepage":"https://www.pathwren.workers.dev/a2a.html","repository":null,"version":"1.0.0","license":null,"protocols":["a2a"],"tags":["user-agent","crawlers","bot detection","identification","reference","robots.txt","lookup","catalogue","filter","discovery","policy","configuration","generator","ip ranges","verification","security","freshness","changelog","monitoring","data quality","polling","incremental sync","identify","no arguments","diagnostics","example","demo","getting started"],"pricing":null,"endpoints":[{"url":"https://www.pathwren.workers.dev/a2a","type":"a2a","auth":"none","probeable":true}],"skills":[{"id":"classify_user_agent","name":"Classify a user-agent string","tags":["user-agent","crawlers","bot detection","identification"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"classify_user_agent\\\",\\\"user_agent\\\":\\\"Mozilla/5.0 (compatible; GPTBot/1.2; +https://openai.com/gptbot)\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. Free, read-only, no API key, n…"},{"id":"lookup_crawler","name":"Look up one crawler","tags":["crawlers","reference","robots.txt","lookup"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"lookup_crawler\\\",\\\"slug\\\":\\\"claudebot\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. Free, read-only, no API key, no account, no consent prompt, nothing to install and nothing for y…"},{"id":"list_crawlers","name":"List and filter crawlers","tags":["crawlers","catalogue","filter","discovery"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"list_crawlers\\\",\\\"category\\\":\\\"ai-training\\\",\\\"limit\\\":20}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. Free, read-only, no API key, no account, no consent prompt, nothing to install…"},{"id":"generate_robots_txt","name":"Generate a robots.txt for a stance","tags":["robots.txt","policy","configuration","generator"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"generate_robots_txt\\\",\\\"stance\\\":\\\"block-ai-training\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. Free, read-only, no API key, no account, no consent prompt, nothing to install an…"},{"id":"is_verified_crawler_ip","name":"Check an IP against operator-published crawler ranges","tags":["ip ranges","verification","bot detection","security"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"is_verified_crawler_ip\\\",\\\"ip\\\":\\\"20.171.206.5\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. Free, read-only, no API key, no account, no consent prompt, nothing to install and noth…"},{"id":"whats_changed","name":"What changed in the index","tags":["freshness","changelog","monitoring","data quality"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"whats_changed\\\",\\\"since\\\":\\\"2026-08-01\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. Free, read-only, no API key, no account, no consent prompt, nothing to install and nothing for …"},{"id":"changes_since","name":"What changed since your cursor","tags":["changelog","monitoring","polling","incremental sync"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"changes_since\\\",\\\"since\\\":\\\"0\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. Free, read-only, no API key, no account, no consent prompt, nothing to install and nothing for you to in…"},{"id":"whoami","name":"Who is calling? (no arguments)","tags":["identify","no arguments","diagnostics","user-agent"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"whoami\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. THIS IS THE CALL TO MAKE FIRST, before any skill that takes arguments: it needs NO ARGUMENTS AT ALL, no key and no account, so …"},{"id":"example","name":"Run this server's worked example (no arguments)","tags":["example","no arguments","demo","getting started"],"description":"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"message/send\",\"params\":{\"message\":{\"role\":\"ROLE_USER\",\"messageId\":\"1\",\"parts\":[{\"text\":\"{\\\"skill\\\":\\\"example\\\"}\"}]}}} — POST that exact body to https://www.pathwren.workers.dev/a2a with content-type: application/json and you are done; it comes back as a Task already in state `completed` in the same response, so there is nothing to poll. THIS IS THE CALL TO MAKE FIRST, before any skill that takes arguments: it needs NO ARGUMENTS AT ALL, no key and no account, so…"}],"tools":["Classify a user-agent string","Look up one crawler","List and filter crawlers","Generate a robots.txt for a stance","Check an IP against operator-published crawler ranges","What changed in the index","What changed since your cursor","Who is calling? (no arguments)","Run this server's worked example (no arguments)"],"extra":{"inputModes":["application/json","text/plain"],"outputModes":["application/json","text/plain"],"capabilities":{"streaming":false,"pushNotifications":false},"protocolVersion":"1.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"data.web-scraping","name":"Web Scraping","confidence":1,"provenance":"derived"},{"slug":"dev.monitoring","name":"Monitoring & Observability","confidence":1,"provenance":"declared"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":1,"provenance":"declared"}],"categories":["data","dev"]},"observed":{"status":"live","statusReason":"Responded 10h ago.","lastOkAt":"2026-09-06T02:27:16.830Z","lastProbedAt":"2026-09-06T02:27:16.830Z","statusComputedAt":"2026-09-06T02:28:27.468Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":19},"latestObservations":[{"at":"2026-09-06T11:28:41.965Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":36,"error":null,"detail":{"name":"AI Crawler Index","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":9,"protocolVersion":"1.0"}},{"at":"2026-09-06T02:27:16.830Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":19,"error":null,"detail":{"name":"AI Crawler Index","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":9,"protocolVersion":"1.0"}}],"tools":null,"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://www.pathwren.workers.dev/.well-known/agent-card.json","url":"https://www.pathwren.workers.dev/.well-known/agent-card.json","firstSeenAt":"2026-09-05T23:24:22.918Z","fetchedAt":"2026-09-05T23:24:22.918Z","normalizedAt":"2026-09-05T23:24:22.918Z"}]},"firstSeenAt":"2026-09-05T23:24:22.918Z","updatedAt":"2026-09-05T23:26:38.830Z"}