엔드포인트
Responses API
OpenAI Responses API 형식을 받는 POST /responses 엔드포인트의 요청 파라미터와 응답 구조를 설명하고, 스트리밍 이벤트와 비용 처리, 오류 코드를 예제와 함께 정리했습니다. 응답 객체 필드도 확인할 수 있습니다.
플레이그라운드에서 사용해 보기Responses 엔드포인트는 OpenAI Responses API 형식을 받으므로, 공식 SDK의 client.responses.create(...)를 변경 없이 사용할 수 있습니다. Chat completions와 같은 모델에서 실행됩니다. api14는 본문을 변경 없이 업스트림으로 전달하고, 돌아오는 usage에 따라 과금합니다.
POST https://api14.com/api/v1/responses
Authorization: Bearer sk-api14-...
Content-Type: application/json
요청
| 파라미터 | 타입 | 설명 |
|---|---|---|
model | string, 필수 | 모델 ID. 예: openai/gpt-5-mini. |
input | string | array, 필수 | 프롬프트 문자열 또는 입력 항목 배열({ role, content } 메시지, function_call_output, …). |
instructions | string | 시스템 수준 지침. |
stream | boolean | 의미 단위 이벤트(response.output_text.delta, response.completed, …)를 SSE로 스트리밍합니다. |
max_output_tokens | integer | 생성 토큰 수의 상한. |
temperature, top_p | number | 샘플링 제어. |
tools, tool_choice, parallel_tool_calls | 함수 도구. 웹 검색도 도구 또는 plugins를 통해 사용할 수 있습니다. | |
text | object | 출력 형식. 예: { "format": { "type": "json_schema", "name": "...", "schema": {...} } }. |
reasoning | object | { "effort": "low" | "medium" | "high" }. Reasoning을 참고하세요. |
provider, models, plugins | chat completions와 같은 게이트웨이 확장. |
게이트웨이는 대화를 저장하지 않으므로, 매 호출마다 전체 컨텍스트를 input에 전달하세요. previous_response_id 같은 상태 유지 옵션은 지원되지 않을 수 있습니다.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
위 예제는 chat completions를 사용합니다. Node SDK에서 Responses에 해당하는 코드는 다음과 같습니다.
const response = await client.responses.create({
model: "openai/gpt-5-mini",
input: "Write a haiku about APIs.",
});
console.log(response.output_text);
응답
{
"id": "resp-1760000000-abc123",
"object": "response",
"created_at": 1760000000,
"model": "openai/gpt-5-mini",
"status": "completed",
"output": [
{
"type": "message",
"role": "assistant",
"content": [{ "type": "output_text", "text": "Requests in flight,\nJSON answers drifting back,\none key opens all." }]
}
],
"usage": {
"input_tokens": 14,
"output_tokens": 22,
"total_tokens": 36,
"input_tokens_details": { "cached_tokens": 0 },
"output_tokens_details": { "reasoning_tokens": 0 },
"cost": 0.0000475
}
}
게이트웨이는 최종 객체(스트리밍 시에는 response.completed 이벤트)에서 usage를 읽고, cost를 USD로 잔액에서 차감합니다.
오류
chat completions와 같습니다: 400 model_required, 400 invalid_json, 401 invalid_api_key, 402 insufficient_balance, 403 model_not_allowed / plan_required, 404 model_not_found, 413 payload_too_large, 429 rate_limited / daily_limit_reached, 502 upstream_unavailable. 오류를 참고하세요.