---
title: OpenAI Responses | RunAPI
description: Envoyer une requête via l'opération Responses compatible OpenAI de RunAPI.
url: https://runapi.ai/fr/docs/api/openai/responses.md
canonical: https://runapi.ai/fr/docs/api/openai/responses
locale: fr
---

> Version HTML: https://runapi.ai/fr/docs/api/openai/responses
> Index du site pour les agents: https://runapi.ai/llms.txt

# OpenAI Responses

## 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

1. Créez une clé API et définissez-la comme RUNAPI_API_KEY.
2. Choisissez un modèle compatible, puis envoyez les paramètres de chemin et le corps JSON documentés.
3. 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

POST /v1/responses

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.

- `Authorization: Bearer YOUR_API_TOKEN` (Recommandé)
- `x-api-key: YOUR_API_TOKEN`
- `x-goog-api-key: YOUR_API_TOKEN`
- `?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.

- [claude-fable-5-1](https://runapi.ai/fr/models/claude)
- [claude-fable-5](https://runapi.ai/fr/models/claude)
- [claude-sonnet-5](https://runapi.ai/fr/models/claude)
- [claude-opus-5](https://runapi.ai/fr/models/claude)
- [claude-opus-4-8](https://runapi.ai/fr/models/claude)
- [claude-opus-4-7](https://runapi.ai/fr/models/claude)
- [claude-opus-4-6](https://runapi.ai/fr/models/claude)
- [claude-sonnet-4-6](https://runapi.ai/fr/models/claude)
- [claude-opus-4-5-20251101](https://runapi.ai/fr/models/claude)
- [claude-sonnet-4-5-20250929](https://runapi.ai/fr/models/claude)
- [claude-haiku-4-5-20251001](https://runapi.ai/fr/models/claude)
- [claude-opus-4-1-20250805](https://runapi.ai/fr/models/claude)
- [gpt-5.5](https://runapi.ai/fr/models/gpt)
- [gpt-5.5-pro](https://runapi.ai/fr/models/gpt)
- [gpt-5.4](https://runapi.ai/fr/models/gpt)
- [gpt-5.4-mini](https://runapi.ai/fr/models/gpt)
- [gpt-5.4-nano](https://runapi.ai/fr/models/gpt)
- [gpt-5.4-pro](https://runapi.ai/fr/models/gpt)
- [gpt-5.3-codex](https://runapi.ai/fr/models/gpt)
- [gpt-5.3-codex-spark](https://runapi.ai/fr/models/gpt)
- [gpt-5.6-luna](https://runapi.ai/fr/models/gpt)
- [gpt-5.6-sol](https://runapi.ai/fr/models/gpt)
- [gpt-5.6-terra](https://runapi.ai/fr/models/gpt)
- [gpt-6-astra](https://runapi.ai/fr/models/gpt)
- [gemini-3.6-flash](https://runapi.ai/fr/models/gemini)
- [gemini-3.5-flash](https://runapi.ai/fr/models/gemini)
- [gemini-3.1-pro-preview](https://runapi.ai/fr/models/gemini)
- [gemini-3-flash-preview](https://runapi.ai/fr/models/gemini)
- [gemini-2.5-pro](https://runapi.ai/fr/models/gemini)
- [gemini-2.5-flash](https://runapi.ai/fr/models/gemini)
- [deepseek-v4-flash-vision-exp](https://runapi.ai/fr/models/deepseek)
- [deepseek-v4-pro](https://runapi.ai/fr/models/deepseek)
- [deepseek-v4-flash](https://runapi.ai/fr/models/deepseek)
- [glm-5.2](https://runapi.ai/fr/models/glm)
- [glm-5.1](https://runapi.ai/fr/models/glm)
- [glm-5-turbo](https://runapi.ai/fr/models/glm)
- [glm-5](https://runapi.ai/fr/models/glm)
- [glm-4.7](https://runapi.ai/fr/models/glm)
- [glm-4.6](https://runapi.ai/fr/models/glm)
- [glm-4.5](https://runapi.ai/fr/models/glm)
- [glm-4.5-air](https://runapi.ai/fr/models/glm)
- [kimi-k3](https://runapi.ai/fr/models/kimi)
- [kimi-k2.7-code](https://runapi.ai/fr/models/kimi)
- [kimi-k2.6](https://runapi.ai/fr/models/kimi)
- [kimi-k2.5](https://runapi.ai/fr/models/kimi)
- [MiniMax-M3](https://runapi.ai/fr/models/minimax)
- [MiniMax-M2.7](https://runapi.ai/fr/models/minimax)
- [MiniMax-M2.7-highspeed](https://runapi.ai/fr/models/minimax)
- [MiniMax-M2.5](https://runapi.ai/fr/models/minimax)
- [MiniMax-M2.5-highspeed](https://runapi.ai/fr/models/minimax)
- [MiniMax-M2.1](https://runapi.ai/fr/models/minimax)
- [MiniMax-M2](https://runapi.ai/fr/models/minimax)
- [mimo-v2.5-pro](https://runapi.ai/fr/models/mimo)
- [mimo-v2.5](https://runapi.ai/fr/models/mimo)
- [grok-4.20-0309-non-reasoning](https://runapi.ai/fr/models/grok)
- [grok-4.6](https://runapi.ai/fr/models/grok)
- [grok-4.5](https://runapi.ai/fr/models/grok)
- [grok-4.3](https://runapi.ai/fr/models/grok)

## 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 JSON

Requis: `model`

```json
{
  "input": {
    "description": "Texte, éléments de message ou résultats d'outils fournis au modèle.",
    "type": [
      "string",
      "array"
    ]
  },
  "instructions": {
    "description": "Instructions système ou développeur pour cette réponse.",
    "type": [
      "string",
      "null"
    ]
  },
  "max_output_tokens": {
    "description": "Nombre maximum de tokens en sortie, y compris les tokens visibles et de raisonnement.",
    "type": [
      "integer",
      "null"
    ]
  },
  "model": {
    "description": "Identifiant de modèle RunAPI retourné par le catalogue de modèles compatible.",
    "type": "string"
  },
  "moderation": {
    "additionalProperties": true,
    "description": "Retourner des signaux de modération indépendants pour l'entrée actuelle et la sortie complète.",
    "properties": {
      "model": {
        "enum": [
          "omni-moderation-latest"
        ],
        "type": "string"
      },
      "policy": {
        "additionalProperties": true,
        "properties": {
          "input": {
            "additionalProperties": true,
            "properties": {
              "mode": {
                "enum": [
                  "score",
                  "block"
                ],
                "type": "string"
              }
            },
            "required": [
              "mode"
            ],
            "type": [
              "object",
              "null"
            ]
          },
          "output": {
            "additionalProperties": true,
            "properties": {
              "mode": {
                "enum": [
                  "score",
                  "block"
                ],
                "type": "string"
              }
            },
            "required": [
              "mode"
            ],
            "type": [
              "object",
              "null"
            ]
          }
        },
        "type": [
          "object",
          "null"
        ]
      }
    },
    "required": [
      "model"
    ],
    "type": [
      "object",
      "null"
    ]
  },
  "stream": {
    "default": false,
    "description": "Retourner des événements Responses typés sous forme d'événements server-sent.",
    "type": [
      "boolean",
      "null"
    ]
  },
  "tools": {
    "description": "Outils que le modèle peut appeler.",
    "type": "array"
  }
}
```

### Exemple de requête

```json
{
  "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

HTTP 200

### Schéma

```json
{
  "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

```json
{
  "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

Type de média: `text/event-stream`

### Schéma

```json
{
  "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

```json
{
  "content_index": 0,
  "delta": "Hello",
  "item_id": "msg_example",
  "output_index": 0,
  "type": "response.output_text.delta"
}
```

## Événement SSE : completed

Type de média: `text/event-stream`

### Schéma

```json
{
  "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

```json
{
  "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

HTTP 400

### Schéma

```json
{
  "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

```json
{
  "error": {
    "code": null,
    "message": "input must be a string or an array",
    "param": "input",
    "type": "invalid_request_error"
  }
}
```

## Utilisation

### Schéma

```json
{
  "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

```json
{
  "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.

### curl

```curl
curl -X POST https://runapi.ai/v1/responses \
  -H Authorization:\ Bearer\ YOUR_API_TOKEN \
  -H Content-Type:\ application/json \
  -d \{\"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\"\}\}\}\}
```

### javascript

```javascript
const response = await fetch("https://runapi.ai/v1/responses", {
  method: "POST",
  headers: {
  "Authorization": "Bearer YOUR_API_TOKEN",
  "Content-Type": "application/json"
},
  body: JSON.stringify({
  "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"
      }
    }
  }
})
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data);
```

### python

#### Installer

```bash
pip install requests
```

```python
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())
```

## Guides associés

- [Authentification](https://runapi.ai/fr/docs/guides/authentication.md)
- [Démarrage rapide](https://runapi.ai/fr/docs/guides/llm-api/quickstart.md)

---

## Plus de ressources de RunAPI

- [Accueil](https://runapi.ai/fr/.md)
- [Catalogue de modèles](https://runapi.ai/fr/models.md)
- [Tarifs](https://runapi.ai/fr/pricing.md)
- [Fournisseurs](https://runapi.ai/fr/models)
- [Documentation](https://runapi.ai/fr/docs/guides)
- [SDK](https://runapi.ai/fr/sdk.md)
- [CLI](https://runapi.ai/fr/cli.md)
- [Serveur MCP](https://runapi.ai/fr/mcp.md)
- [Claude Code vs Cursor](https://runapi.ai/fr/claude-code-vs-cursor.md)
- [Configuration de l’API Cursor](https://runapi.ai/fr/cursor-api-setup.md)
- [RunAPI vs OpenRouter](https://runapi.ai/fr/openrouter-alternative.md)
- [Entreprise](https://runapi.ai/fr/contact.md)
- [Contact](https://runapi.ai/fr/contact.md)
- [Conditions](https://runapi.ai/fr/terms.md)
- [Confidentialité](https://runapi.ai/fr/privacy.md)
- [Index du site pour les agents](https://runapi.ai/llms.txt)

Contact: contact@runapi.ai

## Données structurées

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "fr",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/fr",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/fr/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "fr",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/fr",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/fricon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "fr",
    "@type": "TechArticle",
    "headline": "OpenAI Responses",
    "description": "Envoyer une requête via l'opération Responses compatible OpenAI de RunAPI.",
    "url": "https://runapi.ai/fr/docs/api/openai/responses",
    "mainEntityOfPage": "https://runapi.ai/fr/docs/api/openai/responses"
  }
]
```
