OpenAI Responses
Envoyer une requête via l'opération Responses compatible OpenAI de RunAPI.
Vue d'ensemble
Utilisez l'opération Responses compatible OpenAI de RunAPI avec un modèle compatible et les structures de requête et de réponse du protocole.
Démarrage rapide
- Créez une clé API et définissez-la comme RUNAPI_API_KEY.
- Choisissez un modèle compatible, puis envoyez les paramètres de chemin et le corps JSON documentés.
- Lisez la réponse JSON ou les événements envoyés par le serveur affichés pour cette opération, et gérez les erreurs de protocole.
Point de terminaison
- URL de base
https://runapi.ai- Version du contrat
v1- Authentification recommandée
Authorization: Bearer YOUR_API_TOKEN
Supports d'authentification
RunAPI accepte chaque protocole listé ci-dessous. Les exemples générés utilisent l'en-tête préféré du protocole.
- header - Recommandé
Authorization: Bearer YOUR_API_TOKEN- header
x-api-key: YOUR_API_TOKEN- header
x-goog-api-key: YOUR_API_TOKEN- query
?key=YOUR_API_TOKEN
Modèles compatibles
Ouvrez une page de modèle pour consulter la tarification actuelle, les limites de débit et les conditions d'utilisation commerciale.
Afficher 58 modèles compatibles
- claude-fable-5-1
- claude-fable-5
- claude-sonnet-5
- claude-opus-5
- claude-opus-4-8
- claude-opus-4-7
- claude-opus-4-6
- claude-sonnet-4-6
- claude-opus-4-5-20251101
- claude-sonnet-4-5-20250929
- claude-haiku-4-5-20251001
- claude-opus-4-1-20250805
- gpt-5.5
- gpt-5.5-pro
- gpt-5.4
- gpt-5.4-mini
- gpt-5.4-nano
- gpt-5.4-pro
- gpt-5.3-codex
- gpt-5.3-codex-spark
- gpt-5.6-luna
- gpt-5.6-sol
- gpt-5.6-terra
- gpt-6-astra
- gemini-3.6-flash
- gemini-3.5-flash
- gemini-3.1-pro-preview
- gemini-3-flash-preview
- gemini-2.5-pro
- gemini-2.5-flash
- deepseek-v4-flash-vision-exp
- deepseek-v4-pro
- deepseek-v4-flash
- glm-5.2
- glm-5.1
- glm-5-turbo
- glm-5
- glm-4.7
- glm-4.6
- glm-4.5
- glm-4.5-air
- kimi-k3
- kimi-k2.7-code
- kimi-k2.6
- kimi-k2.5
- MiniMax-M3
- MiniMax-M2.7
- MiniMax-M2.7-highspeed
- MiniMax-M2.5
- MiniMax-M2.5-highspeed
- MiniMax-M2.1
- MiniMax-M2
- mimo-v2.5-pro
- mimo-v2.5
- grok-4.20-0309-non-reasoning
- grok-4.6
- grok-4.5
- grok-4.3
Contrat de requête
Seuls les champs disposant à la fois d'un protocole public et d'une prise en charge RunAPI avérée sont listés. Les champs supplémentaires du corps JSON sont transmis tels quels.
Corps JSON13 champs
input["string", "array"]Texte, éléments de message ou résultats d'outils fournis au modèle.
instructions["string", "null"]Instructions système ou développeur pour cette réponse.
max_output_tokens["integer", "null"]Nombre maximum de tokens en sortie, y compris les tokens visibles et de raisonnement.
modelstringIdentifiant de modèle RunAPI retourné par le catalogue de modèles compatible.
moderation["object", "null"]Retourner des signaux de modération indépendants pour l'entrée actuelle et la sortie complète.
moderation.modelstringomni-moderation-latest
moderation.policy["object", "null"]moderation.policy.input["object", "null"]moderation.policy.input.modestringscore, block
moderation.policy.output["object", "null"]moderation.policy.output.modestringscore, block
stream["boolean", "null"]Retourner des événements Responses typés sous forme d'événements server-sent.
Par défaut:false
toolsarrayOutils que le modèle peut appeler.
Exemple de requête
{
"input": "Summarize one practical improvement for an API deployment.",
"model": "gpt-5.4",
"moderation": {
"model": "omni-moderation-latest",
"policy": {
"input": {
"mode": "score"
},
"output": {
"mode": "block"
}
}
}
}
Réponse synchrone
Schéma
{
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"model": {
"type": "string"
},
"moderation": {
"additionalProperties": true,
"properties": {
"input": {
"oneOf": [
{
"additionalProperties": true,
"properties": {
"categories": {
"additionalProperties": true,
"type": "object"
},
"category_applied_input_types": {
"additionalProperties": true,
"type": "object"
},
"category_scores": {
"additionalProperties": true,
"type": "object"
},
"flagged": {
"type": "boolean"
},
"model": {
"const": "omni-moderation-latest",
"type": "string"
},
"type": {
"const": "moderation_result",
"type": "string"
}
},
"required": [
"type",
"model",
"flagged",
"categories",
"category_scores",
"category_applied_input_types"
],
"type": "object"
},
{
"additionalProperties": true,
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"type": {
"const": "error",
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
}
]
},
"output": {
"oneOf": [
{
"additionalProperties": true,
"properties": {
"categories": {
"additionalProperties": true,
"type": "object"
},
"category_applied_input_types": {
"additionalProperties": true,
"type": "object"
},
"category_scores": {
"additionalProperties": true,
"type": "object"
},
"flagged": {
"type": "boolean"
},
"model": {
"const": "omni-moderation-latest",
"type": "string"
},
"type": {
"const": "moderation_result",
"type": "string"
}
},
"required": [
"type",
"model",
"flagged",
"categories",
"category_scores",
"category_applied_input_types"
],
"type": "object"
},
{
"additionalProperties": true,
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"type": {
"const": "error",
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
}
]
}
},
"required": [
"input",
"output"
],
"type": "object"
},
"object": {
"const": "response",
"type": "string"
},
"output": {
"type": "array"
},
"status": {
"type": "string"
},
"usage": {
"additionalProperties": true,
"properties": {
"input_tokens": {
"type": "integer"
},
"output_tokens": {
"type": "integer"
},
"total_tokens": {
"type": "integer"
}
},
"required": [
"input_tokens",
"output_tokens",
"total_tokens"
],
"type": "object"
}
},
"required": [
"id",
"object",
"status",
"model",
"output"
],
"type": "object"
}
Exemple
{
"id": "resp_example",
"model": "gpt-5.4",
"moderation": {
"input": {
"categories": {
"sexual": false,
"violence": true
},
"category_applied_input_types": {
"sexual": [
"text"
],
"violence": [
"text"
]
},
"category_scores": {
"sexual": 0.0002,
"violence": 0.96
},
"flagged": true,
"model": "omni-moderation-latest",
"type": "moderation_result"
},
"output": {
"categories": {
"sexual": false,
"violence": false
},
"category_applied_input_types": {
"sexual": [
"text"
],
"violence": [
"text"
]
},
"category_scores": {
"sexual": 0.0002,
"violence": 0.0001
},
"flagged": false,
"model": "omni-moderation-latest",
"type": "moderation_result"
}
},
"object": "response",
"output": [
{
"content": [
{
"annotations": [],
"text": "Hello! How can I help today?",
"type": "output_text"
}
],
"id": "msg_example",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"status": "completed",
"usage": {
"input_tokens": 12,
"output_tokens": 8,
"total_tokens": 20
}
}
Événement SSE : output_text_delta
Schéma
{
"additionalProperties": true,
"properties": {
"content_index": {
"type": "integer"
},
"delta": {
"type": "string"
},
"item_id": {
"type": "string"
},
"output_index": {
"type": "integer"
},
"type": {
"const": "response.output_text.delta",
"type": "string"
}
},
"required": [
"type",
"item_id",
"output_index",
"content_index",
"delta"
],
"type": "object"
}
Exemple
{
"content_index": 0,
"delta": "Hello",
"item_id": "msg_example",
"output_index": 0,
"type": "response.output_text.delta"
}
Événement SSE : completed
Schéma
{
"additionalProperties": true,
"properties": {
"response": {
"additionalProperties": true,
"properties": {
"id": {
"type": "string"
},
"model": {
"type": "string"
},
"moderation": {
"additionalProperties": true,
"properties": {
"input": {
"oneOf": [
{
"additionalProperties": true,
"properties": {
"categories": {
"additionalProperties": true,
"type": "object"
},
"category_applied_input_types": {
"additionalProperties": true,
"type": "object"
},
"category_scores": {
"additionalProperties": true,
"type": "object"
},
"flagged": {
"type": "boolean"
},
"model": {
"const": "omni-moderation-latest",
"type": "string"
},
"type": {
"const": "moderation_result",
"type": "string"
}
},
"required": [
"type",
"model",
"flagged",
"categories",
"category_scores",
"category_applied_input_types"
],
"type": "object"
},
{
"additionalProperties": true,
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"type": {
"const": "error",
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
}
]
},
"output": {
"oneOf": [
{
"additionalProperties": true,
"properties": {
"categories": {
"additionalProperties": true,
"type": "object"
},
"category_applied_input_types": {
"additionalProperties": true,
"type": "object"
},
"category_scores": {
"additionalProperties": true,
"type": "object"
},
"flagged": {
"type": "boolean"
},
"model": {
"const": "omni-moderation-latest",
"type": "string"
},
"type": {
"const": "moderation_result",
"type": "string"
}
},
"required": [
"type",
"model",
"flagged",
"categories",
"category_scores",
"category_applied_input_types"
],
"type": "object"
},
{
"additionalProperties": true,
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"type": {
"const": "error",
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
}
]
}
},
"required": [
"input",
"output"
],
"type": "object"
},
"object": {
"const": "response",
"type": "string"
},
"output": {
"type": "array"
},
"status": {
"type": "string"
},
"usage": {
"additionalProperties": true,
"properties": {
"input_tokens": {
"type": "integer"
},
"output_tokens": {
"type": "integer"
},
"total_tokens": {
"type": "integer"
}
},
"required": [
"input_tokens",
"output_tokens",
"total_tokens"
],
"type": "object"
}
},
"required": [
"id",
"object",
"status",
"model",
"output",
"usage"
],
"type": "object"
},
"type": {
"const": "response.completed",
"type": "string"
}
},
"required": [
"type",
"response"
],
"type": "object"
}
Exemple
{
"response": {
"id": "resp_example",
"model": "gpt-5.4",
"moderation": {
"input": {
"categories": {
"sexual": false,
"violence": true
},
"category_applied_input_types": {
"sexual": [
"text"
],
"violence": [
"text"
]
},
"category_scores": {
"sexual": 0.0002,
"violence": 0.96
},
"flagged": true,
"model": "omni-moderation-latest",
"type": "moderation_result"
},
"output": {
"categories": {
"sexual": false,
"violence": false
},
"category_applied_input_types": {
"sexual": [
"text"
],
"violence": [
"text"
]
},
"category_scores": {
"sexual": 0.0002,
"violence": 0.0001
},
"flagged": false,
"model": "omni-moderation-latest",
"type": "moderation_result"
}
},
"object": "response",
"output": [
{
"content": [
{
"annotations": [],
"text": "Hello! How can I help today?",
"type": "output_text"
}
],
"id": "msg_example",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"status": "completed",
"usage": {
"input_tokens": 12,
"output_tokens": 8,
"total_tokens": 20
}
},
"type": "response.completed"
}
Erreur de protocole : invalid_request
Schéma
{
"additionalProperties": true,
"properties": {
"error": {
"additionalProperties": true,
"properties": {
"code": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"param": {
"type": [
"string",
"null"
]
},
"type": {
"type": "string"
}
},
"required": [
"message",
"type"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}
Exemple
{
"error": {
"code": null,
"message": "input must be a string or an array",
"param": "input",
"type": "invalid_request_error"
}
}
Utilisation
Schéma
{
"additionalProperties": true,
"properties": {
"input_tokens": {
"type": "integer"
},
"output_tokens": {
"type": "integer"
},
"total_tokens": {
"type": "integer"
}
},
"required": [
"input_tokens",
"output_tokens",
"total_tokens"
],
"type": "object"
}
Exemple
{
"input_tokens": 12,
"output_tokens": 8,
"total_tokens": 20
}
Exemples de code générés
Chaque exemple cURL, JavaScript et Python envoie la requête validée depuis ce contrat sans nécessiter de SDK spécifique au protocole.
Installer
pip install requests
import requests
response = requests.post(
"https://runapi.ai/v1/responses",
headers={"Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json"},
json={"model": "gpt-5.4", "input": "Summarize one practical improvement for an API deployment.", "moderation": {"model": "omni-moderation-latest", "policy": {"input": {"mode": "score"}, "output": {"mode": "block"}}}}
)
response.raise_for_status()
print(response.json())