Runbase applique des limites de débit par clé API afin d’assurer une utilisation équitable et la stabilité de la plateforme.
Limites par défaut
| Portée | Limite |
|---|---|
| Clé API (endpoints runs) | 20 requêtes par 10 secondes |
| Endpoints d’authentification | 5 requêtes par 60 secondes |
| Vérification de session | 60 requêtes par 60 secondes |
La limite de débit pour les endpoints runs s’applique à POST /api/v1/runs et GET /api/v1/runs/:id combinés, par clé API.
Réponse de limite de débit
Lorsque vous dépassez la limite, l’API renvoie HTTP 429 :
{
"error": {
"message": "Rate limit exceeded",
"code": "RATE_LIMITED"
}
}Gestion des limites de débit
Implémentez un backoff exponentiel lorsque vous recevez une réponse 429 :
import time
import requests
def create_run(api_key, model, input_data, max_retries=3):
url = "https://runbase.net/api/v1/runs"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
body = {"model": model, "input": input_data}
for attempt in range(max_retries):
response = requests.post(url, json=body, headers=headers)
if response.status_code == 429:
wait = 2 ** attempt
time.sleep(wait)
continue
return response.json()
raise Exception("Rate limit exceeded after retries")Conseils
- Utilisez des clés distinctes pour différents services ou workers afin d’éviter de partager une limite de débit
- Interrogez à des intervalles raisonnables lors de la vérification de l’état d’une exécution — toutes les 1 à 2 secondes suffisent pour la plupart des modèles
- Regroupez le travail plutôt que d’envoyer de nombreuses requêtes simultanément
- Ne réessayez pas immédiatement après un 429 — attendez toujours avant de réessayer
Besoin de limites plus élevées ?
Contactez support@runbase.net si votre cas d’usage nécessite des limites de débit plus élevées.

