Быстрый старт
Первый запрос через curl, Python или JavaScript
Для работы нужны аккаунт GetAPI, API-ключ и средства на балансе Создайте ключ в личном кабинете
1. Настройте окружение
Сохраните ключ в переменной окружения GETAPI_API_KEY через настройки окружения или менеджер секретов
Запускайте примеры на сервере, не в браузере
2. Выберите модель
curl https://api.getapi.ru/v1/models \ -H "Authorization: Bearer $GETAPI_API_KEY"
Скопируйте id нужной модели из массива data
В примерах ниже используется gpt-4.1-mini, замените его, если эта модель недоступна вашему ключу
3. Отправьте запрос
curl
curl https://api.getapi.ru/v1/chat/completions \
-H "Authorization: Bearer $GETAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4.1-mini",
"messages": [{"role": "user", "content": "Привет"}],
"max_tokens": 128
}'Python
Установите клиент командой pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["GETAPI_API_KEY"],
base_url="https://api.getapi.ru/v1",
max_retries=0,
timeout=60.0,
)
response = client.chat.completions.create(
model="gpt-4.1-mini",
messages=[{"role": "user", "content": "Привет"}],
max_tokens=128,
)
print(response.choices[0].message.content)JavaScript
Пример для Node.js с встроенным fetch
const response = await fetch("https://api.getapi.ru/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.GETAPI_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gpt-4.1-mini",
messages: [{ role: "user", content: "Привет" }],
max_tokens: 128
}),
signal: AbortSignal.timeout(60000)
});
const result = await response.json();
if (!response.ok || result.error) {
throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
console.log(result.choices?.[0]?.message?.content ?? "");4. Обработайте ответ
Сокращённый пример ответа
{
"id": "chatcmpl-example",
"object": "chat.completion",
"model": "gpt-4.1-mini",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "Привет! Чем помочь?"},
"finish_reason": "stop"
}
],
"usage": {"prompt_tokens": 8, "completion_tokens": 7, "total_tokens": 15}
}finish_reason обозначает причину завершения
usage содержит расход токенов, а не стоимость в рублях
Пустой текст не всегда означает ошибку: модель может вернуть вызов инструмента или исчерпать бюджет рассуждений
Следующие шаги
Потоковые ответы, инструменты, структурированный вывод, обработка ошибок