- Select different AI models via the model parameter
- Compatible with OpenAI Chat Completions API format
- Non-streaming output, returns complete response at once
Request example
curl --request POST \
--url https://api.openveer.com/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.openveer.com/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.openveer.com/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.openveer.com/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.openveer.com/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.openveer.com/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.openveer.com/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.bodyimport Foundation
let url = URL(string: "https://api.openveer.com/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.openveer.com/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.openveer.com/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.openveer.com/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.openveer.com/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 responseimport 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://api.openveer.com/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.openveer.com/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"))Response example
{
"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"
}
}Authorizations
Authorization stringAll API endpoints require Bearer Token authentication
Get your API Key:
Visit the API Key Management Page to get your API Key
Add it to the request header:
Authorization: Bearer YOUR_API_KEYBody
model stringModel name
Supported models include:
- 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 - More models being added continuously...
messages arrayrole and content fields.
**💡 Quick fill (Try it area):**
1. Click "+ Add an item" to add a message
2. Enter user (user message), assistant (AI response), or system (system prompt) for role
3. Enter what you want to say in content
role stringRole type
* user - User message
* assistant - AI response (for multi-turn)
* system - System prompt
content stringMessage content
Your question or message
[{"role": "user", "content": "Hello, please introduce yourself"}][
{"role": "system", "content": "You are a professional Python tutor"},
{"role": "user", "content": "How do I learn programming?"}
][
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi! How can I help you?"},
{"role": "user", "content": "Tell me about AI"}
]user: User message (use this most of the time)
* system: System prompt to set AI behavior and role
* assistant: AI's previous responses, used for conversation contexttemperature numberControls output randomness, range 0-2
- Lower values (e.g., 0.2) make output more deterministic
- Higher values (e.g., 1.8) make output more random
Default: 1.0
max_tokens integerMaximum number of tokens to generate
Different models have different maximum limits, please refer to specific model documentation
stream booleanWhether to use streaming output
false: Complete response at oncetrue: Streaming return
Default: false
top_p numberNucleus sampling parameter, range 0-1
Controls diversity of generated text, recommend using either this or temperature
Default: 1.0
frequency_penalty numberFrequency penalty, range -2.0 to 2.0
Positive values reduce the likelihood of repeating the same words
Default: 0
presence_penalty numberPresence penalty, range -2.0 to 2.0
Positive values increase the likelihood of talking about new topics
Default: 0
stop string or arrayStop sequences
Up to 4 sequences where generation will stop when encountered
n integerNumber of completions to generate
Default: 1
⚠️ Note: Must enter a plain number (e.g., 1), do not use quotes or it will cause an error
Response
id stringUnique identifier for the response
object stringObject type, fixed as chat.completion
created integerCreation timestamp
model stringThe actual model name used
choices arrayindex integerChoice index
message objectrole stringRole type (assistant)
content stringGenerated text content
finish_reason stringReason for completion
Possible values:
* stop - Natural completion
* length - Maximum length reached
* content_filter - Content filtered
* function_call - Function call
usage objectprompt_tokens integerNumber of tokens in the input messages
completion_tokens integerNumber of tokens in the generated content
total_tokens integerTotal number of tokens
Supported Models
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
Usage Examples
Basic Conversation
{
"model": "gpt-5",
"stream": false,
"messages": [
{"role": "user", "content": "Hello"}
]
}System Prompt
{
"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?"}
]
}Multi-turn Conversation
{
"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?"}
]
}This documentation is built and hosted on Mintlify, a developer documentation platform.