Límites de frecuencia

Información general

Tanto si se trata de un token que se distribuye a través de Developer Portal, una concesión de OAuth o el backend de cuentas que presta servicio a las propias aplicaciones de Frame.io, todas las llamadas API a Frame.io tienen la frecuencia limitada. Los límites de frecuencia se aplican en todas y cada una de las solicitudes de API de un usuario individual (independientemente del token o método de autorización que se use), se agotan y se rellenan progresivamente, y se reflejan en los encabezados de respuesta de cada solicitud que se realiza a la API de Frame.io. Cada punto final está configurado con sus propios límites, que van desde tan solo 10 solicitudes/minuto hasta 100 solicitudes/segundo. Las solicitudes que hayan superado el límite de frecuencia de un punto final determinado recibirán un error HTTP 429 como respuesta.

Agotamiento y recarga

La API de Frame.io utiliza una estrategia de “cubo con fugas” para aplicar límites de frecuencia progresivos, en el que los límites se actualizan gradualmente durante la ventana de tiempo asignada. Es decir, no existe un punto de corte fijo tras el cual se actualicen los límites de un recurso determinado, como ocurre con las estrategias de aplicación de “ventana fija” o “ventana deslizante”. En su lugar, los límites restantes se actualizan constantemente a un ritmo relativo al límite y a la ventana de tiempo del recurso.

Espera exponencial

La estrategia recomendada para administrar los límites de frecuencia se suele denominar “espera exponencial”.

En resumen:

  • Al recibir un error 429, espere un periodo de tiempo (normalmente un segundo)
  • Si recibe otro error 429, aumente exponencialmente el periodo de espera anterior hasta que se reanude el funcionamiento normal

Encabezados

Las respuestas a las solicitudes de API siempre incluirán los siguientes tres encabezados que deberían utilizarse para limitar las solicitudes salientes:

EncabezadoValor
x-ratelimit-limitLímite de frecuencia de esta ruta de recurso, medido en solicitudes.
x-ratelimit-remainingNúmero de solicitudes restantes en la ventana de tiempo actual.
x-ratelimit-windowVentana de tiempo de los límites de esta ruta de recurso, medida en milisegundos (ms).

Ejemplo

El siguiente ejemplo es de la respuesta a GET v2/assets/:id/children, para recuperar los activos secundarios de una raíz de proyecto, carpeta o pila de versiones. El límite para esa ruta es de 40 solicitudes por 60 000 ms (un minuto), y quedan 39 solicitudes después de haberse realizado una.

x-ratelimit-limit → 40
x-ratelimit-remaining → 39
x-ratelimit-window → 60000

Detalles

Los límites de frecuencia varían considerablemente entre las rutas de recursos en la API de Frame.io. A continuación, se muestran algunos detalles seleccionados, expresados para mayor legibilidad como recurso y acción (por ejemplo, “Activos — Actualizar” en lugar de PUT /assets/:id).

Como regla general, las rutas de recursos que crean datos nuevos están limitadas a 100 llamadas por minuto o menos, y las rutas de recursos que recuperan listas de activos están limitadas a 200 llamadas por minuto.

RecursoAcciónLímite (solicitudes)Periodo de límite (ms)
Activoscreate51000
Activosupdate10
Activosread51000
Comentarios
Presentaciones
Proyectos
Vínculos de revisión
Equipos
Integrantes del equipo
create10060 000
Buscarread20060 000