{"openapi":"3.0.3","info":{"title":"API de Inteligencia de IP de CHA.LA","description":"## Inicio rápido\n\nUna API para inteligencia de IP, propiedad de red, enrutamiento y evidencia de amenazas. Habilita el acceso a la cuenta y comienza con una sola solicitud.\n\n1. Crear una cuenta: Regístrate, inicia sesión en la consola de API y solicita acceso. Las cuentas de correo electrónico actualmente necesitan aprobación manual; la aprobación no es verificación de correo electrónico.\n2. Obtener una clave de API: Después de la aprobación, crea una clave o recibe una clave vinculada a la cuenta del administrador. El secreto completo se muestra solo una vez; guárdalo de forma segura.\n3. Llamar desde tu backend: Usa X-API-Key o Authorization: Bearer. Nunca coloques claves en URLs, repositorios públicos o código del frontend.\n\n[Consola de la API](https://www.cha.la/es/console)\n\n## Asignación gratuita y períodos de pago\n\nLas cuentas gratuitas reciben 1,000 unidades por día, reiniciándose a medianoche UTC. Todas las claves y lotes del sitio web comparten el saldo; reemplazar o revocar una clave no restablece el uso.\n\n|Plan|Límite de seguridad diario|Solicitudes/min/clave|Claves activas|Destinos/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\nLos periodos de pago se aprovisionan manualmente con un plan, asignación total explícita y caducidad. La asignación del periodo no es el límite diario multiplicado por los días. El pago en línea y la renovación automática no están habilitados. Al caducar, la cuenta vuelve a Gratis; los alcances de las claves existentes nunca se amplían automáticamente. También se aplican contratos heredados de organización y límites por clave más bajos.\n\n## Cómo se cuenta el uso\n\nLas búsquedas síncronas exitosas cuestan una unidad; las lecturas de estado/resultados por lotes, los fallos, las denegaciones y las solicitudes rechazadas por límite de velocidad cuestan cero.\n\nLotes: los destinos deduplicados aceptados se cobran una vez; los fallos posteriores de destinos no se reembolsan. Se requiere Idempotency-Key; repetir la misma solicitud con el mismo identificador no vuelve a cobrar.\n\nEl progreso de lotes en el sitio web y las descargas no incurren en unidades adicionales. Para 429/503, respete Retry-After cuando esté presente y utilice retroceso exponencial.\n\n## Disponibilidad\n\nUtilice /api/public/v1 para integraciones de clientes. /api/v1 es una interfaz interna del sitio web, no el contrato del cliente. CORS de navegador externo no está habilitado; llame desde su backend.\n\nFuente de IP inversa: no configurada; no disponible.\n\nDistribución C2: no habilitada.\n\nRPKI utiliza instantáneas. Verifique observedAt, expiresAt, stale y riskStatus. Evidencia desconocida o faltante no significa seguro. /api/capabilities es la fuente del estado de capacidad actual.","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":"Crear un lote idempotente de IP","tags":["Public API","Batch Intelligence"],"description":"Se requiere clave de idempotencia. La misma clave y lista de objetivos normalizada devuelve el trabajo original sin cobrar de nuevo; una entrada modificada o un trabajo caducado devuelve 409. Los objetivos deduplicados aceptados se cobran una vez, incluidos los objetivos que luego fallan. Los trabajos se conservan durante 7 días.\n\nPlan mínimo: free. Alcances requeridos: batch:write, ip:read. Autentíquese usando X-API-Key o Authorization: Bearer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targets":{"type":"array","items":{"type":"string"},"description":"Matriz de IPs o nombres de host; el límite de destinos depende de su plan."}},"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 único conservado durante la vida útil del trabajo; reutilícelo al reintentar la misma solicitud."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:write","ip:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 visualización; IP alojada por ISP es un subtipo de alojamiento propiedad del ISP, no una garantía residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estable, p. ej., 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":"Comprueba esto antes de interpretar el riesgo. not_observed/unknown no es un certificado de buena salud."},"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":"Inteligencia de IP; se pueden añadir campos de evidencia adicionales de forma compatible.","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 aceptado; los objetivos se cobran de forma atómica.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 visualización; IP alojada por ISP es un subtipo de alojamiento propiedad del ISP, no una garantía residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estable, p. ej., 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":"Comprueba esto antes de interpretar el riesgo. not_observed/unknown no es un certificado de buena salud."},"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":"Inteligencia de IP; se pueden añadir campos de evidencia adicionales de forma compatible.","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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Estado del lote","tags":["Public API","Batch Intelligence"],"description":"Solo el mismo cliente API puede leer este trabajo. Las lecturas de estado no consumen unidades de consulta; evita el sondeo rápido.\n\nPlan mínimo: free. Alcances requeridos: batch:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:read"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"ID de trabajo por lotes, accesible solo para el mismo cliente de API."}],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 visualización; IP alojada por ISP es un subtipo de alojamiento propiedad del ISP, no una garantía residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estable, p. ej., 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":"Comprueba esto antes de interpretar el riesgo. not_observed/unknown no es un certificado de buena salud."},"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":"Inteligencia de IP; se pueden añadir campos de evidencia adicionales de forma compatible.","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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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 del lote","tags":["Public API","Batch Intelligence"],"description":"Solo el mismo cliente API puede exportar este trabajo. Las lecturas de resultados no consumen unidades de consulta; se admiten JSON y CSV.\n\nPlan mínimo: free. Alcances requeridos: batch:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string","enum":["json","csv"],"default":"json"},"in":"query","name":"format","required":false,"description":"Formato de exportación."},{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"ID de trabajo por lotes, accesible solo para el mismo cliente de API."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:read"],"responses":{"200":{"description":"Informe JSON o exportación CSV.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 visualización; IP alojada por ISP es un subtipo de alojamiento propiedad del ISP, no una garantía residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estable, p. ej., 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":"Comprueba esto antes de interpretar el riesgo. not_observed/unknown no es un certificado de buena salud."},"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":"Inteligencia de IP; se pueden añadir campos de evidencia adicionales de forma compatible.","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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Información de ASN","tags":["Public API"],"description":"Las redes grandes pueden devolver instantáneas grandes. Almacena en caché las respuestas y comprueba los metadatos de obsolescencia y caducidad.\n\nPlan mínimo: free. Alcances requeridos: asn:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota 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, p. ej., AS13335."}],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Prefijo BGP","tags":["Public API"],"description":"Devuelve estadísticas y visibilidad de prefijos BGP para una ventana de tiempo.\n\nPlan mínimo: developer. Alcances requeridos: bgp:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"prefix","required":true,"description":"CIDR IPv4 / IPv6, p. ej., 1.1.1.0/24."},{"schema":{"type":"integer","minimum":1,"maximum":744,"default":168},"in":"query","name":"hours","required":false,"description":"Ventana de retrospectiva en horas."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Historial BGP","tags":["Public API","BGP Intelligence"],"description":"Devuelve los eventos de ruta observados. La falta de observaciones no demuestra que no haya ocurrido ningún cambio.\n\nPlan mínimo: developer. Alcances requeridos: bgp:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"prefix","required":true,"description":"CIDR IPv4 / IPv6, p. ej., 1.1.1.0/24."},{"schema":{"type":"integer","minimum":1,"maximum":744,"default":744},"in":"query","name":"hours","required":false,"description":"Ventana de retrospectiva en horas."},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"in":"query","name":"limit","required":false,"description":"Tamaño de página o número máximo de registros devueltos."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Adyacencias de ASN","tags":["Public API"],"description":"Devuelve los ASN vecinos observados y sus relaciones.\n\nPlan mínimo: developer. Alcances requeridos: bgp:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":365,"default":31},"in":"query","name":"days","required":false,"description":"Ventana de retrospectiva en días."},{"schema":{"type":"string"},"in":"path","name":"asn","required":true,"description":"Número de sistema autónomo, p. ej., AS13335."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Información de IP","tags":["Public API"],"description":"Devuelve la titularidad de la IP, la clasificación de uso y la evidencia de riesgo. Comprueba el estado de riesgo y las marcas de tiempo de la evidencia; desconocido no significa seguro.\n\nPlan mínimo: free. Alcances requeridos: ip:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 o nombre de host."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["ip:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 visualización; IP alojada por ISP es un subtipo de alojamiento propiedad del ISP, no una garantía residencial/estática."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Código de uso estable, p. ej., 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":"Comprueba esto antes de interpretar el riesgo. not_observed/unknown no es un certificado de buena salud."},"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":"Inteligencia de IP; se pueden añadir campos de evidencia adicionales de forma compatible."},"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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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 el perfil del segmento de IP. La evidencia a nivel de prefijo no es una observación directa de la IP individual.\n\nPlan mínimo: developer. Alcances requeridos: history:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 o nombre de host."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["history:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Historial de IP","tags":["Public API"],"description":"Devuelve los cambios recopilados de ASN, organización, ubicación y registro, no un historial exhaustivo.\n\nPlan mínimo: developer. Alcances requeridos: history:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 o nombre de host."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["history:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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 privacidad","tags":["Public API","IP Intelligence"],"description":"Devuelve evidencia de red de privacidad y atributos de red, incluidas señales de proxy, VPN y Tor. Comprueba el estado, la confianza y la frescura en conjunto.\n\nPlan mínimo: developer. Alcances requeridos: privacy:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"IPv4, IPv6 o nombre de host."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["privacy:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Evidencias de amenazas de IP","tags":["Public API","Threat Intelligence"],"description":"not_observed significa que no hay evidencia coincidente en las fuentes cubiertas, no una garantía de que una IP sea segura.\n\nPlan mínimo: developer. Alcances requeridos: threat:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Dirección IPv4 o IPv6."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Fuente de datos C2","tags":["Public API","Threat Intelligence"],"description":"Requiere acceso Pro+ y autorización de distribución de producción habilitada. Las implementaciones deshabilitadas devuelven 503 sin cobrar.\n\nPlan mínimo: pro. Alcances requeridos: c2:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string","enum":["all","online","offline","unknown"],"default":"all"},"in":"query","name":"status","required":false,"description":"Filtro de estado en línea de C2."},{"schema":{"type":"string","maxLength":80},"in":"query","name":"malware","required":false,"description":"Filtro de familia de malware."},{"schema":{"type":"string","pattern":"^[A-Za-z]{2}$"},"in":"query","name":"country","required":false,"description":"Código de país de dos letras, p. ej., US."},{"schema":{"type":"string","maxLength":120},"in":"query","name":"q","required":false,"description":"Buscar por IP, ASN, nombre de red o familia de malware."},{"schema":{"type":"integer","minimum":1,"maximum":10000,"default":1},"in":"query","name":"page","required":false,"description":"Número de página, comenzando en 1."},{"schema":{"type":"integer","minimum":10,"maximum":100,"default":50},"in":"query","name":"limit","required":false,"description":"Tamaño de página o número máximo de registros devueltos."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["c2:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Actividad de amenazas","tags":["Public API","Threat Intelligence"],"description":"Devuelve estadísticas de amenazas observadas por categoría de actividad y ventana de tiempo.\n\nPlan mínimo: pro. Alcances requeridos: threat:analytics. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string","enum":["scanner","brute_force","web_attack"]},"in":"query","name":"category","required":true,"description":"Categoría de amenaza: escaneo, fuerza bruta o ataques web."},{"schema":{"type":"string","enum":["1d","7d","30d","90d"],"default":"90d"},"in":"query","name":"window","required":false,"description":"Ventana de retrospectiva."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:analytics"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Tendencias de amenazas","tags":["Public API","Threat Intelligence"],"description":"Devuelve las tendencias de amenazas observadas dentro de la ventana de tiempo seleccionada.\n\nPlan mínimo: pro. Alcances requeridos: threat:analytics. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string","enum":["1d","7d","30d","90d"],"default":"90d"},"in":"query","name":"window","required":false,"description":"Ventana de retrospectiva."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:analytics"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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 los registros DNS del tipo seleccionado, reflejando la respuesta de la consulta del lado del servidor.\n\nPlan mínimo: free. Alcances requeridos: dns:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Nombre de consulta DNS; use un nombre de búsqueda inversa 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":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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 inversa de IP","tags":["Public API","Network Tools"],"description":"Requiere una fuente DNS pasiva configurada por el operador. Si falta o no está disponible la fuente, devuelve 503, no un éxito vacío fabricado.\n\nPlan mínimo: free. Alcances requeridos: dns:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Dirección IPv4 o IPv6."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["dns:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Cadena CNAME","tags":["Public API","Network Tools"],"description":"Consulta la cadena de resolución CNAME de un dominio.\n\nPlan mínimo: free. Alcances requeridos: dns:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Nombre de dominio, p. ej., example.com."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["dns:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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 distribuido","tags":["Public API","Network Tools"],"description":"Las mediciones se originan en nodos de sondeo distribuidos, no en la IP del llamador. La capacidad del proveedor puede ser compartida.\n\nPlan mínimo: pro. Alcances requeridos: probes:run. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","description":"IP pública o nombre de host."},"mode":{"type":"string","enum":["ping","mtr"],"description":"Modo de sonda: ping o mtr."}},"required":["target","mode"]}}}},"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["probes:run"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Conectividad TCP","tags":["Public API","Network Tools"],"description":"Solo objetivos públicos. Medido desde el servidor CHA.LA, no desde la red del llamador.\n\nPlan mínimo: pro. Alcances requeridos: probes:run. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","description":"IP pública o nombre de host."},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Puerto TCP de destino."}},"required":["target","port"]}}}},"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["probes:run"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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 y TLS","tags":["Public API","Network Tools"],"description":"Solo objetivos HTTP(S) públicos; se rechazan destinos privados y redirecciones inseguras.\n\nPlan mínimo: pro. Alcances requeridos: probes:run. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota 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":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Rutas BGP","tags":["Public API","BGP Intelligence"],"description":"Busca rutas y rutas AS recopiladas con paginación.\n\nPlan mínimo: developer. Alcances requeridos: bgp:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Dirección IP, prefijo CIDR o ASN."},{"schema":{"type":"integer","minimum":1,"default":1},"in":"query","name":"page","required":false,"description":"Número de página, comenzando en 1."},{"schema":{"type":"integer","minimum":10,"maximum":100,"default":50},"in":"query","name":"limit","required":false,"description":"Tamaño de página o número máximo de registros devueltos."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Validación RPKI","tags":["Public API","BGP Intelligence"],"description":"La validación utiliza instantáneas. Comprueba las banderas de caducidad y obsolescencia para cada validación; la evidencia faltante no debe interpretarse como válida.\n\nPlan mínimo: free. Alcances requeridos: registration:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Dirección IP o prefijo CIDR."},{"schema":{"type":"string"},"in":"query","name":"asn","required":false,"description":"Número de sistema autónomo, p. ej., AS13335."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["registration:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"Información de registro RDAP","tags":["Public API","Network Intelligence"],"description":"Consulta la información de registro de una IP, CIDR o ASN. Comprueba las marcas de tiempo de caché e instantánea.\n\nPlan mínimo: free. Alcances requeridos: registration:read. Autentíquese usando X-API-Key o Authorization: Bearer. Las solicitudes exitosas cuestan una unidad; las solicitudes fallidas/rechazadas cuestan cero. Restablecimiento de cuota UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Dirección IP, prefijo CIDR o ASN."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["registration:read"],"responses":{"200":{"description":"Respuesta exitosa.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud 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 no válidos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Clave de API ausente, no válida, vencida, revocada o suspendida.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Alcance o plan insuficiente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"No encontrado o no pertenece a este cliente de API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Conflicto de idempotencia, trabajo vencido o límite de trabajos activos.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"El objetivo no se puede resolver o medir.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Límite de tasa o cuota alcanzado; las solicitudes rechazadas no consumen unidades. Espere según Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Error de procesamiento interno.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Error de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Servicio o fuente de datos no disponible; no se cobran unidades. Retroceda según Retry-After cuando esté presente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible por máquina."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Tiempo de espera de respuesta del servicio ascendente.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades diarias compartidas de la cuenta después de la admisión; las llamadas concurrentes pueden cambiar esta instantánea."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes en un período de pago activo, cuando corresponda."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Solicitudes por clave por minuto UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Unidades restantes después de la admisión; las solicitudes fallidas se liberan."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos antes de reintentar una solicitud limitada."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Código de error estable legible 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":"es","ui":{"explore":"Explora la inteligencia de IP","noScript":"JavaScript está desactivado. Usa la documentación de OpenAPI.","pageTitle":"Documentación de la API de Inteligencia de IP · CHA.LA","metaDescription":"Documentación de la API de CHA.LA para inteligencia de IP, ASN, BGP, evidencia de amenazas y herramientas de red. Explora autenticación, límites gratuitos, parámetros y solicitudes en vivo.","docs":"Docs de la API","home":"Sitio web","console":"Consola de la API","skip":"Saltar al contenido","menu":"Navegación","close":"Cerrar navegación","language":"Elegir idioma","search":"Buscar endpoints o rutas…","navigation":"Navegación de la documentación","overview":"Inicio rápido","reference":"Referencia de la API","noResults":"No hay endpoints coincidentes","loading":"Cargando documentación…","loadError":"No se pudo cargar la documentación. Recarga la página e inténtalo de nuevo.","retry":"Recargar","notFound":"Endpoint no encontrado. Elige un endpoint de la navegación.","plan":"Plan mínimo","scopes":"Ámbitos requeridos","parameters":"Parámetros","noParameters":"Este endpoint no tiene parámetros de solicitud.","field":"Campo","type":"Tipo","description":"Descripción","required":"Obligatorio","optional":"Opcional","path":"Ruta","query":"Consulta","header":"Encabezado","default":"Predeterminado","minimum":"Mínimo","maximum":"Máximo","minLength":"Longitud mín.","maxLength":"Longitud máx.","pattern":"Patrón","requestBody":"Cuerpo de la solicitud","responses":"Esquema de respuesta","headers":"Encabezados de respuesta","errors":"Errores y reintentos","test":"Probar este endpoint","testNote":"Se envía una solicitud real solo cuando seleccionas Enviar y cuenta contra tu límite. Tu clave permanece solo en la memoria de la página; recargar la borra.","key":"Clave de API","keyPlaceholder":"Pega tu clave de API","clearKey":"Borrar","auth":"Autenticación","send":"Enviar solicitud","sending":"Enviando…","cancel":"Dejar de esperar","response":"Respuesta en vivo","keyRequired":"Ingresa primero tu clave de API.","invalidJson":"El cuerpo de la solicitud debe ser un objeto JSON válido.","invalidBody":"Falta un campo obligatorio del cuerpo, o el tipo/valor de un campo no coincide con el esquema.","invalidPath":"Los valores de ruta no pueden contener una barra diagonal o invertida, ni ser iguales a . o ..","failed":"No se pudo leer la respuesta. Comprueba tu conexión. Reintenta un lote incierto con la misma clave de idempotencia.","cancelled":"Se dejó de esperar. El servidor puede seguir procesando y cobrando el trabajo aceptado. Reutiliza la misma clave de idempotencia al reintentar un lote.","timeout":"Se agotó el tiempo de espera; el resultado del servidor es desconocido. Reutiliza la misma clave de idempotencia al reintentar un lote.","tooLarge":"La respuesta supera los 2 MB. Se detuvo la visualización; reduce la consulta o usa tu backend.","example":"Ejemplo de solicitud","exampleNote":"YOUR_API_KEY es un marcador de posición. Los ejemplos nunca contienen tu clave introducida.","copy":"Copiar","copied":"Copiado","copyError":"Error al copiar. Selecciona y copia el texto manualmente.","download":"Descargar OpenAPI","json":"Especificación JSON","yaml":"Especificación YAML","raw":"Esquema completo","empty":"Respuesta vacía","newId":"Nuevo ID de lote","idemNote":"Mantén este valor al reintentar el mismo lote. Cámbialo solo para un trabajo nuevo que se cobre por separado.","localError":"La validación local falló; no se envió ninguna solicitud.","unavailable":"Disponibilidad","responseNote":"Estas son definiciones de campos, no resultados en vivo. El servidor puede añadir campos compatibles.","responseHint":"Aún no se ha enviado ninguna solicitud.","apiVersion":"Versión de la API"},"groups":{"ip":"IP y privacidad","bgp":"ASN y enrutamiento","threat":"Inteligencia de amenazas","tools":"Herramientas de red","batch":"Consultas por lotes"},"guide":{"title":"Inteligencia de IP para tu aplicación","intro":"Una API para inteligencia de IP, propiedad de red, enrutamiento y evidencia de amenazas. Habilita el acceso a la cuenta y comienza con una sola solicitud.","steps":[{"title":"Crear una cuenta","text":"Regístrate, inicia sesión en la consola de API y solicita acceso. Las cuentas de correo electrónico actualmente necesitan aprobación manual; la aprobación no es verificación de correo electrónico."},{"title":"Obtener una clave de API","text":"Después de la aprobación, crea una clave o recibe una clave vinculada a la cuenta del administrador. El secreto completo se muestra solo una vez; guárdalo de forma segura."},{"title":"Llamar desde tu backend","text":"Usa X-API-Key o Authorization: Bearer. Nunca coloques claves en URLs, repositorios públicos o código del frontend."}],"allowanceTitle":"Asignación gratuita y períodos de pago","allowance":"Las cuentas gratuitas reciben 1,000 unidades por día, reiniciándose a medianoche UTC. Todas las claves y lotes del sitio web comparten el saldo; reemplazar o revocar una clave no restablece el uso.","planColumns":["Plan","Límite de seguridad diario","Solicitudes/min/clave","Claves activas","Destinos/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":"Los periodos de pago se aprovisionan manualmente con un plan, asignación total explícita y caducidad. La asignación del periodo no es el límite diario multiplicado por los días. El pago en línea y la renovación automática no están habilitados. Al caducar, la cuenta vuelve a Gratis; los alcances de las claves existentes nunca se amplían automáticamente. También se aplican contratos heredados de organización y límites por clave más bajos.","usageTitle":"Cómo se cuenta el uso","usage":["Las búsquedas síncronas exitosas cuestan una unidad; las lecturas de estado/resultados por lotes, los fallos, las denegaciones y las solicitudes rechazadas por límite de velocidad cuestan cero.","Lotes: los destinos deduplicados aceptados se cobran una vez; los fallos posteriores de destinos no se reembolsan. Se requiere Idempotency-Key; repetir la misma solicitud con el mismo identificador no vuelve a cobrar.","El progreso de lotes en el sitio web y las descargas no incurren en unidades adicionales. Para 429/503, respete Retry-After cuando esté presente y utilice retroceso exponencial."],"boundaries":["Utilice /api/public/v1 para integraciones de clientes. /api/v1 es una interfaz interna del sitio web, no el contrato del cliente. CORS de navegador externo no está habilitado; llame desde su backend.","Fuente de IP inversa: no configurada; no disponible.","Distribución C2: no habilitada.","RPKI utiliza instantáneas. Verifique observedAt, expiresAt, stale y riskStatus. Evidencia desconocida o faltante no significa seguro. /api/capabilities es la fuente del estado de capacidad actual."]}}}