curl --request POST \
--url https://api.apimart.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-5", # 지원되는 모든 모델 ID로 교체 가능
"messages": [
{
"role": "system",
"content": "You are a professional AI assistant."
},
{
"role": "user",
"content": "Tell me about the history of artificial intelligence."
}
]
}'
import requests
url = "https://api.apimart.ai/v1/chat/completions"
payload = {
"model": "gpt-5", # 지원되는 모든 모델 ID로 교체 가능
"messages": [
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/chat/completions";
const payload = {
model: "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
messages: [
{
role: "system",
content: "You are a professional AI assistant."
},
{
role: "user",
content: "Tell me about the history of artificial intelligence."
}
]
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1/chat/completions"
payload := map[string]interface{}{
"model": "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
"messages": []map[string]string{
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다.",
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요.",
},
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
String payload = """
{
"model": "gpt-5",
"messages": [
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
$payload = [
"model" => "gpt-5",
"messages" => [
[
"role" => "system",
"content" => "You are a professional AI assistant."
],
[
"role" => "user",
"content" => "Tell me about the history of artificial intelligence."
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1/chat/completions")
# 지원되는 모든 모델 ID로 교체 가능
payload = {
model: "gpt-5",
messages: [
{
role: "system",
content: "You are a professional AI assistant."
},
{
role: "user",
content: "Tell me about the history of artificial intelligence."
}
]
}
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 = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://api.apimart.ai/v1/chat/completions")!
let payload: [String: Any] = [
"model": "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
"messages": [
[
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
],
[
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
]
]
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
var payload = @"{
""model"": ""gpt-5"",
""messages"": [
{
""role"": ""system"",
""content"": ""You are a professional AI assistant.""
},
{
""role"": ""user"",
""content"": ""Tell me about the history of artificial intelligence.""
}
]
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
const char *payload = "{"
"\"model\":\"gpt-5\","
"\"messages\":[{\"role\":\"system\",\"content\":\"You are a professional AI assistant.\"},{\"role\":\"user\",\"content\":\"Tell me about the history of artificial intelligence.\"}]"
"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://api.apimart.ai/v1/chat/completions"];
NSDictionary *payload = @{
@"model": @"gpt-5", // 지원되는 모든 모델 ID로 교체 가능
@"messages": @[
@{
@"role": @"system",
@"content": @"You are a professional AI assistant."
},
@{
@"role": @"user",
@"content": @"Tell me about the history of artificial intelligence."
}
]
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://api.apimart.ai/v1/chat/completions"
(* 지원되는 모든 모델 ID로 교체 가능 *)
let payload = {|{
"model": "gpt-5",
"messages": [
{
"role": "system",
"content": "You are a professional AI assistant."
},
{
"role": "user",
"content": "Tell me about the history of artificial intelligence."
}
]
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://api.apimart.ai/v1/chat/completions');
// 지원되는 모든 모델 ID로 교체 가능
final payload = {
'model': 'gpt-5',
'messages': [
{
'role': 'system',
'content': 'You are a professional AI assistant.'
},
{
'role': 'user',
'content': 'Tell me about the history of artificial intelligence.'
}
]
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://api.apimart.ai/v1/chat/completions"
# 지원되는 모든 모델 ID로 교체 가능
payload <- list(
model = "gpt-5",
messages = list(
list(
role = "system",
content = "You are a professional AI assistant."
),
list(
role = "user",
content = "Tell me about the history of artificial intelligence."
)
)
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"code": 200,
"data": {
"id": "chatcmpl-9876543210",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "인공지능(AI)의 역사는 1950년대로 거슬러 올라갑니다...\n\n1. **초기 시대 (1950s-1960s)**: 튜링 테스트의 제안이 AI 연구의 시작을 알렸습니다...\n\n2. **전문가 시스템 시대 (1970s-1980s)**: 규칙 기반 시스템이 의료 진단, 금융 분석 등의 분야에 적용되기 시작했습니다...\n\n3. **머신러닝의 부상 (1990s-2000s)**: 통계적 학습 방법이 점차 주류가 되었습니다...\n\n4. **딥러닝 혁명 (2010s-현재)**: 신경망 기술의 돌파구가 AI의 폭발적인 성장을 가져왔습니다..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 320,
"total_tokens": 348
}
}
}
{
"error": {
"code": 400,
"message": "잘못된 요청 매개변수",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "인증 실패, API 키를 확인해주세요",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "계정 잔액 부족, 충전이 필요합니다",
"type": "payment_required"
}
}
{
"error": {
"code": 403,
"message": "접근 금지, 이 리소스에 접근할 권한이 없습니다",
"type": "permission_error"
}
}
{
"error": {
"code": 429,
"message": "요청이 너무 많습니다, 나중에 다시 시도해주세요",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "내부 서버 오류, 나중에 다시 시도해주세요",
"type": "server_error"
}
}
{
"error": {
"code": 502,
"message": "잘못된 게이트웨이, 서비스 일시적으로 사용 불가",
"type": "bad_gateway"
}
}
텍스트 시리즈
범용 채팅 API (기본 스트리밍)
- 모든 텍스트 생성 모델을 지원하는 통합 채팅 API 인터페이스
- model 매개변수를 통해 다양한 AI 모델 선택 가능
- OpenAI Chat Completions API 형식과 호환
POST
/
v1
/
chat
/
completions
curl --request POST \
--url https://api.apimart.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-5", # 지원되는 모든 모델 ID로 교체 가능
"messages": [
{
"role": "system",
"content": "You are a professional AI assistant."
},
{
"role": "user",
"content": "Tell me about the history of artificial intelligence."
}
]
}'
import requests
url = "https://api.apimart.ai/v1/chat/completions"
payload = {
"model": "gpt-5", # 지원되는 모든 모델 ID로 교체 가능
"messages": [
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/chat/completions";
const payload = {
model: "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
messages: [
{
role: "system",
content: "You are a professional AI assistant."
},
{
role: "user",
content: "Tell me about the history of artificial intelligence."
}
]
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1/chat/completions"
payload := map[string]interface{}{
"model": "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
"messages": []map[string]string{
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다.",
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요.",
},
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
String payload = """
{
"model": "gpt-5",
"messages": [
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
$payload = [
"model" => "gpt-5",
"messages" => [
[
"role" => "system",
"content" => "You are a professional AI assistant."
],
[
"role" => "user",
"content" => "Tell me about the history of artificial intelligence."
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1/chat/completions")
# 지원되는 모든 모델 ID로 교체 가능
payload = {
model: "gpt-5",
messages: [
{
role: "system",
content: "You are a professional AI assistant."
},
{
role: "user",
content: "Tell me about the history of artificial intelligence."
}
]
}
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 = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://api.apimart.ai/v1/chat/completions")!
let payload: [String: Any] = [
"model": "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
"messages": [
[
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
],
[
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
]
]
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
var payload = @"{
""model"": ""gpt-5"",
""messages"": [
{
""role"": ""system"",
""content"": ""You are a professional AI assistant.""
},
{
""role"": ""user"",
""content"": ""Tell me about the history of artificial intelligence.""
}
]
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
const char *payload = "{"
"\"model\":\"gpt-5\","
"\"messages\":[{\"role\":\"system\",\"content\":\"You are a professional AI assistant.\"},{\"role\":\"user\",\"content\":\"Tell me about the history of artificial intelligence.\"}]"
"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://api.apimart.ai/v1/chat/completions"];
NSDictionary *payload = @{
@"model": @"gpt-5", // 지원되는 모든 모델 ID로 교체 가능
@"messages": @[
@{
@"role": @"system",
@"content": @"You are a professional AI assistant."
},
@{
@"role": @"user",
@"content": @"Tell me about the history of artificial intelligence."
}
]
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://api.apimart.ai/v1/chat/completions"
(* 지원되는 모든 모델 ID로 교체 가능 *)
let payload = {|{
"model": "gpt-5",
"messages": [
{
"role": "system",
"content": "You are a professional AI assistant."
},
{
"role": "user",
"content": "Tell me about the history of artificial intelligence."
}
]
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://api.apimart.ai/v1/chat/completions');
// 지원되는 모든 모델 ID로 교체 가능
final payload = {
'model': 'gpt-5',
'messages': [
{
'role': 'system',
'content': 'You are a professional AI assistant.'
},
{
'role': 'user',
'content': 'Tell me about the history of artificial intelligence.'
}
]
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://api.apimart.ai/v1/chat/completions"
# 지원되는 모든 모델 ID로 교체 가능
payload <- list(
model = "gpt-5",
messages = list(
list(
role = "system",
content = "You are a professional AI assistant."
),
list(
role = "user",
content = "Tell me about the history of artificial intelligence."
)
)
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"code": 200,
"data": {
"id": "chatcmpl-9876543210",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "인공지능(AI)의 역사는 1950년대로 거슬러 올라갑니다...\n\n1. **초기 시대 (1950s-1960s)**: 튜링 테스트의 제안이 AI 연구의 시작을 알렸습니다...\n\n2. **전문가 시스템 시대 (1970s-1980s)**: 규칙 기반 시스템이 의료 진단, 금융 분석 등의 분야에 적용되기 시작했습니다...\n\n3. **머신러닝의 부상 (1990s-2000s)**: 통계적 학습 방법이 점차 주류가 되었습니다...\n\n4. **딥러닝 혁명 (2010s-현재)**: 신경망 기술의 돌파구가 AI의 폭발적인 성장을 가져왔습니다..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 320,
"total_tokens": 348
}
}
}
{
"error": {
"code": 400,
"message": "잘못된 요청 매개변수",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "인증 실패, API 키를 확인해주세요",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "계정 잔액 부족, 충전이 필요합니다",
"type": "payment_required"
}
}
{
"error": {
"code": 403,
"message": "접근 금지, 이 리소스에 접근할 권한이 없습니다",
"type": "permission_error"
}
}
{
"error": {
"code": 429,
"message": "요청이 너무 많습니다, 나중에 다시 시도해주세요",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "내부 서버 오류, 나중에 다시 시도해주세요",
"type": "server_error"
}
}
{
"error": {
"code": 502,
"message": "잘못된 게이트웨이, 서비스 일시적으로 사용 불가",
"type": "bad_gateway"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-5", # 지원되는 모든 모델 ID로 교체 가능
"messages": [
{
"role": "system",
"content": "You are a professional AI assistant."
},
{
"role": "user",
"content": "Tell me about the history of artificial intelligence."
}
]
}'
import requests
url = "https://api.apimart.ai/v1/chat/completions"
payload = {
"model": "gpt-5", # 지원되는 모든 모델 ID로 교체 가능
"messages": [
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/chat/completions";
const payload = {
model: "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
messages: [
{
role: "system",
content: "You are a professional AI assistant."
},
{
role: "user",
content: "Tell me about the history of artificial intelligence."
}
]
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1/chat/completions"
payload := map[string]interface{}{
"model": "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
"messages": []map[string]string{
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다.",
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요.",
},
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
String payload = """
{
"model": "gpt-5",
"messages": [
{
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
},
{
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
$payload = [
"model" => "gpt-5",
"messages" => [
[
"role" => "system",
"content" => "You are a professional AI assistant."
],
[
"role" => "user",
"content" => "Tell me about the history of artificial intelligence."
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1/chat/completions")
# 지원되는 모든 모델 ID로 교체 가능
payload = {
model: "gpt-5",
messages: [
{
role: "system",
content: "You are a professional AI assistant."
},
{
role: "user",
content: "Tell me about the history of artificial intelligence."
}
]
}
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 = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://api.apimart.ai/v1/chat/completions")!
let payload: [String: Any] = [
"model": "gpt-5", // 지원되는 모든 모델 ID로 교체 가능
"messages": [
[
"role": "system",
"content": "당신은 전문 AI 어시스턴트입니다."
],
[
"role": "user",
"content": "인공지능의 역사에 대해 알려주세요."
]
]
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
var payload = @"{
""model"": ""gpt-5"",
""messages"": [
{
""role"": ""system"",
""content"": ""You are a professional AI assistant.""
},
{
""role"": ""user"",
""content"": ""Tell me about the history of artificial intelligence.""
}
]
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://api.apimart.ai/v1/chat/completions";
// 지원되는 모든 모델 ID로 교체 가능
const char *payload = "{"
"\"model\":\"gpt-5\","
"\"messages\":[{\"role\":\"system\",\"content\":\"You are a professional AI assistant.\"},{\"role\":\"user\",\"content\":\"Tell me about the history of artificial intelligence.\"}]"
"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://api.apimart.ai/v1/chat/completions"];
NSDictionary *payload = @{
@"model": @"gpt-5", // 지원되는 모든 모델 ID로 교체 가능
@"messages": @[
@{
@"role": @"system",
@"content": @"You are a professional AI assistant."
},
@{
@"role": @"user",
@"content": @"Tell me about the history of artificial intelligence."
}
]
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://api.apimart.ai/v1/chat/completions"
(* 지원되는 모든 모델 ID로 교체 가능 *)
let payload = {|{
"model": "gpt-5",
"messages": [
{
"role": "system",
"content": "You are a professional AI assistant."
},
{
"role": "user",
"content": "Tell me about the history of artificial intelligence."
}
]
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://api.apimart.ai/v1/chat/completions');
// 지원되는 모든 모델 ID로 교체 가능
final payload = {
'model': 'gpt-5',
'messages': [
{
'role': 'system',
'content': 'You are a professional AI assistant.'
},
{
'role': 'user',
'content': 'Tell me about the history of artificial intelligence.'
}
]
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json',
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://api.apimart.ai/v1/chat/completions"
# 지원되는 모든 모델 ID로 교체 가능
payload <- list(
model = "gpt-5",
messages = list(
list(
role = "system",
content = "You are a professional AI assistant."
),
list(
role = "user",
content = "Tell me about the history of artificial intelligence."
)
)
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"code": 200,
"data": {
"id": "chatcmpl-9876543210",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "인공지능(AI)의 역사는 1950년대로 거슬러 올라갑니다...\n\n1. **초기 시대 (1950s-1960s)**: 튜링 테스트의 제안이 AI 연구의 시작을 알렸습니다...\n\n2. **전문가 시스템 시대 (1970s-1980s)**: 규칙 기반 시스템이 의료 진단, 금융 분석 등의 분야에 적용되기 시작했습니다...\n\n3. **머신러닝의 부상 (1990s-2000s)**: 통계적 학습 방법이 점차 주류가 되었습니다...\n\n4. **딥러닝 혁명 (2010s-현재)**: 신경망 기술의 돌파구가 AI의 폭발적인 성장을 가져왔습니다..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 320,
"total_tokens": 348
}
}
}
{
"error": {
"code": 400,
"message": "잘못된 요청 매개변수",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "인증 실패, API 키를 확인해주세요",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "계정 잔액 부족, 충전이 필요합니다",
"type": "payment_required"
}
}
{
"error": {
"code": 403,
"message": "접근 금지, 이 리소스에 접근할 권한이 없습니다",
"type": "permission_error"
}
}
{
"error": {
"code": 429,
"message": "요청이 너무 많습니다, 나중에 다시 시도해주세요",
"type": "rate_limit_error"
}
}
{
"error": {
"code": 500,
"message": "내부 서버 오류, 나중에 다시 시도해주세요",
"type": "server_error"
}
}
{
"error": {
"code": 502,
"message": "잘못된 게이트웨이, 서비스 일시적으로 사용 불가",
"type": "bad_gateway"
}
}
인증
모든 API 엔드포인트는 Bearer Token 인증이 필요합니다API 키 받기:API 키 관리 페이지를 방문하여 API 키를 받으세요요청 헤더에 추가:
Authorization: Bearer YOUR_API_KEY
요청 본문
모델 이름지원되는 모델:
- OpenAI:
gpt-5,gpt-5.1,gpt-5-chat-latest,gpt-5-mini - Anthropic:
claude-opus-4-8,claude-opus-4-7,claude-opus-4-6,claude-sonnet-4-6,claude-opus-4-5-20251101 - Google:
gemini-3.5-flash,gemini-3.1-pro-preview,gemini-3-pro-preview,gemini-3-pro-preview-thinking,gemini-3-flash-preview,gemini-2.5-pro,gemini-2.5-flash,gemini-2.5-flash-lite - DeepSeek:
deepseek-v4-pro,deepseek-v4-flash,deepseek-v3.2,deepseek-v3.2-exp,deepseek-r1-250528,deepseek-v3-0324 - 더 많은 모델이 계속 추가되고 있습니다…
대화 메시지 목록메시지 배열입니다. 각 메시지는
예시:고급 사용법:시스템 프롬프트 추가 (AI에게 특정 역할 부여):다중 턴 대화 (컨텍스트 포함):역할 설명:
role 및 content 두 필드를 포함합니다.💡 빠른 입력(Try it 영역):- ”+ Add an item”을 클릭하여 메시지를 추가합니다
role에user(사용자 메시지),assistant(AI 응답) 또는system(시스템 프롬프트)을 입력합니다content에 말하고 싶은 내용을 입력합니다
표시 메시지 객체 구조
표시 메시지 객체 구조
[{"role": "user", "content": "안녕하세요, 자기소개 부탁드립니다"}]
[
{"role": "system", "content": "당신은 전문 Python 강사입니다"},
{"role": "user", "content": "프로그래밍 학습 방법을 알려주세요"}
]
[
{"role": "user", "content": "안녕하세요"},
{"role": "assistant", "content": "안녕하세요! 무엇을 도와드릴까요?"},
{"role": "user", "content": "AI에 대해 설명해주세요"}
]
user: 사용자 메시지 (대부분의 경우 이것을 사용)system: 시스템 프롬프트, AI의 동작과 역할 설정assistant: AI의 이전 응답, 대화 컨텍스트로 사용
출력 무작위성 제어, 범위 0-2
- 낮은 값 (예: 0.2)은 출력을 더 결정적으로 만듭니다
- 높은 값 (예: 1.8)은 출력을 더 무작위로 만듭니다
생성할 최대 토큰 수모델마다 최대 제한이 다르므로 특정 모델 문서를 참조하세요
스트리밍 출력 사용 여부
true: 스트리밍 응답 (SSE 형식)false: 한번에 완전한 응답
핵 샘플링 매개변수, 범위 0-1생성된 텍스트의 다양성을 제어, temperature와 함께 사용하는 것을 권장합니다기본값: 1.0
빈도 페널티, 범위 -2.0 ~ 2.0양수 값은 같은 단어를 반복할 가능성을 줄입니다기본값: 0
존재 페널티, 범위 -2.0 ~ 2.0양수 값은 새로운 주제에 대해 말할 가능성을 높입니다기본값: 0
중지 시퀀스최대 4개의 시퀀스, 해당 시퀀스를 만나면 생성이 중지됩니다
생성할 완료 개수기본값: 1⚠️ 주의: 순수한 숫자를 입력하세요(예:
1)。인용부호를 사용하면 오류가 발생합니다응답
응답의 고유 식별자
객체 유형,
chat.completion으로 고정생성 타임스탬프
실제 사용된 모델 이름
지원되는 모델
OpenAI Series
gpt-5- GPT-5 base modelgpt-5.1- GPT-5.1 enhanced versiongpt-5-chat-latest- GPT-5 latest chat versiongpt-5-mini- GPT-5 lightweight version, cost-effective
Anthropic Series
claude-opus-4-8- Claude Opus 4.8 flagship modelclaude-opus-4-7- Claude Opus 4.7 flagship modelclaude-opus-4-6- Claude Opus 4.6 flagship modelclaude-sonnet-4-6- Claude Sonnet 4.6 balanced versionclaude-opus-4-5-20251101- Claude Opus 4.5 model
Google Series
gemini-3.5-flash- Gemini 3.5 fast versiongemini-3.1-pro-preview- Gemini 3.1 Pro preview versiongemini-3-pro-preview- Gemini 3 Pro preview versiongemini-3-pro-preview-thinking- Gemini 3 Pro deep thinking preview versiongemini-3-flash-preview- Gemini 3 Flash preview versiongemini-2.5-pro- Gemini 2.5 professional versiongemini-2.5-flash- Gemini 2.5 fast versiongemini-2.5-flash-lite- Gemini 2.5 ultra-lightweight version
DeepSeek Series
deepseek-v4-pro- DeepSeek V4 professional versiondeepseek-v4-flash- DeepSeek V4 fast versiondeepseek-v3.2- DeepSeek V3.2 standard versiondeepseek-v3.2-exp- DeepSeek V3.2 experimental versiondeepseek-r1-250528- DeepSeek R1 reasoning modeldeepseek-v3-0324- DeepSeek V3 standard version
사용 예제
기본 대화
{
"model": "gpt-5",
"messages": [
{"role": "user", "content": "안녕하세요"}
]
}
시스템 프롬프트
{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "system", "content": "당신은 전문 Python 프로그래밍 튜터입니다"},
{"role": "user", "content": "리스트 컴프리헨션을 어떻게 사용하나요?"}
]
}
다중 턴 대화
{
"model": "gemini-2.5-flash",
"messages": [
{"role": "user", "content": "머신러닝이 무엇인가요?"},
{"role": "assistant", "content": "머신러닝은 인공지능의 한 분야입니다..."},
{"role": "user", "content": "예를 들어 설명해주시겠어요?"}
]
}
스트리밍 출력
{
"model": "gpt-5",
"messages": [
{"role": "user", "content": "봄에 관한 시를 써주세요"}
],
"stream": true
}
⌘I