Быстрый старт и руководство по API

Один ключ API для текста, изображений и видео. В примерах адрес этого сайта используется как endpoint API.

Авторизация и выбор модели

Создайте и сохраните ключ в консоли, затем передавайте его в заголовке Authorization: Bearer. Храните ключ на сервере.

Замените MODEL_ID на ID опубликованной модели. Протоколы, длительность, разрешение и цены зависят от модели.

OpenAI SDK
base_url = "https://www.lvzhouai.cc/v1"

Текст

POST /v1/chat/completions

bash
curl 'https://www.lvzhouai.cc/v1/chat/completions' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"messages": [
{
"role": "user",
"content": "Hello"
}
],
"max_tokens": 64
}'

Изображения

POST /v1/images/tasks

bash
curl 'https://www.lvzhouai.cc/v1/images/tasks' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: YOUR_UNIQUE_REQUEST_ID" \
-d '{
"model": "gpt-image-2",
"prompt": "A blue ceramic cup on a wooden table",
"resolution": "1K"
}'

Видео

POST /v1/videos/tasks

bash
curl 'https://www.lvzhouai.cc/v1/videos/tasks' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: YOUR_UNIQUE_REQUEST_ID" \
-d '{
"model": "grok-imagine-video-1.5",
"prompt": "A slow camera movement through a garden",
"resolution": "480p",
"duration": 8
}'

Быстрый старт с Python и Node.js

Задайте API_STATION_KEY в окружении сервера. Эти примеры используют тот же текстовый endpoint, что и curl.

Python 3
import json, os
from urllib.request import Request, urlopen

request = Request(
"https://www.lvzhouai.cc/v1/chat/completions",
data=json.dumps({"model": "gpt-6-luna", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 64}).encode(),
headers={"Authorization": "Bearer " + os.environ["API_STATION_KEY"], "Content-Type": "application/json"},
)
with urlopen(request, timeout=60) as response:
print(json.load(response)["choices"][0]["message"]["content"])
Node.js 20+
const response = await fetch("https://www.lvzhouai.cc/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.API_STATION_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-6-luna",
messages: [{ role: "user", content: "Hello" }],
max_tokens: 64,
}),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.message || "Request failed");
console.log(result.choices[0].message.content);

Модели, параметры и единицы тарификации

Цены на текст указаны за миллион входных или выходных токенов, на изображения — за изображение, на видео — за секунду генерации. Тариф зависит от модели и параметров: проверьте актуальный каталог перед отправкой.

В примерах используются опубликованные параметры: gpt-image-2 в 1K и grok-imagine-video-1.5 в 480p длительностью 8 секунд. Поддержку других размеров, длительностей, инструментов и медиа на входе нужно проверять отдельно.

GET /v1/models возвращает модели, доступные вашему ключу. В публичном каталоге указаны параметры и цены; права ключа могут ограничивать доступный список.

bash
curl 'https://www.lvzhouai.cc/v1/models' \
-H "Authorization: Bearer YOUR_API_KEY"

Создание медиазадачи возвращает HTTP 201 с id, state и billing_state. Опросите GET /v1/tasks/{id} тем же API-ключом. succeeded означает успешную генерацию, а settled — отдельный результат расчёта. При неопределённом результате отправки сохраните Idempotency-Key и входные данные.

Статус и результаты задачи

Для каждой операции с изображением или видео задайте уникальный Idempotency-Key длиной 16–128 символов. Если результат отправки неизвестен, повторите её с тем же ключом и входными данными.

Сохраните id созданной задачи и проверяйте статус тем же ключом API. При state = succeeded читайте results[].url, отдельно проверяя billing_state.

GET /v1/tasks/{id}

bash
curl 'https://www.lvzhouai.cc/v1/tasks/TASK_ID' \
-H "Authorization: Bearer YOUR_API_KEY"

Используйте results[].url и, если указано, results[].expires_at. Ссылки временные: сохраняйте нужные файлы. Повторный запрос той же задачи обновляет ссылку сайта без новой генерации. Сам результат у поставщика всё же может истечь.

Решение проблем с запросами

401 / 403
Проверьте статус ключа API и его доступ к модели.
400
Проверьте ID модели и поддерживаемые параметры входных данных.
402
Доступного баланса недостаточно для этого запроса.
409
При повторе используйте исходный Idempotency-Key и те же данные. Для другой операции создайте новый ключ идемпотентности.
429
Перед повтором выждите интервал Retry-After.
503
Сервис может быть приостановлен или не настроен. Уточните доступность у администратора.

Для сообщения о проблеме сохраните заголовок ответа X-Oneapi-Request-Id. Никогда не прикладывайте API-ключ, пароль или код подтверждения.

Не повторяйте запрос автоматически после начала текстового потока. При разрыве соединения сохраните ID запроса и проверьте расход.

Посмотреть расход