Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs-attestly.code4source.com/llms.txt

Use this file to discover all available pages before exploring further.

Los errores devuelven un body JSON con un code estable:
{
  "title":  "Quota Exceeded",
  "status": 429,
  "code":   "QUOTA_EXCEEDED",
  "detail": "Monthly quota exceeded.",
  "limit": 10000,
  "used":  10000,
  "period_started_at": "2026-04-15T00:00:00Z",
  "period_ends_at":   "2026-05-15T00:00:00Z"
}
Haz match por code — no por title o detail, que son para humanos y pueden reescribirse.

Autenticación & acceso

StatusCodeCuándo
401AUTHENTICATION_ERRORAPI key ausente, malformada o revocada.
401TOKEN_EXPIREDAPI key expiró. Solicita una nueva.
402SUBSCRIPTION_INACTIVESubscription no está activa.
429QUOTA_EXCEEDEDTope mensual alcanzado para el periodo de billing actual.
429RATE_LIMIT_EXCEEDEDDemasiadas requests en una ventana corta.
Las respuestas 429 llevan headers Retry-After y X-RateLimit-*, más campos limit, used, period_started_at, period_ends_at para QUOTA_EXCEEDED. Ver Quotas.

Validación

StatusCodeCuándo
422(validación de request)JSON malformado, tipos incorrectos, campos faltantes.
422PROGRAM_VALIDATION_ERROREstructura del ruleset inválida (depth, refs, límites).
422UNKNOWN_SOURCEEl ruleset referencia un source que no puedes acceder.
StatusCodeCuándo
404RULESET_NOT_FOUNDruleset_id no resuelve.
409RULESET_ALREADY_EXISTS(name, version) ya está en uso.

Idempotencia

StatusCodeCuándo
422IDEMPOTENCY_KEY_INVALIDHeader Idempotency-Key malformado.
422IDEMPOTENCY_KEY_CONFLICTMisma clave, body distinto.
429IDEMPOTENCY_KEY_EXHAUSTEDDemasiadas requests concurrentes con la misma clave.
410IDEMPOTENCY_REPLAY_EXPIREDLa ventana de replay para esa clave ha expirado.

Servidor (5xx)

StatusCodeCuándo
500INTERNAL_ERRORError inesperado del servidor.
503(no disponible)Problema transitorio de infraestructura.
Las respuestas 5xx son reintentables. Usa exponential backoff con jitter; si persiste, contacta support@attestly.io.

Fallas parciales (200)

Una falla de source o check no tira la request entera. La respuesta es 200 pero verdict.status = "degraded" y el check afectado lleva status: "failed" con un mensaje en error. Ver Verdicts.