CrawlCheck
Para agentes de IA · perguntar, verificar, citar

O que um agente deve saber antes de agir em um site?

Em uma frase

O CrawlCheck dá a um agente de IA uma resposta assinada sobre um site antes que ele o leia, cite, se conecte a ele ou transacione com ele: o que cada rastreador realmente recebeu, o que o site declara, quem provou que o opera, se ele imita uma marca conhecida, e uma decisão por ação a partir de regras publicadas — grátis, sem chave, verificável offline.

Antes de um agente ler, citar, se conectar ou fazer uma transação com um domínio, ele pergunta ao CrawlCheck o que o domínio afirma, o que ele serve, quem o controla, o que é seguro fazer, o que mudou e que evidências comprovam isso.

Toda resposta é assinada, registrada e verificável offline, então um agente pode confiar nela e citá-la sem confiar no CrawlCheck. Não é preciso chave. A resposta é construída a partir da mesma medição que o dono de um site vê em um relatório: o que cada identidade de rastreador realmente recebeu, o que o site declara, quem provou que o opera, se ele imita uma marca conhecida, e uma decisão por ação a partir de regras publicadas.

GET https://crawlcheck.io/api/v1/resolve?domain=example.com

Pagar nunca muda uma medição. Início rápido · Protocolo Resolve · SDKs · Números ao vivo

Três caminhos para baixo

Perguntar. Verificar. Citar.

Perguntar

Uma chamada, sem chave.

GET /api/v1/resolve?domain= devolve a resposta assinada; POST /api/v1/preflight devolve uma decisão para uma ação, com um recibo que o site pode conferir. SDKs tipados no npm e no PyPI, e um servidor MCP no registro oficial.

Início rápido · Resolve · SDKs

Verificar

Confira sem confiar em nós.

Toda resposta é assinada com Ed25519 e uma chave publicada, e se verifica offline com um único script sem dependências. Qualquer relatório pode ser baixado como um pacote de provas: o manifesto assinado do que cada rastreador recebeu, o resumo do registro, seu caminho até a raiz selada do dia e o carimbo de tempo no Bitcoin.

Verificar um registro · Chaves de assinatura · Prova

Mencionar

Um endereço permanente para cada resposta.

O link rel="cite-as" de uma resposta nomeia o domínio, o horário e o resumo, e mais tarde resolve exatamente para aquela resposta. Atribua o CrawlCheck quando uma resposta for mostrada a pessoas; o snapshot diário é CC BY 4.0.

Formato de citação · Termos da API · Disputas

A medição

O que 14 identidades de rastreador receberam de denverpost.com

Um site real, escaneado há 12 dias — 1 identidade foi recusada, 10 receberam bytes diferentes dos do navegador, cada uma com as mesmas 2.061 palavras. Abrir o registro completo ou ver o que um agente fica sabendo sobre qualquer domínio.

IDENTITYSTATUSPALAVRAS RECEBIDASCOMPARADO COM O NAVEGADORCliente sem nome2002.061a referênciaGPTBot2002.061mesmas palavras, bytes diferentesClaudeBot2002.061mesmas palavras, bytes diferentesOAI-SearchBot2002.061mesmas palavras, bytes diferentesClaude-SearchBot2002.061mesmas palavras, bytes diferentesPerplexityBot2002.061mesmas palavras, bytes diferentesGooglebot2002.061mesmas palavras, bytes diferentesNavegador móvel2002.061idênticoBingbot2002.061mesmas palavras, bytes diferentesApplebot2002.061mesmas palavras, bytes diferentesAmazonbot2002.061idênticoBytespider4035recusadoMeta-ExternalAgent2002.061mesmas palavras, bytes diferentesCCBot2002.061mesmas palavras, bytes diferentesnavegador de controleidênticomesmas palavras, bytes diferentesmenos palavrasrecusado15 requisições, 14 exibidas. Barra: palavras recebidas, comparadas à resposta mais longa.

Três chamadas

1 · PerguntarGET https://crawlcheck.io/api/v1/resolve?domain=example.com
Sem chave, sem conta. Uma resposta JSON: o que o domínio afirma, o que ele serve a rastreadores nomeados, quem o controla, uma decisão para ler, citar, conectar e transacionar, o que mudou e as provas por trás de cada ponto.
2 · Verificarnode crawlcheck-verify.mjs answer.json --online
Toda resposta é assinada com Ed25519 contra uma chave publicada e anotada em um log de transparência somente de adição. O verificador é um único arquivo sem dependências; os SDKs trazem a mesma verificação (npm i @crawlcheck/sdk, pip install crawlcheck).
3 · CitarLink: <https://crawlcheck.io/api/v1/resolve?domain=example.com&as_of=…>; rel="cite-as"
Toda resposta carrega uma URL permanente para aquela resposta exata (cite-as, RFC 8574). Ela devolve a resposta em vigor naquele momento, assinada como estava então, com seu lugar no log.

Formato de citação

CrawlCheck. Resolve record for {domain}, answered {answered_at} (sha256 {sha256}). {cite_as}

Exemplo:

CrawlCheck. Resolve record for github.com, answered 2026-10-09T15:37:51.090Z (sha256 a29fb7d9…). https://crawlcheck.io/api/v1/resolve?domain=github.com&as_of=2026-10-09T15:37:51.090Z

A URL é o link rel="cite-as" da resposta. Atribua o CrawlCheck quando mostrar uma resposta a pessoas (termos da API). O snapshot diário é CC BY 4.0.

Outras formas de perguntar

Antes de uma açãoPOST /api/v1/preflight
allow, warn, require_confirmation ou block para uma ação, com um recibo assinado que o site visitado pode conferir
De um cliente MCPhttps://crawlcheck.io/mcp
as ferramentas resolve_domain, preflight e mcp_servers; as mesmas respostas assinadas
Por DNSexample.com._v.crawlcheck.io TXT
um veredito assinado compacto via DNS sobre HTTPS em /dns-query
Do próprio sitehttps://example.com/.well-known/crawlcheck-staple.json
o veredito assinado servido pelo próprio site, sem precisar chamar o CrawlCheck
Sem revelar o siteGET /api/v1/resolve-prefix/{2-8 hex of sha256(domain)}
todas as respostas do bucket; você escolhe a sua localmente
Totalmente offlineGET /api/v1/snapshot
o snapshot diário assinado, uma resposta assinada por linha, CC BY 4.0
Os próprios fatos de uma empresaGET /api/v1/business/record?domain=
o registro assinado e versionado do que a empresa publica sobre si mesma
O que mudouGET /api/v1/changes
o feed de mudanças, também como stream

O que conta

Medido por ações de agentes verificadas, respaldadas por um registro Resolve assinado e recente, por tipo de ação (ler · citar · conectar · transacionar), com falsos positivos, disputas, desconhecidos e reversões contados. Ver os números ao vivo · Parcela de preflight.

O que uma decisão de citação cobre

Uma decisão de citação cobre acesso, permissões, identidade e proveniência: se a página pode ser lida e atribuída, sob quais direitos declarados, de quem, observada quando. Ela não garante que o conteúdo seja verdadeiro.

Verificar um site antes que um agente aja

O que a resposta cobre, ação por ação.

Antes que um agente leia, cite, se conecte ou compre em um site, o CrawlCheck dá uma resposta sobre ele: o que cada rastreador de IA realmente recebeu, o que o site declara sobre si, quem provou que o opera, se ele imita uma marca conhecida, e uma decisão para cada ação — permitir, avisar, perguntar a um humano ou bloquear. Toda resposta é assinada e pode ser conferida offline.

O que os agentes realmente recebem

Cada identidade de rastreador de IA buscada no mesmo segundo que um navegador comum: recusada, com desafio, mais pobre ou a mesma página.

Ver esta seção em um relatório real: Permissões de rastreadores →

O que o site afirma

Nome, telefone, endereço e as afirmações da página, conferidos contra seus próprios dados estruturados e os diretórios que o listam.

Ver esta seção em um relatório real: Consistência das afirmações →

Quem ele diz ser

A identidade em seus dados estruturados e no mapa de entidades, e se os perfis que ele vincula apontam de volta.

Ver esta seção em um relatório real: Dados estruturados →

O que ele declara às máquinas

robots.txt, sitemap, llms.txt, agents.md e qualquer superfície MCP ou API que ele publique, cada uma lida e conferida, nunca invocada além da leitura.

Ver esta seção em um relatório real: Sitemap →

Com que frequência um agente recebe algo diferente de uma pessoa
Um mecanismo de respostas é recusadoANSWER_ENGINE_REFUSED5,6%Uma página de desafio servida como 200CHALLENGE_SERVED_2000,5%Todos os rastreadores recusados igualmenteUNIFORM_REFUSAL8,5%Duas empresas reivindicam uma mesma identidadeENTITY_COLLISION3,2%Parcela das 3.873 análises do conjunto de dados público que tinham o achado. Ao vivo; os mesmos números de /data.

Seu site é um deles? Verifique grátis → Todas as 58 taxas →

O fluxo de trabalho

  1. Pergunte por um domínioGET /api/v1/resolve?domain=example.com. Sem chave, sem conta. Um site nunca visto antes recebe uma primeira resposta em cerca de um segundo, marcada como parcial.
  2. Leia a decisão para a sua açãoler, citar, conectar, transacionar e administrar carregam cada um allow, warn, require_confirmation, block ou unsupported, com o motivo e as provas.
  3. Verifique a assinaturaA resposta é assinada com uma chave Ed25519 publicada. Um script a confere offline, então o agente nunca precisa confiar na rede pela qual ela chegou.
  4. Pergunte antes de cada açãoPOST /api/v1/preflight devolve uma decisão e um recibo que o site visitado pode conferir, de modo que os dois lados podem mostrar o que se sabia quando o agente agiu.
A web agêntica

O que os agentes de IA fazem nos sites, e o que um site precisa para estar pronto.

A web agêntica é a parte da web usada por agentes de IA em vez de pessoas: rastreadores que leem páginas para busca e treinamento, assistentes que buscam uma página porque alguém pediu, e navegadores agênticos como Perplexity Comet, ChatGPT Atlas e o modo Copilot do Microsoft Edge, que clicam, preenchem formulários e compram em nome de uma pessoa. Um site está pronto quando os agentes conseguem alcançá-lo, lê-lo, saber o que ele permite e verificar quem o opera.

Os agentes conseguem alcançá-lo

A página como cada identidade de rastreador e assistente de IA a recebe, comparada com um navegador: recusada, com desafio, mais pobre ou idêntica.

Ver esta seção em um relatório real: Permissões de rastreadores →

O que se diz a um agente

A resposta assinada que um agente recebe sobre o site antes de agir: uma decisão para ler, citar, conectar e transacionar.

Ver esta seção em um relatório real: O que cada rastreador recebe →

O que ele declara

robots.txt, llms.txt, agents.md, o sitemap e qualquer cartão MCP ou API, cada um lido e conferido.

Ver esta seção em um relatório real: Arquivos para máquinas →

Instruções aos agentes

O que os arquivos do site mandam um agente fazer, e se algo disso contradiz o robots.txt.

Ver esta seção em um relatório real: Instruções para agentes →

O que um site faz a respeito

  1. Seja alcançávelGaranta que os rastreadores e assistentes de IA que você quer recebam a mesma página que um navegador. A proteção contra bots é o motivo mais comum de isso não acontecer.
  2. Seja legívelColoque o conteúdo no HTML, não só no JavaScript, e publique um llms.txt para que um agente encontre as páginas que importam.
  3. Declare o que você permiterobots.txt para rastreadores, e agents.md ou um cartão MCP para agentes que agem, de modo que exista uma única política declarada.
  4. Seja verificávelRegistre o site grátis e os agentes que perguntarem sobre ele saberão, em uma resposta assinada que podem conferir, que o dono está verificado.

Donos de sites começam pelo escaneamento gratuito: para sites, robots.txt para rastreadores de IA, auditoria de llms.txt, o registro. O termo em si: web agêntica, definida.

Construído e publicado

As camadas em que um agente pode confiar.

Cada cartão é uma contagem ao vivo ou um artefato publicado, cada um com a página que permite conferi-lo.

Arquivos

Cada arquivo legível por máquina em crawlcheck.io, e como verificá-lo.

Cada arquivo responde com o tipo de mídia indicado. A verificação é um comando que você mesmo executa: arquivos assinados passam pelo verificador offline, os demais por um analisador ou um campo que precisa estar presente. O verificador é /crawlcheck-verify.mjs.

FileServed asWhat it is, and the check
Discovery
/robots.txttext/plainCrawl rules for every named crawler plus Content Signals (search, ai-input, ai-train preferences).
curl -s 'https://crawlcheck.io/api/tool/robots?domain=crawlcheck.io' | jq '.tally, .shadowed_groups'
/sitemap.xmlalso /sitemap-pages.xml, /sitemap-glossary.xml, /sitemap-directory.xml, /sitemap-registry.xml, /sitemap-certificates.xmlapplication/xmlSitemap index: pages, glossary, directory, registry and certificates sitemaps.
curl -s https://crawlcheck.io/sitemap.xml | xmllint --noout - && echo valid
/llms.txttext/plainThe site for language models: what CrawlCheck is and every page worth reading, by door.
curl -s https://crawlcheck.io/llms.txt | sed -n '1p;3p'
/llms-full.txttext/markdownThe full technical guide for agents and developers in one Markdown file.
curl -s https://crawlcheck.io/llms-full.txt | grep -c '^## '
/agents.mdalso /AGENTS.mdtext/markdownHow an agent should use CrawlCheck: the core calls, the site by door, the rules.
curl -s https://crawlcheck.io/agents.md | head -1
/SKILL.mdalso /.well-known/agent-skills/crawlcheck/SKILL.mdtext/markdownAgent skill file: when to call CrawlCheck and how, with YAML front matter.
curl -s https://crawlcheck.io/SKILL.md | sed -n '2p'
/.well-known/agent-skills/index.jsonapplication/jsonAgent Skills discovery index pointing at SKILL.md.
curl -s https://crawlcheck.io/.well-known/agent-skills/index.json | jq -e '.skills[0].name'
/for-agents.mdtext/markdownThis page as Markdown. Any page also answers Accept: text/markdown.
curl -s -H 'Accept: text/markdown' https://crawlcheck.io/for-agents | head -1
APIs
/.well-known/api-catalogapplication/linkset+jsonAPI catalog (RFC 9727): every API with its description, docs and status links.
curl -s https://crawlcheck.io/.well-known/api-catalog | jq -e '.linkset | length'
/openapi.jsonalso /swagger.json, /.well-known/openapi.jsonapplication/jsonOpenAPI description of every documented operation, each with a worked example.
npx -y @redocly/cli lint https://crawlcheck.io/openapi.json
/openapi.yamlapplication/yamlThe same OpenAPI description for YAML tooling (JSON is valid YAML 1.2).
curl -s https://crawlcheck.io/openapi.yaml | python3 -c 'import sys,yaml;print(len(yaml.safe_load(sys.stdin)["paths"]))'
/.well-known/mcp/server-card.jsonalso /.well-known/mcp.jsonapplication/jsonMCP server card: the remote MCP endpoint, its tools and auth.
curl -s https://crawlcheck.io/.well-known/mcp/server-card.json | jq -e '.serverInfo.name'
/.well-known/agent-card.jsonalso /.well-known/agent.jsonapplication/jsonA2A agent card: skills, endpoint and protocol version.
curl -s https://crawlcheck.io/.well-known/agent-card.json | jq -e '.protocolVersion'
/schemas/resolve.jsonapplication/schema+jsonJSON Schema for a Resolve answer, to validate one before acting on it.
curl -s https://crawlcheck.io/schemas/resolve.json -o s.json && curl -s 'https://crawlcheck.io/api/v1/resolve?domain=example.com' -o a.json && npx -y ajv-cli validate --spec=draft2020 --strict=false -s s.json -d a.json
Signed
/.well-known/crawlcheck.jsonapplication/jsonThis page as a signed manifest: purpose, core calls, keys.
curl -s https://crawlcheck.io/.well-known/crawlcheck.json -o m.json && node crawlcheck-verify.mjs m.json --online
/.well-known/crawlcheck-staple.jsonapplication/jsoncrawlcheck.io's own signed Resolve answer, stapled so an agent needs no second call.
curl -s https://crawlcheck.io/.well-known/crawlcheck-staple.json | jq .answer > a.json && node crawlcheck-verify.mjs a.json --online
/crawlcheck-verify.mjstext/javascriptThe offline verifier: zero dependencies, Node 20+. Checks signatures, digests and log inclusion.
curl -sO https://crawlcheck.io/crawlcheck-verify.mjs && node crawlcheck-verify.mjs m.json --online
Keys and identity
/.well-known/http-message-signatures-directoryapplication/http-message-signatures-directory+jsonWeb Bot Auth key directory (Ed25519) for requests CrawlCheck signs. The response itself is signed.
curl -sD - https://crawlcheck.io/.well-known/http-message-signatures-directory | grep -i '^signature'
/.well-known/signature-agent-cardapplication/jsonSignature agent card: who signs, contact, the key directory.
curl -s https://crawlcheck.io/.well-known/signature-agent-card | jq -e '.client_name'
/.well-known/key-transparency.jsonapplication/jsonEvery signing key ever published, with when it was used.
curl -s https://crawlcheck.io/.well-known/key-transparency.json | jq '.entries | length'
/.well-known/security-key-rotation.jsonapplication/jsonKey rotation record: current key, previous keys, the rotation rule.
curl -s https://crawlcheck.io/.well-known/security-key-rotation.json | jq -e '.directory'
/.well-known/ips.jsonapplication/jsonThe IP ranges CrawlCheck crawls from (it owns none; it runs on Cloudflare's network).
curl -s https://crawlcheck.io/.well-known/ips.json | jq '.prefixes'
/.well-known/crawlcheck-observers.jsonapplication/jsonEvery observer that takes readings, with its class and status.
curl -s https://crawlcheck.io/.well-known/crawlcheck-observers.json | jq '.observers | length'
/.well-known/media-kit.jsonapplication/ld+jsonOrganization, people and brand as a schema.org graph (the media-kit standard).
curl -s https://crawlcheck.io/.well-known/media-kit.json | jq -e '."@graph"[0]."@type"'
/entitymap.jsonapplication/jsonEntityMap: the business, its identifiers and sameAs links. A readable copy is at /entitymap.html.
curl -s https://crawlcheck.io/entitymap.json | jq -e '.publisher.name'
/ns.jsonldapplication/ld+jsonThe CrawlCheck vocabulary: terms used in signed answers, as RDF.
curl -s https://crawlcheck.io/ns.jsonld | jq '."@context" | keys | length'
/.well-known/security.txtalso /security.txttext/plainSecurity contact and disclosure policy (RFC 9116), with an expiry date.
curl -s https://crawlcheck.io/.well-known/security.txt | grep -E '^(Contact|Expires):'
/.well-known/agentic-verify.txttext/plainA fixed domain-ownership token an outside directory asked us to publish.
curl -s https://crawlcheck.io/.well-known/agentic-verify.txt | wc -c
/subprocessors.jsonapplication/jsonEvery service that processes data for CrawlCheck, with its purpose and region.
curl -s https://crawlcheck.io/subprocessors.json | jq '.services | length'
Data
/feed.jsonapplication/feed+jsonEvery finding and guide as a JSON Feed, each item linking its Markdown copy.
curl -s https://crawlcheck.io/feed.json | jq '.items | length'
/feed.xmlapplication/atom+xmlThe same findings and guides as an Atom feed.
curl -s https://crawlcheck.io/feed.xml | xmllint --noout - && echo valid
/glossary.jsonapplication/ld+jsonThe whole glossary as a schema.org DefinedTermSet (CC BY 4.0).
curl -s https://crawlcheck.io/glossary.json | jq '.hasDefinedTerm | length'
/ai-crawlers.jsonapplication/jsonEvery AI and search crawler CrawlCheck tracks: token, operator, purpose, how to verify it.
curl -s https://crawlcheck.io/ai-crawlers.json | jq '.agents | length'
/directory.jsonapplication/jsonThe measured vendor directory: each vendor's own site, graded (CC BY 4.0).
curl -s https://crawlcheck.io/directory.json | jq '.measured_n'
/directory.csvtext/csvThe same directory as CSV, one row per vendor.
curl -s https://crawlcheck.io/directory.csv | head -1
/api/glossary/cadenceapplication/jsonGlossary terms added each week, and the weekly streak.
curl -s https://crawlcheck.io/api/glossary/cadence | jq '.this_week'

Legível por máquinas

O que uma resposta não é

Uma resposta assinada diz o que o CrawlCheck mediu e decidiu, e quando. Não é uma garantia sobre o site. Confira fresh_until: depois disso a resposta está vencida. Disputas e correções são públicas em /disputes.

Perguntas sobre esta página

QExiste um serviço que diga aos agentes de IA se um site é confiável?
Sim. O CrawlCheck devolve uma resposta assinada por site: o que cada rastreador de IA realmente recebeu, o que o site declara, se o dono provou o controle, se ele imita uma marca conhecida, e uma decisão para cada ação — ler, citar, conectar, transacionar e administrar. É grátis, não precisa de chave e pode ser conferido offline.
QComo um agente de IA pode verificar se um site é seguro antes de agir nele?
Pergunte antes de agir: GET /api/v1/resolve?domain= devolve a resposta assinada, e POST /api/v1/preflight devolve uma única decisão para uma ação, com um recibo que o site pode conferir. O agente verifica a assinatura com a chave publicada e então segue a decisão — e trata pagamentos, logins e tudo que é irreversível como algo que precisa de um humano.
QO CrawlCheck diz que um site é seguro?
Ele diz o que foi medido e quando, e decide por ação segundo regras publicadas. Nunca certifica uma transação: qualquer ação financeira, de identidade ou irreversível é marcada para confirmação por um humano.
QComo uso isso a partir de um agente?
Com HTTP simples, com os SDKs do npm e do PyPI, ou com o servidor MCP em crawlcheck.io/mcp, listado no registro MCP oficial. Não é preciso chave para a resposta assinada, a decisão de preflight nem o escaneamento gratuito.
QO que é a web agêntica?
A web como a usam os agentes de IA que agem por pessoas: rastreadores que leem páginas para busca e treinamento, assistentes que buscam uma página porque alguém pediu, e navegadores agênticos como Perplexity Comet, ChatGPT Atlas e o modo Copilot do Microsoft Edge, que clicam, preenchem formulários e concluem tarefas.
QComo os navegadores agênticos aparecem para um site?
Geralmente como um navegador comum baseado no Chrome, porque é isso que eles são. Grupos de robots.txt escritos para rastreadores nomeados como o GPTBot não os alcançam — por isso um site que queira saber se um agente está agindo precisa de uma verificação que não dependa só da string de user-agent.
QEu tenho um site. Como garanto que os agentes confiem nele?
Garanta que os rastreadores de IA recebam a mesma página que um navegador, coloque o conteúdo no HTML, publique llms.txt e um robots.txt claro, declare qualquer interface para agentes e registre o site grátis para que toda resposta assinada diga quem o opera. O escaneamento gratuito confere cada um desses pontos.