curl -X POST https://aireiter.com/api/v1/responses \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": true }'
from openai import OpenAIclient = OpenAI( api_key="YOUR_API_KEY", base_url="https://aireiter.com/api/v1")response = client.responses.create( model="claude-sonnet-4-5-20250929", input="Write a one-sentence bedtime story about a unicorn.")print(response.output_text)
import OpenAI from "openai";const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://aireiter.com/api/v1",});const response = await client.responses.create({ model: "claude-sonnet-4-5-20250929", input: "Write a one-sentence bedtime story about a unicorn.",});console.log(response.output_text);
package mainimport ( "bytes" "encoding/json" "fmt" "net/http")func main() { payload := map[string]interface{}{ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": false, } body, _ := json.Marshal(payload) req, _ := http.NewRequest("POST", "https://aireiter.com/api/v1/responses", bytes.NewBuffer(body)) req.Header.Set("Authorization", "Bearer YOUR_API_KEY") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() var result map[string]interface{} json.NewDecoder(resp.Body).Decode(&result) fmt.Println(result)}
import com.fasterxml.jackson.databind.ObjectMapper;import java.net.URI;import java.net.http.*;import java.util.Map;public class ResponsesExample { public static void main(String[] args) throws Exception { var payload = Map.of( "model", "claude-sonnet-4-5-20250929", "input", "Write a one-sentence bedtime story about a unicorn.", "stream", false ); var body = new ObjectMapper().writeValueAsString(payload); var request = HttpRequest.newBuilder() .uri(URI.create("https://aireiter.com/api/v1/responses")) .header("Authorization", "Bearer YOUR_API_KEY") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)) .build(); var response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }}
<?php$client = new GuzzleHttp\Client();$response = $client->post('https://aireiter.com/api/v1/responses', [ 'headers' => [ 'Authorization' => 'Bearer YOUR_API_KEY', 'Content-Type' => 'application/json', ], 'json' => [ 'model' => 'claude-sonnet-4-5-20250929', 'input' => 'Write a one-sentence bedtime story about a unicorn.', 'stream' => false, ],]);echo $response->getBody();
require 'net/http'require 'json'uri = URI('https://aireiter.com/api/v1/responses')req = Net::HTTP::Post.new(uri, { 'Authorization' => 'Bearer YOUR_API_KEY', 'Content-Type' => 'application/json'})req.body = { model: 'claude-sonnet-4-5-20250929', input: 'Write a one-sentence bedtime story about a unicorn.', stream: false}.to_jsonres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }puts res.body
import Foundationlet payload: [String: Any] = [ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": false]var request = URLRequest(url: URL(string: "https://aireiter.com/api/v1/responses")!)request.httpMethod = "POST"request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try! JSONSerialization.data(withJSONObject: payload)URLSession.shared.dataTask(with: request) { data, _, _ in if let data = data { print(String(data: data, encoding: .utf8)!) }}.resume()
using System.Net.Http;using System.Net.Http.Json;var client = new HttpClient();client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");var response = await client.PostAsJsonAsync("https://aireiter.com/api/v1/responses", new { model = "claude-sonnet-4-5-20250929", input = "Write a one-sentence bedtime story about a unicorn.", stream = false});Console.WriteLine(await response.Content.ReadAsStringAsync());
OpenAI Responses API 프로토콜과 호환되며, 텍스트 대화, 이미지 이해, 도구 호출, 구조화 출력 및 추론 모드를 지원합니다.
주로 Codex CLI 및 AI SDK와 같은 도구에서 사용됩니다.
POST
/
api
/
v1
/
responses
curl -X POST https://aireiter.com/api/v1/responses \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": true }'
from openai import OpenAIclient = OpenAI( api_key="YOUR_API_KEY", base_url="https://aireiter.com/api/v1")response = client.responses.create( model="claude-sonnet-4-5-20250929", input="Write a one-sentence bedtime story about a unicorn.")print(response.output_text)
import OpenAI from "openai";const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://aireiter.com/api/v1",});const response = await client.responses.create({ model: "claude-sonnet-4-5-20250929", input: "Write a one-sentence bedtime story about a unicorn.",});console.log(response.output_text);
package mainimport ( "bytes" "encoding/json" "fmt" "net/http")func main() { payload := map[string]interface{}{ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": false, } body, _ := json.Marshal(payload) req, _ := http.NewRequest("POST", "https://aireiter.com/api/v1/responses", bytes.NewBuffer(body)) req.Header.Set("Authorization", "Bearer YOUR_API_KEY") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() var result map[string]interface{} json.NewDecoder(resp.Body).Decode(&result) fmt.Println(result)}
import com.fasterxml.jackson.databind.ObjectMapper;import java.net.URI;import java.net.http.*;import java.util.Map;public class ResponsesExample { public static void main(String[] args) throws Exception { var payload = Map.of( "model", "claude-sonnet-4-5-20250929", "input", "Write a one-sentence bedtime story about a unicorn.", "stream", false ); var body = new ObjectMapper().writeValueAsString(payload); var request = HttpRequest.newBuilder() .uri(URI.create("https://aireiter.com/api/v1/responses")) .header("Authorization", "Bearer YOUR_API_KEY") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)) .build(); var response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }}
<?php$client = new GuzzleHttp\Client();$response = $client->post('https://aireiter.com/api/v1/responses', [ 'headers' => [ 'Authorization' => 'Bearer YOUR_API_KEY', 'Content-Type' => 'application/json', ], 'json' => [ 'model' => 'claude-sonnet-4-5-20250929', 'input' => 'Write a one-sentence bedtime story about a unicorn.', 'stream' => false, ],]);echo $response->getBody();
require 'net/http'require 'json'uri = URI('https://aireiter.com/api/v1/responses')req = Net::HTTP::Post.new(uri, { 'Authorization' => 'Bearer YOUR_API_KEY', 'Content-Type' => 'application/json'})req.body = { model: 'claude-sonnet-4-5-20250929', input: 'Write a one-sentence bedtime story about a unicorn.', stream: false}.to_jsonres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }puts res.body
import Foundationlet payload: [String: Any] = [ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": false]var request = URLRequest(url: URL(string: "https://aireiter.com/api/v1/responses")!)request.httpMethod = "POST"request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try! JSONSerialization.data(withJSONObject: payload)URLSession.shared.dataTask(with: request) { data, _, _ in if let data = data { print(String(data: data, encoding: .utf8)!) }}.resume()
using System.Net.Http;using System.Net.Http.Json;var client = new HttpClient();client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");var response = await client.PostAsJsonAsync("https://aireiter.com/api/v1/responses", new { model = "claude-sonnet-4-5-20250929", input = "Write a one-sentence bedtime story about a unicorn.", stream = false});Console.WriteLine(await response.Content.ReadAsStringAsync());
curl -X POST https://aireiter.com/api/v1/responses \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": true }'
from openai import OpenAIclient = OpenAI( api_key="YOUR_API_KEY", base_url="https://aireiter.com/api/v1")response = client.responses.create( model="claude-sonnet-4-5-20250929", input="Write a one-sentence bedtime story about a unicorn.")print(response.output_text)
import OpenAI from "openai";const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://aireiter.com/api/v1",});const response = await client.responses.create({ model: "claude-sonnet-4-5-20250929", input: "Write a one-sentence bedtime story about a unicorn.",});console.log(response.output_text);
package mainimport ( "bytes" "encoding/json" "fmt" "net/http")func main() { payload := map[string]interface{}{ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": false, } body, _ := json.Marshal(payload) req, _ := http.NewRequest("POST", "https://aireiter.com/api/v1/responses", bytes.NewBuffer(body)) req.Header.Set("Authorization", "Bearer YOUR_API_KEY") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) defer resp.Body.Close() var result map[string]interface{} json.NewDecoder(resp.Body).Decode(&result) fmt.Println(result)}
import com.fasterxml.jackson.databind.ObjectMapper;import java.net.URI;import java.net.http.*;import java.util.Map;public class ResponsesExample { public static void main(String[] args) throws Exception { var payload = Map.of( "model", "claude-sonnet-4-5-20250929", "input", "Write a one-sentence bedtime story about a unicorn.", "stream", false ); var body = new ObjectMapper().writeValueAsString(payload); var request = HttpRequest.newBuilder() .uri(URI.create("https://aireiter.com/api/v1/responses")) .header("Authorization", "Bearer YOUR_API_KEY") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)) .build(); var response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }}
<?php$client = new GuzzleHttp\Client();$response = $client->post('https://aireiter.com/api/v1/responses', [ 'headers' => [ 'Authorization' => 'Bearer YOUR_API_KEY', 'Content-Type' => 'application/json', ], 'json' => [ 'model' => 'claude-sonnet-4-5-20250929', 'input' => 'Write a one-sentence bedtime story about a unicorn.', 'stream' => false, ],]);echo $response->getBody();
require 'net/http'require 'json'uri = URI('https://aireiter.com/api/v1/responses')req = Net::HTTP::Post.new(uri, { 'Authorization' => 'Bearer YOUR_API_KEY', 'Content-Type' => 'application/json'})req.body = { model: 'claude-sonnet-4-5-20250929', input: 'Write a one-sentence bedtime story about a unicorn.', stream: false}.to_jsonres = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }puts res.body
import Foundationlet payload: [String: Any] = [ "model": "claude-sonnet-4-5-20250929", "input": "Write a one-sentence bedtime story about a unicorn.", "stream": false]var request = URLRequest(url: URL(string: "https://aireiter.com/api/v1/responses")!)request.httpMethod = "POST"request.setValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try! JSONSerialization.data(withJSONObject: payload)URLSession.shared.dataTask(with: request) { data, _, _ in if let data = data { print(String(data: data, encoding: .utf8)!) }}.resume()
using System.Net.Http;using System.Net.Http.Json;var client = new HttpClient();client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");var response = await client.PostAsJsonAsync("https://aireiter.com/api/v1/responses", new { model = "claude-sonnet-4-5-20250929", input = "Write a one-sentence bedtime story about a unicorn.", stream = false});Console.WriteLine(await response.Content.ReadAsStringAsync());
from openai import OpenAIclient = OpenAI( api_key="YOUR_API_KEY", base_url="https://aireiter.com/api/v1")response = client.responses.create( model="claude-sonnet-4-5-20250929", instructions="You are a helpful coding assistant.", input="How do I reverse a string in Python?",)print(response.output_text)
response = client.responses.create( model="claude-3-7-sonnet-20250219", # 추론이 지원되는 모델 input="Solve: If x + y = 10 and x * y = 21, what are x and y?", reasoning={"effort": "high"},)print(response.output_text)
previous_response_id는 현재 작동하지 않으며, 히스토리 메시지를 input에 직접 연결해야 합니다:
# 첫 번째 라운드response1 = client.responses.create( model="claude-sonnet-4-5-20250929", input="My name is Bob.",)# 두 번째 라운드: 수동으로 히스토리 메시지 연결response2 = client.responses.create( model="claude-sonnet-4-5-20250929", input=[ {"role": "user", "content": "My name is Bob."}, {"role": "assistant", "content": response1.output_text}, {"role": "user", "content": "What's my name?"}, ],)print(response2.output_text) # "Your name is Bob."
기본값은 스트리밍:stream 매개변수의 기본값은 true입니다. 비스트리밍 응답이 필요할 경우 명시적으로 "stream": false를 전달해야 합니다.
포인트 부족:잔액이 부족할 경우 HTTP 402가 반환되며, 충전 후 다시 시도하시기 바랍니다.
text.format 지원 제한:현재 기본 공급자는 구조화된 출력 지원이 제한적입니다 — json_object 모드에서는 모델이 여전히 순수 JSON 대신 Markdown 코드 블록을 출력할 수 있으며, json_schema 모드에서는 스키마 제약이 준수되지 않을 수 있습니다. 구조화된 출력을 원할 경우 instructions 또는 input에 원하는 형식을 명확하게 기술하시기 바랍니다.