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());
import 'dart:convert';import 'package:http/http.dart' as http;void main() async { final response = await http.post( Uri.parse('https://aireiter.com/api/v1/responses'), headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: jsonEncode({ 'model': 'claude-sonnet-4-5-20250929', 'input': 'Write a one-sentence bedtime story about a unicorn.', 'stream': false, }), ); print(response.body);}
library(httr)library(jsonlite)response <- POST( "https://aireiter.com/api/v1/responses", add_headers( Authorization = "Bearer YOUR_API_KEY", `Content-Type` = "application/json" ), body = toJSON(list( model = "claude-sonnet-4-5-20250929", input = "Write a one-sentence bedtime story about a unicorn.", stream = FALSE ), auto_unbox = TRUE))content(response, "text")
{ "id": "resp_AbCdEfGhIjKlMnOpQrSt0123", "object": "response", "created_at": 1742000000.123, "status": "completed", "model": "claude-sonnet-4-5-20250929", "task_id": "task_xyz123", "output": [ { "id": "msg_AbCdEfGhIjKl0123", "type": "message", "role": "assistant", "status": "completed", "content": [ { "type": "output_text", "text": "The little unicorn tiptoed through the moonlit meadow, leaving a trail of shimmering stardust as she galloped home to her cozy cloud.", "annotations": [] } ] } ], "output_text": "The little unicorn tiptoed through the moonlit meadow, leaving a trail of shimmering stardust as she galloped home to her cozy cloud.", "usage": { "input_tokens": 20, "output_tokens": 35, "total_tokens": 55, "output_tokens_details": { "reasoning_tokens": 0 } }}
{ "id": "resp_AbCdEfGhIjKlMnOpQrSt0789", "object": "response", "created_at": 1742000200.789, "status": "incomplete", "model": "claude-sonnet-4-5-20250929", "task_id": "task_def789", "output": [ { "id": "msg_AbCdEfGhIjKl0789", "type": "message", "role": "assistant", "status": "completed", "content": [ { "type": "output_text", "text": "Here is a very long story that was cut off due to max_output_tokens...", "annotations": [] } ] } ], "output_text": "Here is a very long story that was cut off due to max_output_tokens...", "incomplete_details": { "reason": "max_output_tokens" }, "usage": { "input_tokens": 15, "output_tokens": 256, "total_tokens": 271, "output_tokens_details": { "reasoning_tokens": 0 } }}
Compatible with OpenAI Responses API protocol, supporting text conversation, image understanding, tool invocation, structured output, and reasoning mode
Mainly used by tools such as Codex CLI and 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());
import 'dart:convert';import 'package:http/http.dart' as http;void main() async { final response = await http.post( Uri.parse('https://aireiter.com/api/v1/responses'), headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: jsonEncode({ 'model': 'claude-sonnet-4-5-20250929', 'input': 'Write a one-sentence bedtime story about a unicorn.', 'stream': false, }), ); print(response.body);}
library(httr)library(jsonlite)response <- POST( "https://aireiter.com/api/v1/responses", add_headers( Authorization = "Bearer YOUR_API_KEY", `Content-Type` = "application/json" ), body = toJSON(list( model = "claude-sonnet-4-5-20250929", input = "Write a one-sentence bedtime story about a unicorn.", stream = FALSE ), auto_unbox = TRUE))content(response, "text")
{ "id": "resp_AbCdEfGhIjKlMnOpQrSt0123", "object": "response", "created_at": 1742000000.123, "status": "completed", "model": "claude-sonnet-4-5-20250929", "task_id": "task_xyz123", "output": [ { "id": "msg_AbCdEfGhIjKl0123", "type": "message", "role": "assistant", "status": "completed", "content": [ { "type": "output_text", "text": "The little unicorn tiptoed through the moonlit meadow, leaving a trail of shimmering stardust as she galloped home to her cozy cloud.", "annotations": [] } ] } ], "output_text": "The little unicorn tiptoed through the moonlit meadow, leaving a trail of shimmering stardust as she galloped home to her cozy cloud.", "usage": { "input_tokens": 20, "output_tokens": 35, "total_tokens": 55, "output_tokens_details": { "reasoning_tokens": 0 } }}
{ "id": "resp_AbCdEfGhIjKlMnOpQrSt0789", "object": "response", "created_at": 1742000200.789, "status": "incomplete", "model": "claude-sonnet-4-5-20250929", "task_id": "task_def789", "output": [ { "id": "msg_AbCdEfGhIjKl0789", "type": "message", "role": "assistant", "status": "completed", "content": [ { "type": "output_text", "text": "Here is a very long story that was cut off due to max_output_tokens...", "annotations": [] } ] } ], "output_text": "Here is a very long story that was cut off due to max_output_tokens...", "incomplete_details": { "reason": "max_output_tokens" }, "usage": { "input_tokens": 15, "output_tokens": 256, "total_tokens": 271, "output_tokens_details": { "reasoning_tokens": 0 } }}
List of input contentsAn array of inputs, each containing the fields role and content. Supports multi-turn conversations and multi-modal content (text + images).
Maximum number of tokens to generate in the reply. If exceeded, the response status will be "incomplete", and incomplete_details.reason will be "max_output_tokens".
Sampling temperature, range 0 to 2. Higher values result in more random output, lower values more deterministic. Not recommended to adjust temperature and top_p simultaneously.
List of tools available for the model to call. Currently, only type: "function" is supported; built-in tools like web_search, file_search, computer_use are not supported.
Platform extension field. Billing task ID for this call, used for reconciliation and consumption queries.Note:
Non-streaming: task_id is located directly at the top level of the response JSON
Streaming: task_id is nested inside the response object of response.created (first event) and response.completed (last event). It needs to be parsed from the raw SSE event. The OpenAI SDK streaming interface does not automatically expose this field
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());
import 'dart:convert';import 'package:http/http.dart' as http;void main() async { final response = await http.post( Uri.parse('https://aireiter.com/api/v1/responses'), headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json', }, body: jsonEncode({ 'model': 'claude-sonnet-4-5-20250929', 'input': 'Write a one-sentence bedtime story about a unicorn.', 'stream': false, }), ); print(response.body);}
library(httr)library(jsonlite)response <- POST( "https://aireiter.com/api/v1/responses", add_headers( Authorization = "Bearer YOUR_API_KEY", `Content-Type` = "application/json" ), body = toJSON(list( model = "claude-sonnet-4-5-20250929", input = "Write a one-sentence bedtime story about a unicorn.", stream = FALSE ), auto_unbox = TRUE))content(response, "text")
{ "id": "resp_AbCdEfGhIjKlMnOpQrSt0123", "object": "response", "created_at": 1742000000.123, "status": "completed", "model": "claude-sonnet-4-5-20250929", "task_id": "task_xyz123", "output": [ { "id": "msg_AbCdEfGhIjKl0123", "type": "message", "role": "assistant", "status": "completed", "content": [ { "type": "output_text", "text": "The little unicorn tiptoed through the moonlit meadow, leaving a trail of shimmering stardust as she galloped home to her cozy cloud.", "annotations": [] } ] } ], "output_text": "The little unicorn tiptoed through the moonlit meadow, leaving a trail of shimmering stardust as she galloped home to her cozy cloud.", "usage": { "input_tokens": 20, "output_tokens": 35, "total_tokens": 55, "output_tokens_details": { "reasoning_tokens": 0 } }}
{ "id": "resp_AbCdEfGhIjKlMnOpQrSt0789", "object": "response", "created_at": 1742000200.789, "status": "incomplete", "model": "claude-sonnet-4-5-20250929", "task_id": "task_def789", "output": [ { "id": "msg_AbCdEfGhIjKl0789", "type": "message", "role": "assistant", "status": "completed", "content": [ { "type": "output_text", "text": "Here is a very long story that was cut off due to max_output_tokens...", "annotations": [] } ] } ], "output_text": "Here is a very long story that was cut off due to max_output_tokens...", "incomplete_details": { "reason": "max_output_tokens" }, "usage": { "input_tokens": 15, "output_tokens": 256, "total_tokens": 271, "output_tokens_details": { "reasoning_tokens": 0 } }}
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", # Model supporting reasoning 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 is currently ineffective; you need to manually concatenate historical messages in input:
# First turnresponse1 = client.responses.create( model="claude-sonnet-4-5-20250929", input="My name is Bob.",)# Second turn: manually concatenate historyresponse2 = 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."
Streaming by Default: The stream parameter defaults to true. To receive a non-streaming response, explicitly pass "stream": false.
Insufficient Credits: An HTTP 402 is returned when the balance is insufficient. Please recharge and try again.
Limited Support for text.format: The underlying provider currently has limited support for structured output—models may still output Markdown code blocks instead of pure JSON in json_object mode; Schema constraints may not be enforced in json_schema mode. For structured output, it is recommended to clearly describe the required format in instructions or input.
Tool Parameters: The parameters field must be a valid JSON Schema, and the required array specifies which parameters are mandatory.