Errores

Las llamadas estilo TMDB devuelven errores en el cuerpo de TMDB: success false, un status_code numérico y un status_message. Las llamadas estilo OMDb devuelven Response False con una cadena Error. amodb usa 8 códigos de TMDB, del 7 (clave no válida) al 25 (límite de solicitudes) y el 36 (plan caducado). Reintenta solo 429, 500 y 504.

Actualizado el Ver en Markdown

Cuerpo de error estilo TMDB

Todo error de https://api.amodb.dev/3 tiene la misma forma JSON que TMDB:

JSON
{
  "success": false,
  "status_code": 34,
  "status_message": "The resource you requested could not be found."
}

Códigos de error

HTTPstatus_codestatus_messageQué hacer
4017Invalid API key: You must be granted a valid key.Revisa la clave y cómo la envías.
40110Suspended API key: Access to your account has been suspended, contact amodb.Escribe a support@amodb.dev.
40236Your plan has expired. Renew at https://amodb.dev/pricingPaga un nuevo periodo.
40434The resource you requested could not be found.Revisa el id o la ruta.
40537This method is not offered by amodb.Usa un endpoint de lectura.
42925Your request count (N) is over the allowed limit of (L).Espera los segundos de Retry-After.
50011Internal error: Something went wrong, contact amodb.Reintenta tras unos segundos.
50424Your request to the backend server timed out. Try again.Reintenta tras unos segundos.

Cuerpo de error estilo OMDb

El endpoint compatible con OMDb conserva la forma y el texto de OMDb:

Una llamada OMDb con r=xml devuelve HTTP 400. Usa r=json o no pongas r.

JSON
{
  "Response": "False",
  "Error": "Movie not found!"
}
jspy
const res = await fetch("https://api.amodb.dev/3/movie/550", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
if (!res.ok) {
  const err = await res.json();
  if (res.status === 429) {
    // wait Retry-After seconds, then retry
  }
  throw new Error(`amodb ${res.status} code ${err.status_code}: ${err.status_message}`);
}
res = requests.get(url, headers=headers, timeout=10)
if not res.ok:
    err = res.json()
    raise RuntimeError(f"amodb {res.status_code} code {err['status_code']}: {err['status_message']}")

Alternativas que no son errores

  • Una etiqueta language desconocida no falla. amodb sirve inglés para ella.
  • Un campo sin datos es null o un array vacío, como en TMDB.