메인 콘텐츠로 건너뛰기
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"
  }
}

인증

Authorization
string
필수
모든 API 엔드포인트는 Bearer Token 인증이 필요합니다API 키 받기:API 키 관리 페이지를 방문하여 API 키를 받으세요요청 헤더에 추가:
Authorization: Bearer YOUR_API_KEY

요청 본문

model
string
기본값:"gpt-5"
필수
모델 이름지원되는 모델:
  • 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
  • 더 많은 모델이 계속 추가되고 있습니다…
messages
array
필수
대화 메시지 목록메시지 배열입니다. 각 메시지는 rolecontent 두 필드를 포함합니다.💡 빠른 입력(Try it 영역):
  1. ”+ Add an item”을 클릭하여 메시지를 추가합니다
  2. roleuser(사용자 메시지), assistant(AI 응답) 또는 system(시스템 프롬프트)을 입력합니다
  3. content에 말하고 싶은 내용을 입력합니다
예시:
[{"role": "user", "content": "안녕하세요, 자기소개 부탁드립니다"}]
고급 사용법:시스템 프롬프트 추가 (AI에게 특정 역할 부여):
[
  {"role": "system", "content": "당신은 전문 Python 강사입니다"},
  {"role": "user", "content": "프로그래밍 학습 방법을 알려주세요"}
]
다중 턴 대화 (컨텍스트 포함):
[
  {"role": "user", "content": "안녕하세요"},
  {"role": "assistant", "content": "안녕하세요! 무엇을 도와드릴까요?"},
  {"role": "user", "content": "AI에 대해 설명해주세요"}
]
역할 설명:
  • user: 사용자 메시지 (대부분의 경우 이것을 사용)
  • system: 시스템 프롬프트, AI의 동작과 역할 설정
  • assistant: AI의 이전 응답, 대화 컨텍스트로 사용
temperature
number
출력 무작위성 제어, 범위 0-2
  • 낮은 값 (예: 0.2)은 출력을 더 결정적으로 만듭니다
  • 높은 값 (예: 1.8)은 출력을 더 무작위로 만듭니다
기본값: 1.0
max_tokens
integer
생성할 최대 토큰 수모델마다 최대 제한이 다르므로 특정 모델 문서를 참조하세요
stream
boolean
스트리밍 출력 사용 여부
  • true: 스트리밍 응답 (SSE 형식)
  • false: 한번에 완전한 응답
기본값: true
top_p
number
핵 샘플링 매개변수, 범위 0-1생성된 텍스트의 다양성을 제어, temperature와 함께 사용하는 것을 권장합니다기본값: 1.0
frequency_penalty
number
빈도 페널티, 범위 -2.0 ~ 2.0양수 값은 같은 단어를 반복할 가능성을 줄입니다기본값: 0
presence_penalty
number
존재 페널티, 범위 -2.0 ~ 2.0양수 값은 새로운 주제에 대해 말할 가능성을 높입니다기본값: 0
stop
string or array
중지 시퀀스최대 4개의 시퀀스, 해당 시퀀스를 만나면 생성이 중지됩니다
n
integer
생성할 완료 개수기본값: 1⚠️ 주의: 순수한 숫자를 입력하세요(예:1)。인용부호를 사용하면 오류가 발생합니다

응답

id
string
응답의 고유 식별자
object
string
객체 유형, chat.completion으로 고정
created
integer
생성 타임스탬프
model
string
실제 사용된 모델 이름
choices
array
생성된 응답 목록
usage
object
토큰 사용량 통계

지원되는 모델

OpenAI Series

  • gpt-5 - GPT-5 base model
  • gpt-5.1 - GPT-5.1 enhanced version
  • gpt-5-chat-latest - GPT-5 latest chat version
  • gpt-5-mini - GPT-5 lightweight version, cost-effective

Anthropic Series

  • claude-opus-4-8 - Claude Opus 4.8 flagship model
  • claude-opus-4-7 - Claude Opus 4.7 flagship model
  • claude-opus-4-6 - Claude Opus 4.6 flagship model
  • claude-sonnet-4-6 - Claude Sonnet 4.6 balanced version
  • claude-opus-4-5-20251101 - Claude Opus 4.5 model

Google Series

  • gemini-3.5-flash - Gemini 3.5 fast version
  • gemini-3.1-pro-preview - Gemini 3.1 Pro preview version
  • gemini-3-pro-preview - Gemini 3 Pro preview version
  • gemini-3-pro-preview-thinking - Gemini 3 Pro deep thinking preview version
  • gemini-3-flash-preview - Gemini 3 Flash preview version
  • gemini-2.5-pro - Gemini 2.5 professional version
  • gemini-2.5-flash - Gemini 2.5 fast version
  • gemini-2.5-flash-lite - Gemini 2.5 ultra-lightweight version

DeepSeek Series

  • deepseek-v4-pro - DeepSeek V4 professional version
  • deepseek-v4-flash - DeepSeek V4 fast version
  • deepseek-v3.2 - DeepSeek V3.2 standard version
  • deepseek-v3.2-exp - DeepSeek V3.2 experimental version
  • deepseek-r1-250528 - DeepSeek R1 reasoning model
  • deepseek-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
}