DocumentationOuvrir Moon AI
Parcourir la documentation

Limites

Débit par clé, requêtes simultanées, tailles, durées et plafonds de dépense de l’API développeur, et la façon de réessayer une requête sans la payer deux fois.

Sur cette page

Les valeurs ci-dessous sont celles du 5 novembre 2026. L’onglet « Limites » du portail affiche celles qui s’appliquent à votre workspace et permet de régler les plafonds de dépense (ouvrir).

DébitLien vers la section Débit

LimiteValeurRéponse au-delà
Requêtes par clé600 par minute429 rate_limit_exceeded avec Retry-After
Requêtes refusées avec une même clé (clé révoquée, adresse non autorisée…)60 par minute429 rate_limit_exceeded
Échecs d’authentification depuis une même adresse60 par minute429 rate_limit_exceeded
  • La limite de débit compte par clé, pas par workspace : plusieurs clés ont chacune la leur.
  • Une clé valide qui vient de servir n’est pas freinée parce qu’une autre personne de la même adresse (réseau d’entreprise, NAT) se trompe de clé.
  • Une adresse IPv6 est comptée avec tout son préfixe /64.
  • L’onglet « Limites » du portail rappelle la limite par clé, sous « Limites de débit ».

Requêtes simultanéesLien vers la section Requêtes simultanées

La conversation n’a pas de limite de requêtes simultanées en nombre : chaque requête retient sa part du solde (voir Réserve), et c’est le solde qui borne ce qui peut tourner en même temps. Quand les réserves en cours bloquent une nouvelle requête qui tiendrait sinon, l’API répond 429 credits_held_in_progress (Retry-After: 2).

Les médias ont un nombre de requêtes en cours par workspace :

Point d’accèsRequêtes en cours
Images8
Vidéos (tâches non terminées)20
Téléchargements de vidéos4
Voix8
Transcription4
Embeddings8
OCR2

Au-delà : 429 too_many_concurrent avec Retry-After (30 secondes pour les vidéos, 5 secondes sinon).

TaillesLien vers la section Tailles

Point d’accèsLimite
/v1/chat/completionsLa fenêtre de contexte du modèle (context_length dans /v1/models). Avec Moon Blur, chaque texte fait 500 000 caractères au plus.
/v1/images/generationsCorps JSON de 1 Mo.
/v1/images/editsCorps de 90 Mo ; images de 20 Mo et 40 mégapixels chacune.
/v1/videosCorps de 60 Mo ; images de 20 Mo.
/v1/audio/speechCorps de 256 Ko ; texte de 4 096 caractères.
/v1/audio/transcriptionsFichier de 25 Mo et 20 minutes d’audio.
/v1/embeddingsCorps de 8 Mo ; 2 048 textes et environ 1 million de jetons.
/v1/ocrDocument de 30 Mo ; 50 pages par requête.

Un envoi multipart doit porter un en-tête Content-Length (411 length_required sinon).

DuréesLien vers la section Durées

CasDurée
Conversation en flux (stream: true)Jusqu’à une heure. Le flux est coupé si le modèle n’envoie rien pendant 5 minutes.
Conversation sans fluxLa réponse doit arriver en 100 secondes environ : au-delà, la connexion peut être coupée par le réseau.
Images, voix, transcription, embeddingsAttente de 85 secondes au plus pour le modèle.
OCR85 secondes environ ; les pages non lues à temps ne sont ni renvoyées ni facturées.
VidéosLe lancement répond tout de suite ; la vidéo se suit ensuite (voir Vidéos).

Plafonds de dépenseLien vers la section Plafonds de dépense

Deux niveaux de plafonds bornent ce que l’API peut dépenser. Ils se règlent en euros.

NiveauOùFenêtres
WorkspaceOnglet « Limites », bloc « Plafonds de dépense du workspace » : « Par heure (€) », « Par jour (€) », « Par mois (€) », puis « Enregistrer les limites ».Glissantes : la dernière heure, les dernières 24 heures et les 30 derniers jours. Laissez vide pour ne pas limiter.
CléÀ la création de la clé : « Plafond de dépense (€) » et « Période ». Voir Authentification.Une fenêtre glissante d’une heure, de 24 heures ou de 30 jours.
  • Chaque requête doit tenir dans tous les plafonds qui la concernent, réserve comprise. Au-delà : 402 spend_cap_exceeded (avec scope et window), ou 402 hold_exceeds_cap quand c’est la réserve de cette seule requête qui dépasse ce que le plafond laisse.
  • Le propriétaire et le contact de facturation reçoivent un e-mail quand un plafond est atteint.
  • Une fenêtre glissante se libère au fil du temps : une dépense d’il y a 61 minutes ne compte plus dans le plafond par heure.

Réessayer sans payer deux foisLien vers la section Réessayer sans payer deux fois

Chaque requête HTTP reçue a son propre identifiant (X-Moon-Request-Id) et n’est facturée qu’une fois. Mais l’API ne reconnaît pas une nouvelle tentative de votre part : renvoyer la même requête en crée une deuxième, avec sa propre réserve et son propre coût. Il n’y a pas d’en-tête d’idempotence.

CasRéessayer ?
429 avec Retry-AfterOui, après le délai. La requête refusée ne coûte rien.
402, 400, 401, 403, 404, 413Non : corrigez la cause d’abord. Rien n’est facturé.
503 (moon_blur_unavailable, billing_unavailable, service_unavailable, pricing_unavailable)Oui, après Retry-After ou quelques secondes. Rien n’est facturé.
502 upstream_errorOui. Rien n’est facturé si le modèle n’a rien produit.
504 upstream_timeout sur la conversation, connexion coupée, délai de votre client dépasséAvec prudence : la première requête a pu être facturée (sa réserve est gardée). Vérifiez la dépense dans « Utilisation » › « Journal des requêtes », ou avec GET /v1/generation si vous avez reçu l’identifiant de la requête, avant de relancer une requête coûteuse. Sur les médias, un 504 ne coûte rien.
Python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.realmoon.ai/v1",
    api_key=os.environ["MOONAI_API_KEY"],
    max_retries=0,
    timeout=600,
)
JavaScript
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://api.realmoon.ai/v1',
  apiKey: process.env.MOONAI_API_KEY,
  maxRetries: 0,
  timeout: 600_000,
});

Moon AI

Moon AI en action

0:00

À découvrir

Captures de chat.realmoon.ai du 29 octobre 2026, avec des données fictives.

Moon AI

Vos préférences

Aucun suivi publicitaire.

Ce site ne dépose aucun cookie publicitaire ni cookie de mesure d’audience : notre serveur compte les visites sans cookie. Votre thème et la fermeture de l’information sur les cookies sont mémorisés sur cet appareil.

L’application Moon AI possède ses propres réglages de confidentialité.