Passer au contenu principal
POST
/
api
/
v1
/
chat
/
completions
curl --request POST \
  --url https://api.apimart.ai/api/v1/chat/completions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-5", # Can be replaced with any supported model ID
    "stream": false,
    "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/api/v1/chat/completions"

payload = {
    "model": "gpt-5",  # Can be replaced with any supported model ID
    "stream": False,
    "messages": [
        {
            "role": "system",
            "content": "You are a professional AI assistant."
        },
        {
            "role": "user",
            "content": "Tell me about the history of artificial intelligence."
        }
    ]
}

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/api/v1/chat/completions";

const payload = {
  model: "gpt-5",  // Can be replaced with any supported model ID
  stream: false,
  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/api/v1/chat/completions"

    payload := map[string]interface{}{
        "model": "gpt-5",  // Can be replaced with any supported model ID
        "stream": false,
        "messages": []map[string]string{
            {
                "role":    "system",
                "content": "You are a professional AI assistant.",
            },
            {
                "role":    "user",
                "content": "Tell me about the history of artificial intelligence.",
            },
        },
    }

    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/api/v1/chat/completions";

        // Can be replaced with any supported model ID
        String payload = """
        {
          "model": "gpt-5",
          "stream": false,
          "messages": [
            {
              "role": "system",
              "content": "You are a professional AI assistant."
            },
            {
              "role": "user",
              "content": "Tell me about the history of artificial intelligence."
            }
          ]
        }
        """;

        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/api/v1/chat/completions";

// Can be replaced with any supported model ID
$payload = [
    "model" => "gpt-5",
    "stream" => false,
    "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/api/v1/chat/completions")

# Can be replaced with any supported model ID
payload = {
  model: "gpt-5",
  stream: false,
  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/api/v1/chat/completions")!

let payload: [String: Any] = [
    "model": "gpt-5",  // Can be replaced with any supported model ID
    "stream": false,
    "messages": [
        [
            "role": "system",
            "content": "You are a professional AI assistant."
        ],
        [
            "role": "user",
            "content": "Tell me about the history of artificial intelligence."
        ]
    ]
]

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/api/v1/chat/completions";

        // Can be replaced with any supported model ID
        var payload = @"{
            ""model"": ""gpt-5"",
            ""stream"": false,
            ""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/api/v1/chat/completions";
        // Can be replaced with any supported model ID
        const char *payload = "{"
            "\"model\":\"gpt-5\","
            "\"stream\":false,"
            "\"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/api/v1/chat/completions"];

        NSDictionary *payload = @{
            @"model": @"gpt-5",  // Can be replaced with any supported model ID
            @"stream": @NO,
            @"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/api/v1/chat/completions"

(* Can be replaced with any supported model ID *)
let payload = {|{
  "model": "gpt-5",
  "stream": false,
  "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/api/v1/chat/completions');

  // Can be replaced with any supported model ID
  final payload = {
    'model': 'gpt-5',
    'stream': false,
    '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/api/v1/chat/completions"

# Can be replaced with any supported model ID
payload <- list(
  model = "gpt-5",
  stream = FALSE,
  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": "The history of artificial intelligence (AI) dates back to the 1950s...\n\n1. **Early Period (1950s-1960s)**: The proposal of the Turing Test marked the beginning of AI research...\n\n2. **Expert Systems Era (1970s-1980s)**: Rule-based systems began to be applied in medical diagnosis, financial analysis, and other fields...\n\n3. **Rise of Machine Learning (1990s-2000s)**: Statistical learning methods gradually became mainstream...\n\n4. **Deep Learning Revolution (2010s-Present)**: Breakthroughs in neural network technology brought explosive growth to AI..."
        },
        "finish_reason": "stop"
      }
    ],
    "usage": {
      "prompt_tokens": 28,
      "completion_tokens": 320,
      "total_tokens": 348
    }
  }
}
{
  "error": {
    "code": 400,
    "message": "Invalid request parameters",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "Authentication failed, please check your API key",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 402,
    "message": "Insufficient account balance, please recharge",
    "type": "payment_required"
  }
}
{
  "error": {
    "code": 403,
    "message": "Access forbidden, you don't have permission to access this resource",
    "type": "permission_error"
  }
}
{
  "error": {
    "code": 429,
    "message": "Too many requests, please try again later",
    "type": "rate_limit_error"
  }
}
{
  "error": {
    "code": 500,
    "message": "Internal server error, please try again later",
    "type": "server_error"
  }
}
{
  "error": {
    "code": 502,
    "message": "Bad gateway, service temporarily unavailable",
    "type": "bad_gateway"
  }
}
curl --request POST \
  --url https://api.apimart.ai/api/v1/chat/completions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-5", # Can be replaced with any supported model ID
    "stream": false,
    "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/api/v1/chat/completions"

payload = {
    "model": "gpt-5",  # Can be replaced with any supported model ID
    "stream": False,
    "messages": [
        {
            "role": "system",
            "content": "You are a professional AI assistant."
        },
        {
            "role": "user",
            "content": "Tell me about the history of artificial intelligence."
        }
    ]
}

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/api/v1/chat/completions";

const payload = {
  model: "gpt-5",  // Can be replaced with any supported model ID
  stream: false,
  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/api/v1/chat/completions"

    payload := map[string]interface{}{
        "model": "gpt-5",  // Can be replaced with any supported model ID
        "stream": false,
        "messages": []map[string]string{
            {
                "role":    "system",
                "content": "You are a professional AI assistant.",
            },
            {
                "role":    "user",
                "content": "Tell me about the history of artificial intelligence.",
            },
        },
    }

    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/api/v1/chat/completions";

        // Can be replaced with any supported model ID
        String payload = """
        {
          "model": "gpt-5",
          "stream": false,
          "messages": [
            {
              "role": "system",
              "content": "You are a professional AI assistant."
            },
            {
              "role": "user",
              "content": "Tell me about the history of artificial intelligence."
            }
          ]
        }
        """;

        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/api/v1/chat/completions";

// Can be replaced with any supported model ID
$payload = [
    "model" => "gpt-5",
    "stream" => false,
    "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/api/v1/chat/completions")

# Can be replaced with any supported model ID
payload = {
  model: "gpt-5",
  stream: false,
  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/api/v1/chat/completions")!

let payload: [String: Any] = [
    "model": "gpt-5",  // Can be replaced with any supported model ID
    "stream": false,
    "messages": [
        [
            "role": "system",
            "content": "You are a professional AI assistant."
        ],
        [
            "role": "user",
            "content": "Tell me about the history of artificial intelligence."
        ]
    ]
]

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/api/v1/chat/completions";

        // Can be replaced with any supported model ID
        var payload = @"{
            ""model"": ""gpt-5"",
            ""stream"": false,
            ""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/api/v1/chat/completions";
        // Can be replaced with any supported model ID
        const char *payload = "{"
            "\"model\":\"gpt-5\","
            "\"stream\":false,"
            "\"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/api/v1/chat/completions"];

        NSDictionary *payload = @{
            @"model": @"gpt-5",  // Can be replaced with any supported model ID
            @"stream": @NO,
            @"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/api/v1/chat/completions"

(* Can be replaced with any supported model ID *)
let payload = {|{
  "model": "gpt-5",
  "stream": false,
  "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/api/v1/chat/completions');

  // Can be replaced with any supported model ID
  final payload = {
    'model': 'gpt-5',
    'stream': false,
    '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/api/v1/chat/completions"

# Can be replaced with any supported model ID
payload <- list(
  model = "gpt-5",
  stream = FALSE,
  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": "The history of artificial intelligence (AI) dates back to the 1950s...\n\n1. **Early Period (1950s-1960s)**: The proposal of the Turing Test marked the beginning of AI research...\n\n2. **Expert Systems Era (1970s-1980s)**: Rule-based systems began to be applied in medical diagnosis, financial analysis, and other fields...\n\n3. **Rise of Machine Learning (1990s-2000s)**: Statistical learning methods gradually became mainstream...\n\n4. **Deep Learning Revolution (2010s-Present)**: Breakthroughs in neural network technology brought explosive growth to AI..."
        },
        "finish_reason": "stop"
      }
    ],
    "usage": {
      "prompt_tokens": 28,
      "completion_tokens": 320,
      "total_tokens": 348
    }
  }
}
{
  "error": {
    "code": 400,
    "message": "Invalid request parameters",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "Authentication failed, please check your API key",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 402,
    "message": "Insufficient account balance, please recharge",
    "type": "payment_required"
  }
}
{
  "error": {
    "code": 403,
    "message": "Access forbidden, you don't have permission to access this resource",
    "type": "permission_error"
  }
}
{
  "error": {
    "code": 429,
    "message": "Too many requests, please try again later",
    "type": "rate_limit_error"
  }
}
{
  "error": {
    "code": 500,
    "message": "Internal server error, please try again later",
    "type": "server_error"
  }
}
{
  "error": {
    "code": 502,
    "message": "Bad gateway, service temporarily unavailable",
    "type": "bad_gateway"
  }
}

Autorisations

Authorization
string
requis
Tous les points de terminaison de l’API nécessitent une authentification par Bearer TokenObtenez votre clé API :Rendez-vous sur la page de gestion des clés API pour obtenir votre clé APIAjoutez-la dans l’en-tête de la requête :
Authorization: Bearer YOUR_API_KEY

Body

model
string
défaut:"gpt-5"
requis
Nom du modèleLes modèles pris en charge incluent :
  • 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
  • D’autres modèles sont ajoutés en permanence…
messages
array
requis
Liste des messages de la conversationTableau de messages. Chaque message contient les champs role et content.💡 Remplissage rapide (zone « Try it ») :
  1. Cliquez sur « + Add an item » pour ajouter un message
  2. Saisissez user (message utilisateur), assistant (réponse de l’IA) ou system (invite système) dans role
  3. Saisissez ce que vous souhaitez dire dans content
Exemple :
[{"role": "user", "content": "Hello, please introduce yourself"}]
Utilisation avancée :Ajouter une invite système (pour définir le comportement de l’IA) :
[
  {"role": "system", "content": "You are a professional Python tutor"},
  {"role": "user", "content": "How do I learn programming?"}
]
Conversation multi-tours (avec contexte) :
[
  {"role": "user", "content": "Hello"},
  {"role": "assistant", "content": "Hi! How can I help you?"},
  {"role": "user", "content": "Tell me about AI"}
]
Description des rôles :
  • user : message utilisateur (utilisé dans la plupart des cas)
  • system : invite système pour définir le comportement et le rôle de l’IA
  • assistant : réponses précédentes de l’IA, utilisées pour le contexte de la conversation
temperature
number
Contrôle l’aléa de la sortie, plage 0–2
  • Les valeurs plus faibles (par exemple 0.2) rendent la sortie plus déterministe
  • Les valeurs plus élevées (par exemple 1.8) rendent la sortie plus aléatoire
Par défaut : 1.0
max_tokens
integer
Nombre maximal de tokens à générerLes différents modèles ont des limites maximales différentes, veuillez consulter la documentation du modèle concerné
stream
boolean
défaut:"false"
Utiliser ou non la sortie en streaming
  • false : réponse complète en une seule fois
  • true : retour en streaming
Par défaut : false
top_p
number
Paramètre d’échantillonnage par noyau (nucleus sampling), plage 0–1Contrôle la diversité du texte généré, il est recommandé d’utiliser soit ce paramètre, soit temperaturePar défaut : 1.0
frequency_penalty
number
Pénalité de fréquence, plage de -2.0 à 2.0Des valeurs positives réduisent la probabilité de répéter les mêmes motsPar défaut : 0
presence_penalty
number
Pénalité de présence, plage de -2.0 à 2.0Des valeurs positives augmentent la probabilité d’aborder de nouveaux sujetsPar défaut : 0
stop
string or array
Séquences d’arrêtJusqu’à 4 séquences qui, lorsqu’elles sont rencontrées, stoppent la génération
n
integer
Nombre de complétions à générerPar défaut : 1⚠️ Remarque : Vous devez saisir un nombre simple (par exemple 1), sans guillemets, sinon une erreur se produira

Response

id
string
Identifiant unique de la réponse
object
string
Type d’objet, fixé à chat.completion
created
integer
Horodatage de création
model
string
Nom du modèle réellement utilisé
choices
array
Liste des réponses générées
usage
object
Statistiques d’utilisation des tokens

Modèles pris en charge

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

Exemples d’utilisation

Conversation simple

{
  "model": "gpt-5",
  "stream": false,
  "messages": [
    {"role": "user", "content": "Hello"}
  ]
}

Invite système

{
  "model": "claude-sonnet-4-6",
  "stream": false,
  "messages": [
    {"role": "system", "content": "You are a professional Python programming tutor"},
    {"role": "user", "content": "How to use list comprehensions?"}
  ]
}

Conversation multi-tours

{
  "model": "gemini-2.5-flash",
  "stream": false,
  "messages": [
    {"role": "user", "content": "What is machine learning?"},
    {"role": "assistant", "content": "Machine learning is a branch of artificial intelligence..."},
    {"role": "user", "content": "Can you give me an example?"}
  ]
}