Документация
APIEX.CLOUD предоставляет единую точку доступа, совместимую с OpenAI, для десятков моделей искусственного интеллекта от всех основных провайдеров. Это руководство охватывает аутентификацию, справочник по API, кошелек и выставление счетов, API-ключи и лимиты запросов.
API полностью совместим с SDK OpenAI — укажите любой существующий клиент OpenAI в базовом URL ниже, и он будет работать без изменения кода.
Авторизация
Каждый запрос должен содержать ваш ключ API в заголовоке Authorization с использованием схемы Bearer.
Authorization: Bearer YOUR_API_KEY
Никогда не раскрывайте свой ключ API в клиентском коде (в браузере JavaScript, мобильных приложениях). Всегда вызывайте шлюз со своего бэкенда.
Создавайте ключи и управляйте ими из своей панели: Раздел ключей API
Быстрый старт
Отправьте свой первый запрос на выбранном языке. Замените YOUR_API_KEY на ключ из вашей панели управления.
curl https://apiex.cloud/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{ "role": "user", "content": "Hello!" }
]
}'
from openai import OpenAI
client = OpenAI(
base_url="https://apiex.cloud/api/v1/",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://apiex.cloud/api/v1/",
apiKey: "YOUR_API_KEY",
});
const response = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);
$ch = curl_init( "https://apiex.cloud/api/v1/chat/completions" );
curl_setopt_array( $ch, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
),
CURLOPT_POSTFIELDS => json_encode( array(
'model' => 'gpt-4o-mini',
'messages' => array(
array( 'role' => 'user', 'content' => 'Hello!' ),
),
) ),
) );
$response = json_decode( curl_exec( $ch ), true );
echo $response['choices'][0]['message']['content'];
Ошибки
API использует стандартные коды состояния HTTP. Коды в диапазоне 2xx указывают на успех; 4xx указывают на проблему с запросом; 5xx указывают на проблему на нашей стороне.
| Статус | Значение |
|---|---|
| 400 | Неверный запрос — обязательный параметр отсутствует или имеет неверный формат. |
| 401 | Неавторизованный доступ — ключ API отсутствует, недействителен или отозван. |
| 402 | Требуется оплата — баланса вашего кошелька недостаточно для этого запроса. |
| 403 | Доступ запрещен — этот ключ не имеет прав для запрошенной модели или конечной точки. |
| 429 | Слишком много запросов — превышен лимит. Подождите немного и повторите попытку. |
| 500 | Ошибка сервера — на нашей стороне что-то пошло не так. Повторить попытку безопасно. |
Ответы с ошибками имеют стандартную структуру JSON:
{
"error": {
"type": "insufficient_balance",
"message": "Wallet balance is too low to complete this request.",
"code": 402
}
}
Базовый URL и конечные точки
Все запросы выполняются по этому базовому URL:
https://apiex.cloud/api/v1/
| Метод | Эндпоинт | Описание |
|---|---|---|
| POST | /chat/completions |
Создать завершение чата (поддерживается потоковая передача). |
| POST | /images/generations |
Генерируйте изображения по текстовому запросу. |
| POST | /audio/speech |
Преобразовать текст в речь. |
| POST | /embeddings |
Создавайте векторные эмбеддинги для текста. |
| GET | /models |
Вывести список всех моделей, доступных для вашего ключа в данный момент. |
Ответы чата
Создает ответ модели для заданной беседы. Структура запроса и ответа соответствует API OpenAI Chat Completions.
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
model обязательно |
string | Идентификатор используемой модели. Доступные значения смотрите в разделе «Модели и провайдеры». |
messages обязательно |
array | Список сообщений, описывающих беседу на данный момент, каждое из которых имеет роль и содержимое. |
temperature |
number | Температура выборки от 0 до 2. Более высокие значения делают вывод более случайным. По умолчанию: 1. |
max_tokens |
integer | Максимальное количество токенов для генерации в ответе. |
top_p |
number | Порог выборки ядер (nucleus sampling). Обычно оставляют значение по умолчанию равным 1. |
stream |
boolean | Если установлено значение true, частичные дельты сообщений отправляются в виде событий, генерируемых сервером. По умолчанию: false. |
Пример ответа
{
"id": "chatcmpl_8k2f...",
"object": "chat.completion",
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 10,
"total_tokens": 19
}
}
Потоковые ответы
Установите "stream": true для получения ответа по частям в виде серверных событий, что идеально подходит для чат-интерфейсов.
data: {"choices":[{"delta":{"content":"Hello"}}]}
data: {"choices":[{"delta":{"content":"!"}}]}
data: [DONE]
Каждый официальный SDK OpenAI обрабатывает этот формат автоматически — вам не нужно писать собственный код синтаксического анализа.
Лимиты запросов
Лимиты запросов обеспечивают стабильность шлюза для всех пользователей. Лимиты зависят от вашего активного плана и применяются для каждого ключа API.
Каждый ответ содержит заголовки, описывающие статус ваших текущих лимитов:
| Заголовок | Описание |
|---|---|
X-RateLimit-Limit | Максимальное количество запросов, разрешенное в текущем окне. |
X-RateLimit-Remaining | Запросы, оставшиеся в текущем окне. |
X-RateLimit-Reset | Секунд до сброса окна. |
При превышении лимита API возвращает ошибку 429 Too Many Requests. Используйте стратегию экспоненциальной задержки перед повторной попыткой.
Кошелек и выставление счетов
У каждого аккаунта есть предоплаченный кошелек. Пополните его один раз, а затем расходуйте средства на любую поддерживаемую модель — списания происходят за каждый запрос на основе потребленных токенов или единиц.
Пополняйте свой кошелек прямо из панели управления с помощью банковской карты.
Поделитесь своей реферальной ссылкой — и вы, и присоединившийся человек получите средства на кошелек.
Каждый запрос регистрируется с указанием его точной стоимости, которая отображается в логах использования в реальном времени.
Ключи API
Ключи API аутентифицируют ваши запросы и могут быть ограничены определенными моделями или лимитами использования с помощью групп ключей.
Лучшие практики
- Создавайте отдельный ключ для каждого приложения или окружения (продакшн, стейджинг, локальное).
- Храните ключи в переменных окружения, а не в системе контроля версий.
- Используйте группы ключей для ограничения расходов или привязки ключа к определенным моделям.
- Немедленно отозвайте ключ, если подозреваете, что он был скомпрометирован.
Тарифы и подписки
Выберите тарифный план для получения фиксированного ежемесячного кредита или оставайтесь на оплате по факту использования, просто пополняя свой кошелек.
В настоящее время нет настроенных фиксированных тарифов — каждый аккаунт работает с гибким кошельком с оплатой по мере использования.
Модели и провайдеры
В настоящее время шлюз перенаправляет запросы к следующим провайдерам. Вызовите GET /models с вашим ключом API для получения точного актуального списка моделей.
Часто задаваемые вопросы
Совместим ли API с официальными SDK OpenAI?
Да. Просто установите базовый URL SDK на конечную точку шлюза и используйте свой ключ API шлюза — никаких других изменений кода не требуется.
Что произойдет, если баланс моего кошелька закончится посреди запроса?
Запрос отклоняется с ошибкой 402 Payment Required до его перенаправления провайдеру, поэтому с вас никогда не спишется плата за запрос, который вы не можете позволить себе.
Могу ли я ограничить использование ключа только определенными моделями?
Да, с помощью групп ключей. Назначьте ключ группе со списком разрешенных моделей и, при необходимости, собственным лимитом запросов или затрат.
Сгорают ли неиспользованные средства на балансе кошелька?
Кредит кошелька, добавленный путем пополнения, не сгорает. Кредит, предоставленный в рамках ограниченного по времени плана, действует в течение срока этого плана.
Войдите и обратитесь к нам из своей панели управления — наша команда будет рада помочь.