API Reference

Rate limits

Cómo Tessera mide y aplica rate limits, tabla de límites por tier, headers de respuesta y estrategia recomendada de backoff para 429.

Modelo de rate limiting

Cada tier tiene un RPM (requests per minute) sostenido y una capacidad de burst que permite picos cortos. El RPM se mide en ventana móvil de 60 s; el burst se permite hasta 5 minutos por hora consecutivos. Pasados esos 5 min, las requests por encima del sostenido devuelven 429.

Límites por tier

TierRPM sostenidoBurstSublímites por servicio
Async— (queue de jobs)Solo LLM + embeddings; sin Whisper/TTS
Lite (450 €/mes)50100 (5 min/h)Embeddings 100 RPM · Whisper 10 RPM · TTS 10 RPM
Pro (650 €/mes)200400 (5 min/h)Embeddings 400 RPM · Whisper 30 RPM · TTS 30 RPM
Scale500700 (5 min/h)Sin sublímites — bundle completo
Enterprise5 000+Negociable según hardwareSin sublímites

Headers de respuesta

Cada respuesta de la API incluye headers para que el cliente conozca su estado de cuota sin esperar a un 429.

HeaderSignificado
`X-RateLimit-Limit-Requests`Tu RPM sostenido para este endpoint
`X-RateLimit-Remaining-Requests`Requests disponibles en la ventana actual
`X-RateLimit-Reset-Requests`Segundos hasta que se restaure la cuota
`Retry-After` (solo en 429)Segundos a esperar antes de reintentar

Manejo de 429

Cuando recibes un 429, la respuesta incluye el header `Retry-After`. Espera al menos ese tiempo antes de reintentar. Recomendación de backoff exponencial con jitter:

Backoff exponencial con jitter
import time, random

def call_with_retry(fn, max_retries=5):
    for attempt in range(max_retries):
        try:
            return fn()
        except RateLimitError as e:
            if attempt == max_retries - 1:
                raise
            delay = max(
                int(e.response.headers.get("Retry-After", "1")),
                (2 ** attempt) + random.random()
            )
            time.sleep(delay)

Subir o bajar de tier

  • Upgrades son inmediatos (toma efecto en <60 s después de confirmación). El RPM sube en la siguiente ventana.
  • Downgrades aplican al ciclo de facturación siguiente para evitar cortes a mitad de mes.
  • Para upgrades temporales (campaña, evento), pide a soporte una "ventana de burst extendida" en lugar de cambiar de tier.