{"openapi":"3.0.3","info":{"title":"API de Inteligência de IP CHA.LA","description":"## Início rápido\n\nUma API para inteligência de IP, propriedade de rede, roteamento e evidências de ameaças. Habilite o acesso à conta e comece com uma única solicitação.\n\n1. Criar uma conta: Registre-se, faça login no console da API e solicite acesso. Contas de e-mail atualmente precisam de aprovação manual; aprovação não é verificação de e-mail.\n2. Obter uma chave de API: Após a aprovação, crie uma chave ou receba uma chave vinculada à conta do administrador. O segredo completo é exibido apenas uma vez; armazene-o com segurança.\n3. Chame a partir do seu backend: Use X-API-Key ou Authorization: Bearer. Nunca coloque chaves em URLs, repositórios públicos ou código de frontend.\n\n[Console da API](https://www.cha.la/pt-BR/console)\n\n## Cota gratuita e períodos pagos\n\nContas gratuitas recebem 1.000 unidades por dia, reiniciando à meia-noite UTC. Todas as chaves e lotes do site compartilham o saldo; substituir ou revogar uma chave não redefine o uso.\n\n|Plano|Limite diário de segurança|Requisições/min/chave|Chaves ativas|Alvos/lote|\n|---|---:|---:|---:|---:|\n|Free|1,000|30|2|100|\n|Developer|10,000|120|5|500|\n|Pro|100,000|600|20|2,000|\n|Enterprise|1,000,000|3,000|100|5,000|\n\nOs períodos pagos são provisionados manualmente com um plano, franquia total explícita e validade. A franquia do período não é o limite diário multiplicado pelos dias. O checkout online e a renovação automática não estão habilitados. O vencimento retorna a conta ao plano Gratuito; os escopos das chaves existentes nunca se expandem automaticamente. Contratos legados de organizações e limites menores por chave também se aplicam.\n\n## Como o uso é contabilizado\n\nConsultas síncronas bem-sucedidas custam uma unidade; leituras de status/resultados de lotes, falhas, negações e requisições rejeitadas por limite de taxa custam zero.\n\nLotes: alvos deduplicados aceitos são cobrados uma vez; falhas posteriores de alvos não são reembolsadas. O Idempotency-Key é obrigatório; repetir a mesma requisição com o mesmo identificador não gera nova cobrança.\n\nO progresso de lotes e downloads no site não geram unidades adicionais. Para 429 / 503, respeite o Retry-After quando presente e use backoff exponencial.\n\n## Disponibilidade\n\nUse /api/public/v1 para integrações de clientes. /api/v1 é uma interface interna do site, não o contrato com o cliente. CORS externo de navegador não está habilitado; chame a partir do seu backend.\n\nFonte de IP reverso: não configurado; indisponível.\n\nDistribuição C2: não habilitada.\n\nO RPKI usa snapshots. Verifique observedAt, expiresAt, stale e riskStatus. Evidência desconhecida ou ausente não significa seguro. /api/capabilities é a fonte do status atual de capacidade.","version":"0.6.0"},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"},"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{}},"paths":{"/api/public/v1/batch/ip":{"post":{"operationId":"_batch_ip","summary":"Criar lote idempotente de IPs","tags":["Public API","Batch Intelligence"],"description":"Idempotency-Key é obrigatório. A mesma chave e lista de alvos normalizada retorna o trabalho original sem cobrar novamente; entrada alterada ou um trabalho expirado retorna 409. Alvos deduplicados aceitos são cobrados uma vez, incluindo alvos que falham posteriormente. Os trabalhos são retidos por 7 dias.\n\nPlano mínimo: free. Escopos exigidos: batch:write, ip:read. Autentique usando X-API-Key ou Authorization: Bearer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targets":{"type":"array","items":{"type":"string"},"description":"Array de IPs ou hostnames; o limite de alvos depende do seu plano."}},"required":["targets"]}}}},"parameters":[{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"in":"header","name":"Idempotency-Key","required":true,"description":"Identificador de lote exclusivo retido durante a vida útil da tarefa; reutilize-o ao repetir a mesma solicitação."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:write","ip:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","completed","completed_with_errors","failed"]},"inputCount":{"type":"integer"},"completedCount":{"type":"integer"},"successCount":{"type":"integer"},"errorCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"target":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Etiqueta de exibição; IP hospedado por ISP é um subtipo de hospedagem de propriedade do ISP, não uma garantia residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estável, ex.: isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Verifique isso antes de interpretar risco. not_observed/desconhecido não é um atestado de saúde."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"Inteligência de IP; campos de evidência adicionais podem ser adicionados de forma compatível.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"202":{"description":"Lote aceito; alvos cobrados atomicamente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","completed","completed_with_errors","failed"]},"inputCount":{"type":"integer"},"completedCount":{"type":"integer"},"successCount":{"type":"integer"},"errorCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"target":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Etiqueta de exibição; IP hospedado por ISP é um subtipo de hospedagem de propriedade do ISP, não uma garantia residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estável, ex.: isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Verifique isso antes de interpretar risco. not_observed/desconhecido não é um atestado de saúde."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"Inteligência de IP; campos de evidência adicionais podem ser adicionados de forma compatível.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Batch accepted; targets charged atomically."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"batch"}},"/api/public/v1/batch/jobs/{id}":{"get":{"operationId":"_batch_jobs__id","summary":"Status do lote","tags":["Public API","Batch Intelligence"],"description":"Somente o mesmo cliente API pode ler este trabalho. Leituras de status não consomem unidades de consulta; evite polling rápido.\n\nPlano mínimo: free. Escopos exigidos: batch:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:read"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"ID da tarefa em lote, acessível apenas ao mesmo cliente de API."}],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","completed","completed_with_errors","failed"]},"inputCount":{"type":"integer"},"completedCount":{"type":"integer"},"successCount":{"type":"integer"},"errorCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"target":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Etiqueta de exibição; IP hospedado por ISP é um subtipo de hospedagem de propriedade do ISP, não uma garantia residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estável, ex.: isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Verifique isso antes de interpretar risco. not_observed/desconhecido não é um atestado de saúde."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"Inteligência de IP; campos de evidência adicionais podem ser adicionados de forma compatível.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"batch"}},"/api/public/v1/batch/jobs/{id}/results":{"get":{"operationId":"_batch_jobs__id_results","summary":"Exportar resultados do lote","tags":["Public API","Batch Intelligence"],"description":"Somente o mesmo cliente API pode exportar este trabalho. Leituras de resultado não consomem unidades de consulta; JSON e CSV são suportados.\n\nPlano mínimo: free. Escopos exigidos: batch:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string","enum":["json","csv"],"default":"json"},"in":"query","name":"format","required":false,"description":"Formato de exportação."},{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"ID da tarefa em lote, acessível apenas ao mesmo cliente de API."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:read"],"responses":{"200":{"description":"Relatório JSON ou exportação CSV.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","completed","completed_with_errors","failed"]},"inputCount":{"type":"integer"},"completedCount":{"type":"integer"},"successCount":{"type":"integer"},"errorCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"target":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Etiqueta de exibição; IP hospedado por ISP é um subtipo de hospedagem de propriedade do ISP, não uma garantia residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estável, ex.: isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Verifique isso antes de interpretar risco. not_observed/desconhecido não é um atestado de saúde."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"Inteligência de IP; campos de evidência adicionais podem ser adicionados de forma compatível.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"batch"}},"/api/public/v1/asn/{asn}":{"get":{"operationId":"_asn__asn","summary":"Informações de ASN","tags":["Public API"],"description":"Redes grandes podem retornar instantâneos grandes. Armazene respostas em cache e verifique metadados de staleness e expiração.\n\nPlano mínimo: free. Escopos exigidos: asn:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["asn:read"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"asn","required":true,"description":"Número de sistema autônomo, ex.: AS13335."}],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"asn":{"type":"integer"},"name":{"type":"string"},"organization":{"type":"string"},"prefixes":{"type":"array","items":{"type":"object","properties":{"prefix":{"type":"string"},"ipVersion":{"type":"integer"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"cacheHit":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"bgp"}},"/api/public/v1/bgp/prefix":{"get":{"operationId":"_bgp_prefix","summary":"Prefixo BGP","tags":["Public API"],"description":"Retorna estatísticas de prefixo BGP e visibilidade para uma janela de tempo.\n\nPlano mínimo: developer. Escopos exigidos: bgp:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"prefix","required":true,"description":"CIDR IPv4 / IPv6, ex.: 1.1.1.0/24."},{"schema":{"type":"integer","minimum":1,"maximum":744,"default":168},"in":"query","name":"hours","required":false,"description":"Janela de retrospectiva em horas."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"prefix":{"type":"string"},"points":{"type":"array","items":{"type":"object","properties":{"windowStart":{"type":"string","format":"date-time","nullable":true},"prefix":{"type":"string"},"announcementCount":{"type":"integer"},"withdrawalCount":{"type":"integer"},"visibleCollectors":{"type":"integer"},"visiblePeers":{"type":"integer"},"originAsns":{"type":"array","items":{"type":"integer"}},"lastObserved":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"bgp"}},"/api/public/v1/bgp/history":{"get":{"operationId":"_bgp_history","summary":"Histórico BGP","tags":["Public API","BGP Intelligence"],"description":"Retorna eventos de rota observados. Observações ausentes não provam que não ocorreram mudanças.\n\nPlano mínimo: developer. Escopos exigidos: bgp:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"prefix","required":true,"description":"CIDR IPv4 / IPv6, ex.: 1.1.1.0/24."},{"schema":{"type":"integer","minimum":1,"maximum":744,"default":744},"in":"query","name":"hours","required":false,"description":"Janela de retrospectiva em horas."},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"in":"query","name":"limit","required":false,"description":"Tamanho da página ou número máximo de registros retornados."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"prefix":{"type":"string"},"observed":{"type":"boolean"},"windowHours":{"type":"integer"},"events":{"type":"array","items":{"type":"object","properties":{"eventType":{"type":"string"},"prefix":{"type":"string"},"originAsn":{"type":"integer"},"observedAt":{"type":"string","format":"date-time"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"bgp"}},"/api/public/v1/bgp/asn/{asn}/edges":{"get":{"operationId":"_bgp_asn__asn_edges","summary":"Adjacências de ASN","tags":["Public API"],"description":"Retorna ASNs vizinhos observados e relacionamentos.\n\nPlano mínimo: developer. Escopos exigidos: bgp:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":365,"default":31},"in":"query","name":"days","required":false,"description":"Janela de retrospectiva em dias."},{"schema":{"type":"string"},"in":"path","name":"asn","required":true,"description":"Número de sistema autônomo, ex.: AS13335."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"asn":{"type":"integer"},"edges":{"type":"array","items":{"type":"object","properties":{"neighbourAsn":{"type":"integer"},"relationship":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"bgp"}},"/api/public/v1/ip/{target}":{"get":{"operationId":"_ip__target","summary":"Informações de IP","tags":["Public API"],"description":"Retorna propriedade do IP, classificação de uso e evidências de risco. Verifique riskStatus e carimbos de data/hora das evidências; desconhecido não significa seguro.\n\nPlano mínimo: free. Escopos exigidos: ip:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 ou nome de host."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["ip:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Etiqueta de exibição; IP hospedado por ISP é um subtipo de hospedagem de propriedade do ISP, não uma garantia residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estável, ex.: isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Verifique isso antes de interpretar risco. not_observed/desconhecido não é um atestado de saúde."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"Inteligência de IP; campos de evidência adicionais podem ser adicionados de forma compatível."},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"ip"}},"/api/public/v1/ip/{target}/segment":{"get":{"operationId":"_ip__target_segment","summary":"Segmento IP","tags":["Public API"],"description":"Consulta o perfil do segmento de IP. Evidência em nível de prefixo não é uma observação direta do IP individual.\n\nPlano mínimo: developer. Escopos exigidos: history:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 ou nome de host."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["history:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"profile":{"type":"object","properties":{"prefix":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"ip"}},"/api/public/v1/ip/{target}/history":{"get":{"operationId":"_ip__target_history","summary":"Histórico de IP","tags":["Public API"],"description":"Retorna alterações coletadas de ASN, organização, localização e registro, não um histórico exaustivo.\n\nPlano mínimo: developer. Escopos exigidos: history:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 ou nome de host."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["history:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"asn":{"type":"array","items":{"type":"object","properties":{"asn":{"type":"integer"}},"additionalProperties":true}},"organization":{"type":"array","items":{"type":"object","properties":{"organization":{"type":"string"}},"additionalProperties":true}},"location":{"type":"array","items":{"type":"object","properties":{"location":{"type":"string"}},"additionalProperties":true}},"registration":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"ip"}},"/api/public/v1/privacy-network":{"get":{"operationId":"_privacy_network","summary":"Redes de privacidade","tags":["Public API","IP Intelligence"],"description":"Retorna evidências de rede de privacidade e atributos de rede, incluindo sinais de proxy, VPN e Tor. Verifique status, confiança e atualidade juntos.\n\nPlano mínimo: developer. Escopos exigidos: privacy:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"IPv4, IPv6 ou nome de host."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["privacy:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"normalizedTarget":{"type":"string"},"ipType":{"type":"string"},"privacy":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string"},"confidence":{"type":"number","nullable":true},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"network":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string"},"confidence":{"type":"number","nullable":true}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stale":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"ip"}},"/api/public/v1/threat/ip":{"get":{"operationId":"_threat_ip","summary":"Evidências de ameaças de IP","tags":["Public API","Threat Intelligence"],"description":"not_observed significa nenhuma evidência correspondente nas fontes cobertas, não uma garantia de que um IP é seguro.\n\nPlano mínimo: developer. Escopos exigidos: threat:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Endereço IPv4 ou IPv6."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"status":{"type":"string"},"riskScore":{"type":"number","nullable":true},"confidence":{"type":"number","nullable":true},"publicMatches":{"type":"array","items":{"type":"object","properties":{"sourceKey":{"type":"string"}},"additionalProperties":true}},"sources":{"type":"array","items":{"type":"object","properties":{"sourceKey":{"type":"string"},"fresh":{"type":"boolean"},"matched":{"type":"boolean"},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"threat"}},"/api/public/v1/threat/c2":{"get":{"operationId":"_threat_c2","summary":"Feed de C2","tags":["Public API","Threat Intelligence"],"description":"Requer acesso Pro+ e autorização de distribuição de produção habilitada. Implantações desabilitadas retornam 503 sem cobrar.\n\nPlano mínimo: pro. Escopos exigidos: c2:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string","enum":["all","online","offline","unknown"],"default":"all"},"in":"query","name":"status","required":false,"description":"Filtro de status online de C2."},{"schema":{"type":"string","maxLength":80},"in":"query","name":"malware","required":false,"description":"Filtro de família de malware."},{"schema":{"type":"string","pattern":"^[A-Za-z]{2}$"},"in":"query","name":"country","required":false,"description":"Código de país de duas letras, ex.: US."},{"schema":{"type":"string","maxLength":120},"in":"query","name":"q","required":false,"description":"Pesquisar por IP, ASN, nome de rede ou família de malware."},{"schema":{"type":"integer","minimum":1,"maximum":10000,"default":1},"in":"query","name":"page","required":false,"description":"Número da página, começando em 1."},{"schema":{"type":"integer","minimum":10,"maximum":100,"default":50},"in":"query","name":"limit","required":false,"description":"Tamanho da página ou número máximo de registros retornados."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["c2:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string"},"port":{"type":"integer"},"malware":{"type":"string"}},"additionalProperties":true}},"page":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"threat"}},"/api/public/v1/threat/activity":{"get":{"operationId":"_threat_activity","summary":"Atividade de ameaças","tags":["Public API","Threat Intelligence"],"description":"Retorna estatísticas de ameaças observadas por categoria de atividade e janela de tempo.\n\nPlano mínimo: pro. Escopos exigidos: threat:analytics. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string","enum":["scanner","brute_force","web_attack"]},"in":"query","name":"category","required":true,"description":"Categoria de ameaça: escaneamento, força bruta ou ataques web."},{"schema":{"type":"string","enum":["1d","7d","30d","90d"],"default":"90d"},"in":"query","name":"window","required":false,"description":"Janela de retrospectiva."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:analytics"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"category":{"type":"string"},"windowDays":{"type":"integer"},"status":{"type":"string"},"eventCount":{"type":"integer"},"topSources":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string"},"eventCount":{"type":"integer"}},"additionalProperties":true}},"timeline":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"eventCount":{"type":"integer"},"sourceCount":{"type":"integer"}},"additionalProperties":true}},"generatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"threat"}},"/api/public/v1/threat/trends":{"get":{"operationId":"_threat_trends","summary":"Tendências de ameaças","tags":["Public API","Threat Intelligence"],"description":"Retorna tendências de ameaças observadas dentro da janela de tempo selecionada.\n\nPlano mínimo: pro. Escopos exigidos: threat:analytics. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string","enum":["1d","7d","30d","90d"],"default":"90d"},"in":"query","name":"window","required":false,"description":"Janela de retrospectiva."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:analytics"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"windowDays":{"type":"integer"},"status":{"type":"string"},"eventCount":{"type":"integer"},"timeline":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"eventCount":{"type":"integer"},"sourceCount":{"type":"integer"}},"additionalProperties":true}},"categories":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"eventCount":{"type":"integer"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"threat"}},"/api/public/v1/tools/dns":{"get":{"operationId":"_tools_dns","summary":"Consulta DNS","tags":["Public API","Network Tools"],"description":"Consulta registros DNS do tipo selecionado, refletindo a resposta da consulta do servidor.\n\nPlano mínimo: free. Escopos exigidos: dns:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Nome de consulta DNS; use um nome de consulta reversa para registros PTR."},{"schema":{"type":"string","enum":["A","AAAA","CNAME","MX","NS","TXT","CAA","SOA","SRV","PTR"],"default":"A"},"in":"query","name":"type","required":false,"description":"Tipo de registro DNS."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["dns:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"queryType":{"type":"string"},"status":{"type":"string"},"records":{"type":"array","items":{}},"queriedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"tools"}},"/api/public/v1/tools/reverse-ip":{"get":{"operationId":"_tools_reverse_ip","summary":"Consulta reversa de IP","tags":["Public API","Network Tools"],"description":"Requer uma fonte de DNS passivo configurada pelo operador. Uma fonte ausente ou indisponível retorna 503, não um sucesso vazio fabricado.\n\nPlano mínimo: free. Escopos exigidos: dns:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Endereço IPv4 ou IPv6."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["dns:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"status":{"type":"string","enum":["resolved","no_records"]},"domains":{"type":"array","items":{"type":"string"}},"queriedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"tools"}},"/api/public/v1/tools/cname-chain":{"get":{"operationId":"_tools_cname_chain","summary":"Cadeia CNAME","tags":["Public API","Network Tools"],"description":"Consulta a cadeia de resolução CNAME para um domínio.\n\nPlano mínimo: free. Escopos exigidos: dns:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Nome de domínio, ex.: example.com."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["dns:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"queryType":{"type":"string"},"status":{"type":"string"},"records":{"type":"array","items":{}},"queriedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"tools"}},"/api/public/v1/tools/network-probe":{"post":{"operationId":"_tools_network_probe","summary":"Ping / MTR distribuído","tags":["Public API","Network Tools"],"description":"As medições originam-se de nós de sondagem distribuídos, não do IP do chamador. A capacidade do provedor pode ser compartilhada.\n\nPlano mínimo: pro. Escopos exigidos: probes:run. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","description":"IP público ou hostname."},"mode":{"type":"string","enum":["ping","mtr"],"description":"Modo de sondagem: ping ou mtr."}},"required":["target","mode"]}}}},"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["probes:run"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"mode":{"type":"string"},"status":{"type":"string"},"results":{"type":"array","items":{"type":"object","properties":{"node":{"type":"object","properties":{"country":{"type":"string"},"city":{"type":"string"}},"additionalProperties":true},"status":{"type":"string"},"stats":{"type":"object","properties":{"avgMs":{"type":"number","nullable":true},"lossPercent":{"type":"number"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}},"cached":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"tools"}},"/api/public/v1/tools/tcp":{"post":{"operationId":"_tools_tcp","summary":"Conectividade TCP","tags":["Public API","Network Tools"],"description":"Somente alvos públicos. Medido a partir do servidor CHA.LA, não da rede do chamador.\n\nPlano mínimo: pro. Escopos exigidos: probes:run. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","description":"IP público ou hostname."},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Porta TCP de destino."}},"required":["target","port"]}}}},"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["probes:run"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"port":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"status":{"type":"string"},"latencyMs":{"type":"number"}},"additionalProperties":true}},"cached":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"tools"}},"/api/public/v1/tools/http-tls":{"post":{"operationId":"_tools_http_tls","summary":"HTTP e TLS","tags":["Public API","Network Tools"],"description":"Somente alvos HTTP(S) públicos; destinos privados e redirecionamentos inseguros são rejeitados.\n\nPlano mínimo: pro. Escopos exigidos: probes:run. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","format":"uri","description":"URL HTTP(S) pública."}},"required":["target"]}}}},"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["probes:run"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"redirectCount":{"type":"integer"},"steps":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"statusCode":{"type":"integer","nullable":true},"errorCode":{"type":"string","nullable":true}},"additionalProperties":true}},"tls":{"type":"object","properties":{"authorized":{"type":"boolean"}},"additionalProperties":true,"nullable":true},"cached":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"tools"}},"/api/public/v1/bgp/routes":{"get":{"operationId":"_bgp_routes","summary":"Rotas BGP","tags":["Public API","BGP Intelligence"],"description":"Pesquisa rotas coletadas e caminhos AS com paginação.\n\nPlano mínimo: developer. Escopos exigidos: bgp:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Endereço IP, prefixo CIDR ou ASN."},{"schema":{"type":"integer","minimum":1,"default":1},"in":"query","name":"page","required":false,"description":"Número da página, começando em 1."},{"schema":{"type":"integer","minimum":10,"maximum":100,"default":50},"in":"query","name":"limit","required":false,"description":"Tamanho da página ou número máximo de registros retornados."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"normalizedTarget":{"type":"string"},"observed":{"type":"boolean"},"match":{"type":"object","properties":{"prefix":{"type":"string"},"originAsns":{"type":"array","items":{"type":"integer"}},"lastObserved":{"type":"string","format":"date-time"}},"additionalProperties":true,"nullable":true},"routes":{"type":"array","items":{"type":"object","properties":{"prefix":{"type":"string"},"originAsn":{"type":"integer"},"asPath":{"type":"string"},"observedAt":{"type":"string","format":"date-time"}},"additionalProperties":true}},"page":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"bgp"}},"/api/public/v1/rpki/validate":{"get":{"operationId":"_rpki_validate","summary":"Validação RPKI","tags":["Public API","BGP Intelligence"],"description":"A validação usa instantâneos. Verifique os sinalizadores de expiração e staleness para cada validação; evidência ausente não deve ser interpretada como válida.\n\nPlano mínimo: free. Escopos exigidos: registration:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Endereço IP ou prefixo CIDR."},{"schema":{"type":"string"},"in":"query","name":"asn","required":false,"description":"Número de sistema autônomo, ex.: AS13335."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["registration:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"prefix":{"type":"string","nullable":true},"requestedOrigin":{"type":"integer","nullable":true},"overallStatus":{"type":"string","enum":["valid","invalid","mixed","unknown","no_origin"]},"routeLookupAvailable":{"type":"boolean"},"validations":{"type":"array","items":{"type":"object","properties":{"prefix":{"type":"string"},"originAsn":{"type":"integer"},"status":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"cacheHit":{"type":"boolean"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"bgp"}},"/api/public/v1/rdap/lookup":{"get":{"operationId":"_rdap_lookup","summary":"Informações de registro RDAP","tags":["Public API","Network Intelligence"],"description":"Consulta informações de registro para um IP, CIDR ou ASN. Verifique carimbos de data/hora de cache e instantâneo.\n\nPlano mínimo: free. Escopos exigidos: registration:read. Autentique usando X-API-Key ou Authorization: Bearer. Requisições bem-sucedidas custam uma unidade; requisições falhas/rejeitadas custam zero. Reinício da cota em UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Endereço IP, prefixo CIDR ou ASN."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["registration:read"],"responses":{"200":{"description":"Resposta bem-sucedida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"normalizedTarget":{"type":"string"},"targetKind":{"type":"string"},"found":{"type":"boolean"},"rir":{"type":"string"},"name":{"type":"string","nullable":true},"cidrs":{"type":"array","items":{"type":"string"}},"nameservers":{"type":"array","items":{"type":"string"}},"entities":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string","nullable":true},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"cacheHit":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Parâmetros inválidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Chave de API ausente, inválida, expirada, revogada ou suspensa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Escopo ou plano insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Não encontrado ou não pertence a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflito de idempotência, tarefa expirada ou limite de tarefas ativas.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"O alvo não pode ser resolvido ou medido.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Limite de taxa ou cota atingido; solicitações rejeitadas não consomem unidades. Aguarde conforme Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Falha interna de processamento.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Falha na resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Serviço ou fonte de dados indisponível; nenhuma unidade cobrada. Faça backoff conforme Retry-After quando presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tempo limite da resposta do upstream.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diárias compartilhadas da conta após admissão; chamadas concorrentes podem alterar este instantâneo."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes em um período pago ativo, quando aplicável."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitações por chave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes após admissão; solicitações com falha são liberadas."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de repetir uma solicitação limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de erro estável legível por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"tools"}}},"servers":[{"url":"https://www.cha.la"}],"x-documentation":{"locale":"pt-BR","ui":{"explore":"Explore a inteligência de IP","noScript":"JavaScript está desativado. Use a documentação OpenAPI.","pageTitle":"Documentação da API de Inteligência de IP · CHA.LA","metaDescription":"Documentação da API CHA.LA para inteligência de IP, ASN, BGP, evidências de ameaças e ferramentas de rede. Explore autenticação, limites gratuitos, parâmetros e solicitações ao vivo.","docs":"Documentação da API","home":"Site","console":"Console da API","skip":"Pular para o conteúdo","menu":"Navegação","close":"Fechar navegação","language":"Escolher idioma","search":"Pesquisar endpoints ou caminhos…","navigation":"Navegação da documentação","overview":"Início rápido","reference":"Referência da API","noResults":"Nenhum endpoint correspondente","loading":"Carregando documentação…","loadError":"Não foi possível carregar a documentação. Recarregue e tente novamente.","retry":"Recarregar","notFound":"Endpoint não encontrado. Escolha um endpoint na navegação.","plan":"Plano mínimo","scopes":"Escopos necessários","parameters":"Parâmetros","noParameters":"Este endpoint não possui parâmetros de solicitação.","field":"Campo","type":"Tipo","description":"Descrição","required":"Obrigatório","optional":"Opcional","path":"Caminho","query":"Consulta","header":"Cabeçalho","default":"Padrão","minimum":"Mínimo","maximum":"Máximo","minLength":"Comprimento mín.","maxLength":"Comprimento máx.","pattern":"Padrão","requestBody":"Corpo da solicitação","responses":"Esquema de resposta","headers":"Cabeçalhos de resposta","errors":"Erros e novas tentativas","test":"Testar este endpoint","testNote":"Uma solicitação real é enviada apenas quando você seleciona Enviar e conta para seu limite. Sua chave permanece apenas na memória da página; recarregar a limpa.","key":"Chave da API","keyPlaceholder":"Cole sua chave da API","clearKey":"Limpar","auth":"Autenticação","send":"Enviar solicitação","sending":"Enviando…","cancel":"Parar de aguardar","response":"Resposta ao vivo","keyRequired":"Insira sua chave da API primeiro.","invalidJson":"O corpo da solicitação deve ser um objeto JSON válido.","invalidBody":"Um campo obrigatório do corpo está ausente ou o tipo/valor de um campo não corresponde ao esquema.","invalidPath":"Valores de caminho não podem conter barra ou barra invertida, nem ser iguais a . ou ..","failed":"Não foi possível ler a resposta. Verifique sua conexão. Repita um lote incerto com a mesma Idempotency-Key.","cancelled":"A espera foi interrompida. O servidor pode ainda estar processando e cobrará pelo trabalho aceito. Reutilize a mesma Idempotency-Key ao repetir um lote.","timeout":"Tempo limite de espera atingido; o resultado do servidor é desconhecido. Reutilize a mesma Idempotency-Key ao repetir um lote.","tooLarge":"A resposta excede 2 MB. A exibição foi interrompida; restrinja a consulta ou use seu backend.","example":"Exemplo de solicitação","exampleNote":"YOUR_API_KEY é um espaço reservado. Os exemplos nunca contêm a chave inserida.","copy":"Copiar","copied":"Copiado","copyError":"Falha ao copiar. Selecione e copie o texto manualmente.","download":"Baixar OpenAPI","json":"Especificação JSON","yaml":"Especificação YAML","raw":"Esquema completo","empty":"Resposta vazia","newId":"Novo ID de lote","idemNote":"Mantenha esse valor ao repetir o mesmo lote. Altere-o apenas para um novo trabalho, cobrado separadamente.","localError":"A validação local falhou; nenhuma solicitação foi enviada.","unavailable":"Disponibilidade","responseNote":"Estas são definições de campo, não resultados ao vivo. O servidor pode adicionar campos compatíveis.","responseHint":"Nenhuma solicitação enviada ainda.","apiVersion":"Versão da API"},"groups":{"ip":"IP e privacidade","bgp":"ASN e roteamento","threat":"Inteligência de ameaças","tools":"Ferramentas de rede","batch":"Consultas em lote"},"guide":{"title":"Inteligência de IP para sua aplicação","intro":"Uma API para inteligência de IP, propriedade de rede, roteamento e evidências de ameaças. Habilite o acesso à conta e comece com uma única solicitação.","steps":[{"title":"Criar uma conta","text":"Registre-se, faça login no console da API e solicite acesso. Contas de e-mail atualmente precisam de aprovação manual; aprovação não é verificação de e-mail."},{"title":"Obter uma chave de API","text":"Após a aprovação, crie uma chave ou receba uma chave vinculada à conta do administrador. O segredo completo é exibido apenas uma vez; armazene-o com segurança."},{"title":"Chame a partir do seu backend","text":"Use X-API-Key ou Authorization: Bearer. Nunca coloque chaves em URLs, repositórios públicos ou código de frontend."}],"allowanceTitle":"Cota gratuita e períodos pagos","allowance":"Contas gratuitas recebem 1.000 unidades por dia, reiniciando à meia-noite UTC. Todas as chaves e lotes do site compartilham o saldo; substituir ou revogar uma chave não redefine o uso.","planColumns":["Plano","Limite diário de segurança","Requisições/min/chave","Chaves ativas","Alvos/lote"],"plans":[["Free","1,000","30","2","100"],["Developer","10,000","120","5","500"],["Pro","100,000","600","20","2,000"],["Enterprise","1,000,000","3,000","100","5,000"]],"billing":"Os períodos pagos são provisionados manualmente com um plano, franquia total explícita e validade. A franquia do período não é o limite diário multiplicado pelos dias. O checkout online e a renovação automática não estão habilitados. O vencimento retorna a conta ao plano Gratuito; os escopos das chaves existentes nunca se expandem automaticamente. Contratos legados de organizações e limites menores por chave também se aplicam.","usageTitle":"Como o uso é contabilizado","usage":["Consultas síncronas bem-sucedidas custam uma unidade; leituras de status/resultados de lotes, falhas, negações e requisições rejeitadas por limite de taxa custam zero.","Lotes: alvos deduplicados aceitos são cobrados uma vez; falhas posteriores de alvos não são reembolsadas. O Idempotency-Key é obrigatório; repetir a mesma requisição com o mesmo identificador não gera nova cobrança.","O progresso de lotes e downloads no site não geram unidades adicionais. Para 429 / 503, respeite o Retry-After quando presente e use backoff exponencial."],"boundaries":["Use /api/public/v1 para integrações de clientes. /api/v1 é uma interface interna do site, não o contrato com o cliente. CORS externo de navegador não está habilitado; chame a partir do seu backend.","Fonte de IP reverso: não configurado; indisponível.","Distribuição C2: não habilitada.","O RPKI usa snapshots. Verifique observedAt, expiresAt, stale e riskStatus. Evidência desconhecida ou ausente não significa seguro. /api/capabilities é a fonte do status atual de capacidade."]}}}