Responses
Endpoint
POST https://llm.siraya.ai/v1/responses
Basic message
Use the OpenResponses API to generate text responses from AI models. The input array contains message objects with a role (user or assistant) and content field. The model processes the input and returns a response with the generated text.
Example request
import os
import requests
import json
url = "https://llm.siraya.ai/v1/responses"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <API_KEY>",
}
data = {
"model": "deepseek-v3.2",
"input": [
{
"type": "message",
"role": "user",
"content": "Why do developers prefer dark mode?",
}
],
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result)
const response = await fetch('https://llm.siraya.ai/v1/responses', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <API_KEY>`,
},
body: JSON.stringify({
model: 'deepseek-v3.2',
input: [
{
type: 'message',
role: 'user',
content: 'Why do developers prefer dark mode?',
},
],
}),
});
const result = await response.json();
Response format
The response includes the generated text in the output array, along with token usage information.
{
'id': 'resp_8798d36152fc4397984c97aa52015efd',
'object': 'response',
'created_at': 1774619524,
'status': 'completed',
'error': None,
'incomplete_details': None,
'instructions': None,
'max_output_tokens': None,
'model': 'deepseek-v3.2',
'output': [
{
'type': 'message',
'id': 'msg_1774619544978256361',
'status': 'completed',
'role': 'assistant',
'content': [
{
'type': 'output_text',
'text': 'Developers overwhelmingly prefer dark mode for several practical, aesthetic, and physiological reasons...'
}
]
}
],
'usage': {
'input_tokens': 11,
'output_tokens': 705,
'total_tokens': 716
},
'temperature': None,
'top_p': None,
'tool_choice': None,
'tools': None,
'metadata': None
}
Image Input
The OpenResponses API supports sending images alongside text for vision-capable models to analyze. Include an image_url object in your message content array with either a public URL or a base64-encoded data URI. The detail parameter controls the resolution used for analysis.
import os
import requests
import json
url = "https://llm.siraya.ai/v1/responses"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <API_KEY>",
}
data = {
"model": "gpt-4o-mini",
"input": [
{
"type": "message",
"role": "user",
"content": [
{"type": "text", "text": "Describe this image in detail."},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg",
"detail": "auto"
},
},
],
},
],
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result)
const response = await fetch('https://llm.siraya.ai/v1/responses', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <API_KEY>`,
},
body: JSON.stringify({
model: 'gpt-4o-mini',
input: [
{
type: 'message',
role: 'user',
content: [
{ type: 'text', text: 'Describe this image in detail.' },
{
type: 'image_url',
image_url: { url: 'https://example.com/image.jpg', detail: 'auto' },
},
],
},
],
}),
});
Base64-encoded images
You can also use base64-encoded images:
Detail parameter
The detail parameter controls image resolution:
auto- Let the model decide the appropriate resolutionlow- Use lower resolution for faster processinghigh- Use higher resolution for more detailed analysis
Compatible with Gemini series models
Example request
import os
import requests
import json
url = "https://llm.siraya.ai/v1/responses"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <API_KEY>",
}
data = {
"model": "gemini-2.5-pro",
"input": [
{
"type": "message",
"role": "user",
"content": "Why do developers prefer dark mode?",
}
],
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result)
Response format
{
'id': 'resp_chatcmpl-vertexai-abcdefghijklmnopqrstuvwx',
'object': 'response',
'created_at': 1774707726,
'status': 'completed',
'error': None,
'incomplete_details': None,
'instructions': None,
'max_output_tokens': None,
'model': 'gemini-2.5-pro',
'output': [
{
'type': 'message',
'id': 'msg_1774707726658240006',
'status': 'completed',
'role': 'assistant',
'content': [
{
'type': 'output_text',
'text': 'That\'s an excellent and very common observation. Developers prefer dark mode for a mix of practical benefits, historical context, and personal preference...'
}
]
}
],
'usage': {
'input_tokens': 7,
'output_tokens': 1373,
'total_tokens': 1380,
'output_tokens_details': {
'reasoning_tokens': 70
}
},
'temperature': None,
'top_p': None,
'tool_choice': None,
'tools': None,
'metadata': None
}
Compatible with Claude series models
Example request
import os
import requests
import json
url = "https://llm.siraya.ai/v1/responses"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <API_KEY>",
}
data = {
"model": "claude-sonnet-4.5",
"input": [
{
"type": "message",
"role": "user",
"content": "Why do developers prefer dark mode?",
}
],
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result)
Response format
{
'id': 'resp_chatcmpl-bedrock-dZ9zDpYG2UNxTELmVNlk9j8M',
'object': 'response',
'created_at': 1774707822,
'status': 'completed',
'error': None,
'incomplete_details': None,
'instructions': None,
'max_output_tokens': None,
'model': 'claude-sonnet-4.5',
'output': [
{
'type': 'message',
'id': 'msg_1774707822273046033',
'status': 'completed',
'role': 'assistant',
'content': [
{
'type': 'output_text',
'text': 'Developers gravitate toward dark mode for several practical reasons: reduced eye strain, better focus with syntax highlighting, battery savings on OLED screens...'
}
]
}
],
'usage': {
'input_tokens': 14,
'output_tokens': 279,
'total_tokens': 293
},
'temperature': None,
'top_p': None,
'tool_choice': None,
'tools': None,
'metadata': None
}