{
  "service": "Torêva Public Discovery API",
  "version": "v1",
  "status": "stable",
  "description": "Endpoints públicos de descoberta do toreva.com.br. Somente leitura, sem autenticação, sem cadastro. Toda resposta, inclusive erro, é JSON.",
  "base_url": "https://toreva.com.br/api/v1",
  "auth": {
    "required": false,
    "scheme": "none",
    "description": "Nenhum endpoint desta versão exige credencial. Dados de conta ficam em https://app.toreva.com.br e exigem sessão do usuário.",
    "documentation": "https://toreva.com.br/auth.md"
  },
  "documentation": {
    "portal": "https://toreva.com.br/developers",
    "portal_markdown": "https://toreva.com.br/developers.md",
    "reference": "https://toreva.com.br/docs/api.md",
    "openapi": "https://toreva.com.br/.well-known/openapi.json",
    "versioning": "https://toreva.com.br/docs/versioning.md",
    "agent_instructions": "https://toreva.com.br/agent-instructions.md",
    "auth": "https://toreva.com.br/auth.md"
  },
  "versioning": {
    "strategy": "url-path",
    "current": "v1",
    "path_prefix": "/api/v1",
    "unversioned_alias": "/api",
    "response_header": "API-Version",
    "deprecation_headers": [
      "Deprecation",
      "Sunset",
      "Link; rel=\"deprecation\""
    ],
    "minimum_notice_days": 180,
    "policy": "https://toreva.com.br/docs/versioning.md"
  },
  "rate_limit": {
    "limit": 120,
    "window_seconds": 60,
    "window_type": "sliding",
    "scope": "ip",
    "policy_name": "public-api",
    "response_headers": [
      "RateLimit",
      "RateLimit-Limit",
      "RateLimit-Remaining",
      "RateLimit-Reset",
      "RateLimit-Policy"
    ],
    "exceeded_status": 429,
    "exceeded_headers": [
      "Retry-After"
    ],
    "remaining_is_exact": true,
    "reset_is_countdown": true,
    "documentation": "https://toreva.com.br/developers#limites"
  },
  "onboarding": {
    "zero_auth_access": true,
    "zero_auth_endpoints": [
      "https://toreva.com.br/api/v1",
      "https://toreva.com.br/api/v1/status",
      "https://toreva.com.br/.well-known/openapi.json",
      "https://toreva.com.br/consulta-cnpj/"
    ],
    "sandbox": {
      "available": true,
      "type": "production-read-only",
      "base_url": "https://toreva.com.br/api/v1",
      "description": "Os endpoints públicos são o ambiente de testes: somente leitura, sem efeito colateral, sem gravação e sem credencial. Aponte sua suíte para eles.",
      "credentials_required": false
    },
    "free_trial": {
      "available": true,
      "url": "https://app.toreva.com.br/criar-conta",
      "credit_card_required": false,
      "description": "Teste da plataforma sem cartão de crédito, com amostra de 10 leads."
    },
    "self_serve_api_key": {
      "available": false,
      "description": "Não há emissão automática de chave pelo painel. Acesso a dados de conta é liberado caso a caso.",
      "request_via": "contato@toreva.com.br"
    }
  },
  "endpoints": [
    {
      "method": "GET",
      "path": "/api/v1",
      "operation_id": "getApiV1Index",
      "description": "Este índice: endpoints, política de versão, limite de taxa e formato de erro.",
      "auth": "none"
    },
    {
      "method": "GET",
      "path": "/api/v1/status",
      "operation_id": "getApiV1Status",
      "description": "Estado do serviço público de descoberta, componente a componente.",
      "auth": "none"
    },
    {
      "method": "GET",
      "path": "/api/site/*",
      "operation_id": "proxyAccountApi",
      "description": "Proxy da conta da Consulta CNPJ, autenticado por cookie de sessão. Uso interno do próprio site.",
      "auth": "session-cookie"
    }
  ],
  "discovery": {
    "api_catalog": "https://toreva.com.br/.well-known/api-catalog",
    "agent_skills": "https://toreva.com.br/.well-known/agent-skills/index.json",
    "mcp_server_card": "https://toreva.com.br/.well-known/mcp/server-card.json",
    "mcp_endpoint": "https://toreva.com.br/.well-known/mcp",
    "llms_txt": "https://toreva.com.br/llms.txt",
    "agent_instructions": "https://toreva.com.br/agent-instructions.md"
  },
  "errors": {
    "media_type": "application/json",
    "format": "Todo erro traz o objeto \"error\" com code, status, message, hint e documentation. Ramifique por code, não por message.",
    "codes": [
      "not_found",
      "method_not_allowed",
      "rate_limited",
      "upstream_unavailable",
      "endpoint_sunset"
    ],
    "example": {
      "error": {
        "code": "not_found",
        "status": 404,
        "message": "Endpoint não encontrado.",
        "hint": "Consulte https://toreva.com.br/api/v1 para a lista de endpoints públicos.",
        "documentation": "https://toreva.com.br/developers"
      }
    }
  },
  "contact": {
    "email": "contato@toreva.com.br",
    "telephone": "+5562981117700",
    "url": "https://toreva.com.br/contato"
  }
}
