Référence API

Responses

POST/v1/responses

Le format de la Responses API d'OpenAI — un seul champ input, des éléments de sortie structurés et des résumés de raisonnement pour les modèles qui les exposent.

#Paramètres de la requête

  • modelstringobligatoire

    ID de modèle issu de /v1/models. La passerelle en déduit le fournisseur en amont.

  • inputstring | arrayobligatoire

    Le prompt : une simple chaîne ou un tableau d'éléments d'entrée.

  • instructionsstringfacultatif

    Consignes au niveau système, équivalentes à un message system.

  • streambooleanfacultatif

    Diffuse des événements SSE response.* au lieu d'un seul corps JSON.

  • max_output_tokensintegerfacultatif

    Limite supérieure de tokens générés ; plafonne aussi l'estimation du quota préréservé.

  • toolsarrayfacultatif

    Déclarations de fonctions que le modèle peut appeler — voir le guide sur l'appel d'outils.

  • previous_response_idstringfacultatif

    Enchaîne un nouveau tour sur une réponse précédente sans renvoyer l'historique.

#Compacter une longue conversation

POST/v1/responses/compact

La compaction condense une conversation devenue trop longue pour être renvoyée en entier, et renvoie une version raccourcie à réutiliser ensuite. C'est l'appel qu'effectuent les agents de code lorsqu'une session approche de la limite de contexte.

  • modelstringobligatoire

    Un modèle qui prend en charge la compaction. Les autres rejettent ce chemin avec unsupported_endpoint.

  • inputarray | stringfacultatif

    La conversation à compacter, au format input de Responses.

  • instructionsstring | arrayfacultatif

    Ce qu'il faut préserver lors de la compaction — par exemple "conserver chaque chemin de fichier et chaque décision".

  • previous_response_idstringfacultatif

    Reprend à partir d'une réponse stockée au lieu de renvoyer tout l'historique.

compacted.json
{
  "id": "resp_…",
  "object": "response",
  "created_at": 1789000000,
  "output": [ /* the compacted conversation */ ],
  "usage": {"input_tokens": 8120, "output_tokens": 240, "total_tokens": 8360}
}

Jamais en streaming, toujours facturé au token

La compaction n'a pas de version en streaming — stream:true ne fait pas partie de cette requête. Elle est tarifée comme tout autre appel Responses, sur les tokens lus et écrits : compactez à bon escient plutôt qu'à chaque tour.

#Erreurs associées

  • 400 invalid_request_errorCorps mal formé ou paramètre non pris en charge par ce modèle.
  • 401Jeton bearer invalide ou manquant. Pas de error.code sur ce chemin — basez-vous sur le statut.
  • 402 insufficient_user_quotaLe solde du portefeuille ne couvre pas l'estimation préréservée.
  • 429Limitation par clé. Corps vide ; attendez Retry-After. Un 429 qui contient insufficient_user_quota correspond en revanche à un plafond de dépenses quotidien.
  • 503 model_not_foundModèle inconnu, ou aucun canal opérationnel ne le sert actuellement.

Table complète des codes d'erreur →

#Exemple de requête

curl https://www.aisplice.store/v1/responses \
  -H "Authorization: Bearer sk-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-luna",
    "input": "Say hello."
  }'

#Réponse

response.json
{
  "id": "resp_…",
  "object": "response",
  "model": "gpt-5.6-luna",
  "output": [{
    "type": "message",
    "role": "assistant",
    "content": [{"type": "output_text", "text": "Hello!"}]
  }],
  "usage": {"input_tokens": 9, "output_tokens": 3, "total_tokens": 12}
}

Toujours bloqué ?

Envoyez-nous l'ID de requête ou le message d'erreur, et nous examinerons le problème.