OpenAI responses
curl --request POST \
--url https://maas.apigo.ai/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-4.1",
"input": "<string>",
"instructions": "<string>",
"max_output_tokens": 123
}
'import requests
url = "https://maas.apigo.ai/v1/responses"
payload = {
"model": "gpt-4.1",
"input": "<string>",
"instructions": "<string>",
"max_output_tokens": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-4.1',
input: '<string>',
instructions: '<string>',
max_output_tokens: 123
})
};
fetch('https://maas.apigo.ai/v1/responses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://maas.apigo.ai/v1/responses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-4.1',
'input' => '<string>',
'instructions' => '<string>',
'max_output_tokens' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://maas.apigo.ai/v1/responses"
payload := strings.NewReader("{\n \"model\": \"gpt-4.1\",\n \"input\": \"<string>\",\n \"instructions\": \"<string>\",\n \"max_output_tokens\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://maas.apigo.ai/v1/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-4.1\",\n \"input\": \"<string>\",\n \"instructions\": \"<string>\",\n \"max_output_tokens\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://maas.apigo.ai/v1/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-4.1\",\n \"input\": \"<string>\",\n \"instructions\": \"<string>\",\n \"max_output_tokens\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "response",
"status": "<string>",
"output_text": "<string>",
"output": [
{}
],
"usage": {
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123
}
}{
"error": 123,
"message": "<string>"
}Text
/v1/responses
텍스트 생성, 다중 모드 입력 및 구조화된 출력을 위한 통합 OpenAI 호환 응답 엔드포인트입니다.
POST
/
v1
/
responses
OpenAI responses
curl --request POST \
--url https://maas.apigo.ai/v1/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-4.1",
"input": "<string>",
"instructions": "<string>",
"max_output_tokens": 123
}
'import requests
url = "https://maas.apigo.ai/v1/responses"
payload = {
"model": "gpt-4.1",
"input": "<string>",
"instructions": "<string>",
"max_output_tokens": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-4.1',
input: '<string>',
instructions: '<string>',
max_output_tokens: 123
})
};
fetch('https://maas.apigo.ai/v1/responses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://maas.apigo.ai/v1/responses",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-4.1',
'input' => '<string>',
'instructions' => '<string>',
'max_output_tokens' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://maas.apigo.ai/v1/responses"
payload := strings.NewReader("{\n \"model\": \"gpt-4.1\",\n \"input\": \"<string>\",\n \"instructions\": \"<string>\",\n \"max_output_tokens\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://maas.apigo.ai/v1/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-4.1\",\n \"input\": \"<string>\",\n \"instructions\": \"<string>\",\n \"max_output_tokens\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://maas.apigo.ai/v1/responses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-4.1\",\n \"input\": \"<string>\",\n \"instructions\": \"<string>\",\n \"max_output_tokens\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"object": "response",
"status": "<string>",
"output_text": "<string>",
"output": [
{}
],
"usage": {
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123
}
}{
"error": 123,
"message": "<string>"
}텍스트 생성, 구조화된 출력, 도구 호출 및 다중 모드 입력을 위한 통합 응답 개체를 만듭니다.
chat.completions와 비교할 때 이 엔드포인트는 텍스트, 이미지, 추론 제어 및 도구가 모두 하나의 응답 모델을 공유하므로 새로운 통합에 더 적합합니다. 지원되는 필드는 여전히 모델에 따라 다릅니다.
통합 지침
Authorization: Bearer {API_KEY}로 인증- 텍스트, JSON 출력, 도구 호출 및 향후 다중 모드 워크플로를 위한 하나의 표면을 원하는 경우 이 엔드포인트를 선호합니다.
- 전체 기록을 다시 전송하지 않고 대화를 계속하려면
previous_response_id를 사용하세요. - 추론 모델 워크플로의 경우 서버 측 게이트웨이에서
reasoning,max_output_tokens및tools를 중앙 집중화합니다. - 스트리밍 클라이언트는 하나의 최종 페이로드를 기다리는 대신 증분 이벤트를 소비해야 합니다.
요청 하이라이트
input는 기본 입력 필드이며 텍스트 또는 다중 모드 콘텐츠 블록을 전달할 수 있습니다.model는 응답의 대상 모델을 선택합니다.previous_response_id는 대화 전반에 걸쳐 차례를 연결하는 주요 방법입니다.- 구조화된 출력의 경우 명시적인 JSON 형식 요구 사항을 선언하고 서버 측 유효성을 검사합니다.
- 도구 사용의 경우
tools를 전달하고 도구 호출 출력을 명시적으로 처리합니다.
응답 하이라이트
output_text에서 간단한 텍스트를 읽을 수 있는 경우가 많습니다.output[]에서 더 풍부한 결과를 읽어야 합니다.- 도구 호출, 추론 추적 및 다중 모드 출력은 모두 동일한 응답 개체를 공유합니다.
- 사용량 및 상태 메타데이터는 텍스트만으로 추론하기보다는 응답 개체에서 읽어야 합니다.
인증
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
본문
application/json
