{
  "name": "Radar CNPJ",
  "description": "Consulta e monitoramento anônimo de empresas (base Receita) em radar-cnpj.com. Este Worker é front + proxy fino; a origem é api.radar-cnpj.com. Cliente principal: agente de IA.",
  "build": "dev",
  "base_url": "https://www.radar-cnpj.com",
  "origin_api": "https://api.radar-cnpj.com",
  "docs": {
    "llms": "https://www.radar-cnpj.com/llms.txt",
    "openapi": "https://www.radar-cnpj.com/openapi.json",
    "human_ui": "https://www.radar-cnpj.com/"
  },
  "conventions": {
    "format": "JSON; erros `{ ok:false, code, error }`.",
    "cache": "/api/cnpj/* cache 6h; /api/local e /api/contato nunca cache.",
    "contact_agent": "POST /api/contato sem captcha → x402 $0.10.",
    "parity": "Mexeu na UI/API → apidocs + skill + MCP + llms no mesmo PR."
  },
  "auth": {
    "none": "Público (algumas rotas de origem podem restringir por geo BR).",
    "session": "Monitoramento anônimo: header `x-radar-session` (uuid de POST /api/monitor/session)."
  },
  "endpoints": [
    {
      "method": "GET",
      "path": "/api/",
      "auth": "none",
      "summary": "Índice auto-descrito de toda a superfície deste Worker.",
      "returns": "{ name, description, endpoints[], quickstart[] }",
      "url": "https://www.radar-cnpj.com/api/",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/health",
      "auth": "none",
      "summary": "Health da origem (contagens da base).",
      "returns": "{ ok, … } | geo-restrição",
      "url": "https://www.radar-cnpj.com/api/health",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/cnpj/:cnpj",
      "auth": "none",
      "summary": "Ficha de empresa (14 dígitos). Cache de borda 6h.",
      "returns": "{ ok, … dados cadastrais }",
      "url": "https://www.radar-cnpj.com/api/cnpj/:cnpj",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/busca",
      "auth": "none",
      "summary": "Busca por termo e/ou filtros avançados (`q`, `f` JSON).",
      "returns": "{ ok, items[], page, … }",
      "url": "https://www.radar-cnpj.com/api/busca",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/sugerir",
      "auth": "none",
      "summary": "Autocomplete de empresas/termos.",
      "returns": "{ ok, items[] }",
      "url": "https://www.radar-cnpj.com/api/sugerir",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/ref",
      "auth": "none",
      "summary": "Referência para seletores (CNAE, município, natureza): `tipo` + `q` ou `codigos`.",
      "returns": "{ ok, items[] }",
      "url": "https://www.radar-cnpj.com/api/ref",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/export",
      "auth": "none",
      "summary": "Export CSV/JSON da busca (`format=csv|json` + mesmos params de busca).",
      "returns": "arquivo ou JSON",
      "url": "https://www.radar-cnpj.com/api/export",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "POST",
      "path": "/api/ia",
      "auth": "none",
      "summary": "Texto → filtros normalizados (caminho síncrono ~18–20s).",
      "body": {
        "texto": "padarias em SP com MEI"
      },
      "returns": "{ ok, filtros[] }",
      "url": "https://www.radar-cnpj.com/api/ia",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "POST",
      "path": "/api/ia/jobs",
      "auth": "none",
      "summary": "Enfileira job de IA (quando o síncrono estoura).",
      "body": {
        "texto": "…"
      },
      "returns": "202 { job_id, eta }",
      "url": "https://www.radar-cnpj.com/api/ia/jobs",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/ia/jobs/:id",
      "auth": "none",
      "summary": "Poll do job de IA.",
      "returns": "{ status, filtros? }",
      "url": "https://www.radar-cnpj.com/api/ia/jobs/:id",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/local",
      "auth": "none",
      "summary": "Cidade/UF do visitante via geo de borda (nunca cachear).",
      "returns": "{ fonte: 'borda', uf, municipio, … }",
      "url": "https://www.radar-cnpj.com/api/local",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "GET",
      "path": "/api/municipio-proximo",
      "auth": "none",
      "summary": "Município mais próximo de lat/lon (centroide oficial do IBGE; nunca cachear).",
      "params": "lat, lon",
      "returns": "{ municipio: { codigo, descricao, uf, km } }",
      "url": "https://www.radar-cnpj.com/api/municipio-proximo",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "POST",
      "path": "/api/contato",
      "auth": "none",
      "summary": "Contato: Turnstile (humano) ou x402 $0.10 (agente). Alias /api/contact.",
      "body": {
        "nome": "…",
        "email": "a@example.com",
        "mensagem": "…",
        "aberto_em": 0,
        "turnstile": "(humano)"
      },
      "returns": "{ ok } | 402 accepts[]",
      "url": "https://www.radar-cnpj.com/api/contato",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "POST",
      "path": "/api/contact",
      "auth": "none",
      "summary": "Alias EN de POST /api/contato.",
      "body": {
        "name": "…",
        "email": "…",
        "message": "…",
        "form_ts": 0
      },
      "returns": "{ ok } | 402",
      "url": "https://www.radar-cnpj.com/api/contact",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "POST",
      "path": "/api/monitor/session",
      "auth": "none",
      "summary": "Cria sessão anônima de monitoramento (uuid).",
      "returns": "201 { session_id }",
      "url": "https://www.radar-cnpj.com/api/monitor/session",
      "auth_detail": "Público (algumas rotas de origem podem restringir por geo BR)."
    },
    {
      "method": "PUT",
      "path": "/api/monitor/session/email",
      "auth": "session",
      "summary": "E-mail de alertas da sessão.",
      "body": {
        "email": "a@example.com"
      },
      "returns": "{ ok }",
      "url": "https://www.radar-cnpj.com/api/monitor/session/email",
      "auth_detail": "Monitoramento anônimo: header `x-radar-session` (uuid de POST /api/monitor/session)."
    },
    {
      "method": "GET",
      "path": "/api/me/monitor",
      "auth": "session",
      "summary": "Watches da sessão (header x-radar-session).",
      "returns": "{ items[] }",
      "url": "https://www.radar-cnpj.com/api/me/monitor",
      "auth_detail": "Monitoramento anônimo: header `x-radar-session` (uuid de POST /api/monitor/session)."
    },
    {
      "method": "POST",
      "path": "/api/me/monitor",
      "auth": "session",
      "summary": "Adiciona watch de CNPJ na sessão.",
      "body": {
        "cnpj": "00000000000000"
      },
      "returns": "{ ok }",
      "url": "https://www.radar-cnpj.com/api/me/monitor",
      "auth_detail": "Monitoramento anônimo: header `x-radar-session` (uuid de POST /api/monitor/session)."
    },
    {
      "method": "DELETE",
      "path": "/api/me/monitor/:id",
      "auth": "session",
      "summary": "Remove watch.",
      "returns": "{ ok }",
      "url": "https://www.radar-cnpj.com/api/me/monitor/:id",
      "auth_detail": "Monitoramento anônimo: header `x-radar-session` (uuid de POST /api/monitor/session)."
    },
    {
      "method": "GET",
      "path": "/api/monitor/changes/:cnpj",
      "auth": "session",
      "summary": "Histórico de alterações cadastrais do CNPJ.",
      "returns": "{ changes[] }",
      "url": "https://www.radar-cnpj.com/api/monitor/changes/:cnpj",
      "auth_detail": "Monitoramento anônimo: header `x-radar-session` (uuid de POST /api/monitor/session)."
    }
  ],
  "mcp_tools": [
    "api_index",
    "health",
    "get_cnpj",
    "search",
    "suggest",
    "ref",
    "ia_filters",
    "local",
    "contact",
    "monitor_session",
    "list_watches",
    "add_watch"
  ],
  "quickstart": [
    "curl -s https://www.radar-cnpj.com/api/cnpj/14386974000160",
    "curl -s 'https://www.radar-cnpj.com/api/busca?q=padaria'",
    "curl -s -XPOST https://www.radar-cnpj.com/api/ia -H 'content-type: application/json' -d '{\"texto\":\"MEI em Curitiba\"}'"
  ]
}