BazaarLinkBazaarLink
로그인
문서API 레퍼런스SDK 레퍼런스에이전트 사용법AI 스킬
Responses API

응답 생성

OpenAI Responses API의 요청 형식(input/instructions)으로 모델 응답을 요청합니다. 내부적으로 Chat Completions 형식으로 변환되어 지원되는 모든 모델로 라우팅됩니다 — 이는 변환 레이어이며 별도의 추론 경로가 아닙니다. 이것은 상태 비저장 엔드포인트입니다: store: true 또는 null이 아닌 previous_response_id를 전달하면 400을 반환합니다(별도의 오류 형식은 아래 400 항목 참조) — 매 호출마다 전체 대화 내용을 input에 담아야 합니다. 스트리밍 시 reasoning은 response.reasoning_text.delta 이벤트와 type:"reasoning" 출력 항목으로 표시됩니다.

POST/api/v1/responses

인증

Authorization필수
string · header

Authorization 헤더에 Bearer 토큰으로 API 키를 전달합니다.

Body

model필수
string

사용할 모델. 공급자 접두사 형식, 예: "openai/gpt-5.2".

minLength: 1
Example: "openai/gpt-5.2"
input필수
string | InputItem[]

대화 입력 — 단일 문자열 또는 구조화된 항목 배열(message/function_call/function_call_output). 메시지는 일반 텍스트 또는 input_image를 포함한 콘텐츠 블록 배열을 사용할 수 있습니다.

instructions
string

시스템 수준 지시사항으로, 변환된 messages 배열 맨 앞에 첫 번째 system 메시지로 삽입됩니다.

stream
boolean

true이면 Responses API의 SSE 이벤트(response.created, response.output_item.added, response.output_text.delta, response.reasoning_text.delta, response.completed 등)로 스트리밍합니다. 생략하거나 false이면 단일 JSON 응답을 반환합니다.

max_output_tokens
integer

응답이 생성할 수 있는 최대 토큰 수(업스트림 Chat Completions의 max_tokens로 변환됨).

tools
Tool[]

모델이 호출할 수 있는 도구/함수 정의 목록. Responses 스펙의 평면 형식 {type:"function", name, description, parameters}(권장)와 Chat Completions의 중첩 형식 {type:"function", function:{...}}(하위 호환용으로 허용, 그대로 통과)을 모두 받습니다. 응답 객체의 tools 필드는 여기서 실제로 보낸 값을 그대로 반영합니다.

tool_choice
string | object

모델이 도구 호출을 강제받는지/어떻게 강제받는지 제어합니다. 예: {type:"function", name:"..."}(평면 형식, 권장, 업스트림용으로 자동 변환) 또는 "auto". 응답 객체의 tool_choice 필드는 여기서 보낸 값을 반영하며, 생략 시 기본값은 "auto"입니다.

parallel_tool_calls
boolean

tools가 제공될 때 병렬 도구 호출을 허용할지 여부. 생략 시 기본값은 true입니다. 응답 객체의 parallel_tool_calls 필드는 여기서 보낸 값을 반영합니다.

plugins
object[]

플러그인 배열(예: 웹 검색을 켜는 {id:"web"}). 일부 모델 라우트에서만 지원되며 그 외에는 무효입니다. :online 모델 변형은 plugins를 보내지 않았을 때만 {id:"web"}을 자동 삽입하며, 이 역시 지원 라우트에 한합니다.

store
boolean

⚠️ 이 엔드포인트는 상태 비저장입니다 — true를 전달하면 즉시 400을 반환하며, 절대 수락되거나 조용히 무시되지 않습니다. 생략하거나 false를 전달하는 것만이 유효한 사용법입니다.

previous_response_id
string

⚠️ 이 엔드포인트는 상태 비저장입니다 — null이 아닌 값을 전달하면 즉시 400을 반환하며, 절대 수락되거나 조용히 무시되지 않습니다. 대화를 이어가려면 전체 기록을 input 배열에 담아 보내세요.

models
string[]

대체 모델 목록 — 순서대로 시도되며, 기본 모델의 후보 그룹이 모두 소진된 후에만 사용됩니다.

reasoning
object

추론 모델의 사고 제어 객체(예: {effort, max_tokens}). 그대로 업스트림으로 전달되며 기본값이 주입되지 않습니다.

reasoning_effort
string

reasoning.effort의 평면 축약 필드.

lowmediumhigh
thinking
object

Claude 확장 사고의 추가 토큰 예산(예: {type:"enabled", budget_tokens:2048}), max_output_tokens에 더해집니다 — 그대로 전달되며 기본값이 주입되지 않습니다.

enable_thinking
boolean

Qwen3/GLM 계열 모델의 사고 켜기/끄기 토글. 사용자의 선택을 그대로 전달합니다.

POST /api/v1/responses
curl https://bazaarlink.ai/api/v1/responses \
  -H "Authorization: Bearer $BAZAARLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.2",
    "input": "What is the capital of France?"
  }'
응답 예시

성공. 기본값(또는 stream: false)은 아래의 Response 객체를, stream: true면 Responses API의 SSE 이벤트 스트림을 반환합니다. model은 항상 요청한 이름을 그대로 반환합니다. output[]은 실제로 생성된 내용으로 구성됩니다: reasoning 콘텐츠가 있으면 type:"reasoning" 항목이 먼저 오고, 이어서 type:"message" 텍스트 항목(그 content의 annotations 배열에는 웹 검색 결과의 url_citation 같은 인용 출처가 포함될 수 있음) 또는 type:"function_call" 항목이 옵니다. usage는 기반이 되는 Chat Completions의 usage(input_tokens/output_tokens/total_tokens/cost)에서 변환되며, 추론 토큰이 사용된 경우 output_tokens_details.reasoning_tokens가 추가됩니다. tool_choice/tools/parallel_tool_calls는 요청에서 실제로 보낸 값을 그대로 반영합니다.

{
  "id": "resp_6f2a1c9d8e7b4a3f9c1d2e3f",
  "object": "response",
  "created_at": 1753500000,
  "completed_at": 1753500002,
  "status": "completed",
  "model": "openai/gpt-5.2",
  "output": [
    {
      "type": "reasoning",
      "id": "rs_1a2b3c4d5e6f7a8b9c0d1e2f",
      "status": "completed",
      "summary": [],
      "content": [
        {
          "type": "reasoning_text",
          "text": "The user is asking a simple geography fact..."
        }
      ]
    },
    {
      "type": "message",
      "id": "msg_9f8e7d6c5b4a3f2e1d0c9b8a",
      "role": "assistant",
      "status": "completed",
      "content": [
        {
          "type": "output_text",
          "text": "The capital of France is Paris.",
          "annotations": []
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 14,
    "output_tokens": 32,
    "total_tokens": 46,
    "cost": 0.00021,
    "output_tokens_details": {
      "reasoning_tokens": 18
    }
  },
  "error": null,
  "incomplete_details": null,
  "tool_choice": "auto",
  "tools": [],
  "truncation": "auto",
  "parallel_tool_calls": true,
  "metadata": {},
  "store": false
}
Support
Support
Hi! How can we help you?
Send a message and we'll get back to you soon.
응답 생성 — BazaarLink API