{
  "name": "PontoFato",
  "description": "Encontre um endereço, veja empresas registradas no CEP e explore a vizinhança por distância, sem cadastro.",
  "url": "https://staging.pontofato.com",
  "provider": {
    "organization": "PontoFato",
    "url": "https://staging.pontofato.com",
    "email": "contato@pontofato.com"
  },
  "documentationUrl": "https://staging.pontofato.com/llms.txt",
  "protocol": "mcp",
  "protocolUrl": "https://modelcontextprotocol.io",
  "interfaces": [
    {
      "transport": "streamable-http",
      "url": "https://staging.pontofato.com/mcp"
    }
  ],
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "authentication": "none"
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/markdown"
  ],
  "skills": [
    {
      "id": "api_index",
      "name": "api_index",
      "description": "Índice auto-descrito: cada rota, o que cobra e como plugar o MCP.",
      "endpoint": "GET /api/"
    },
    {
      "id": "health",
      "name": "health",
      "description": "Disponibilidade do serviço e cobertura por UF.",
      "endpoint": "GET /api/health"
    },
    {
      "id": "cep",
      "name": "cep",
      "description": "Endereços de um CEP, com latitude e longitude.",
      "endpoint": "GET /api/cep/:cep"
    },
    {
      "id": "proximo",
      "name": "proximo",
      "description": "Endereço mais próximo de latitude e longitude. Ausente ou vazio NÃO vira zero. `(0,0)` é o golfo da Guiné e só entra se a pessoa mandou.",
      "endpoint": "GET /api/proximo"
    },
    {
      "id": "buscar",
      "name": "buscar",
      "description": "Busca textual de logradouro, com UF e cidade opcionais.",
      "endpoint": "GET /api/buscar"
    },
    {
      "id": "unidades",
      "name": "unidades",
      "description": "Unidades de um CEP (apartamento, loja), com complemento e tipo. Paginado. O lookup do CEP agrupa por logradouro+número. Esta rota devolve cada unidade (apartamento, loja). Sem `logradouro`/`numero`, pagina o CEP inteiro.",
      "endpoint": "GET /api/cep/:cep/unidades"
    },
    {
      "id": "empresas",
      "name": "empresas",
      "description": "Empresas registradas neste CEP, até 50 por página.",
      "endpoint": "GET /api/empresas"
    },
    {
      "id": "raio",
      "name": "raio",
      "description": "CEPs a N metros de um ponto (cep ou lat/lon), com distância e endereços. Grátis.",
      "endpoint": "GET /api/raio"
    },
    {
      "id": "vizinhanca",
      "name": "vizinhanca",
      "description": "Empresas ativas, abertas e baixadas num raio em metros, por CNAE, com aberturas recentes e distância. Consulte quota.free_now no índice: vizinhanca indica cobrança desativada. Com cobrança ativa: franquia diária e tarifa própria. Consulte quota.free_now no índice: quando inclui vizinhanca ou *, a operação não cobra nem exige crédito. Com cobrança ativa, a franquia diária vem antes da tarifa por consulta.",
      "endpoint": "GET /api/vizinhanca"
    },
    {
      "id": "contact",
      "name": "contact",
      "description": "Fale com quem faz o produto: dúvida, ou proposta de patrocínio/parceria/anúncio. Grátis, sem captcha nem pagamento; uma mensagem a cada 10 s por rede (a que chega antes espera a vez). Uma rota para dúvida e para proposta de patrocínio, parceria ou anúncio (`tipo`, com os espaços de `GET /api/partners`). Sem captcha, sem conta, sem pagamento. Uma mensagem a cada 10 segundos por rede: a que chega antes espera a vez e sai — sem erro. A mensagem chega à equipe por e-mail, com o `email` como endereço de resposta.",
      "endpoint": "POST /api/contact"
    },
    {
      "id": "api_access",
      "name": "api_access",
      "description": "Monthly data package and private purchase status, without charging.",
      "endpoint": "GET /api/acesso"
    },
    {
      "id": "api_access_buy",
      "name": "api_access_buy",
      "description": "Buy 1,000 basic data reads for US$1, valid for 30 days. Requires explicit payment. Same pass in retries recovers the same purchase. No automatic renewal. OCR, AI, documents and delivery keep their own tariffs. Send X-API-Pass on eligible data reads; remaining credits come in X-API-Credits-Remaining.",
      "endpoint": "POST /api/acesso"
    },
    {
      "id": "pricing",
      "name": "pricing",
      "description": "Current public prices and free allowances; no charge.",
      "endpoint": "GET /api/pricing"
    },
    {
      "id": "billing",
      "name": "billing",
      "description": "Payment discovery and billing summary; does not create a charge.",
      "endpoint": "GET /api/billing"
    }
  ],
  "discovery": {
    "openapi": "https://staging.pontofato.com/openapi.json",
    "llms": "https://staging.pontofato.com/llms.txt",
    "okf": "https://staging.pontofato.com/okf/index.md",
    "numbers": "https://staging.pontofato.com/api/vitrine",
    "partnerships": "https://staging.pontofato.com/api/partners",
    "api_catalog": "https://staging.pontofato.com/.well-known/api-catalog",
    "x402": "https://staging.pontofato.com/.well-known/x402",
    "pricing": "https://staging.pontofato.com/pricing",
    "docs": "https://staging.pontofato.com/docs"
  },
  "updated": "2026-09-23"
}