LLMTOKENAPI

Developer API

Подключите модели и web-данные через один API

OpenAI-совместимые методы для LLM, отдельные методы поиска и асинхронного обхода сайтов. Оплата и цены в рублях.
https://api.llmtokenapi.ruОткрыть каталог цен

Начало работы

Первый запрос за три шага

01

Создайте ключ

Откройте кабинет, создайте ключ и выберите минимально необходимые scopes.

02

Выберите модель

Получите актуальные публичные ID через GET /v1/models.

03

Отправьте запрос

Передайте ключ в Bearer-заголовке. Ответ модели совместим с выбранным методом.

curl
curl https://api.llmtokenapi.ru/v1/responses \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "input": "Объясни квантование модели в двух предложениях"
  }'

Доступ

Авторизация и scopes

API-ключ начинается с llmt_. Полное значение показывается только один раз. Передавайте ключ только в заголовке Authorization и не помещайте его в браузерный код, URL или публичный репозиторий.

llm:readТекстовые модели и изображения
search:readПоиск
web:readFetch и scrape
jobs:writeСоздание и отмена заданий
jobs:readСтатусы и результаты
billing:readПрайс организации

API Reference

Все публичные методы

Ниже перечислены все методы текущей версии gateway. Публичный каталог и стандартный прайс работают без ключа, остальные методы проверяют scope.

Каталог

GET/v1/models

Возвращает активные публичные ID моделей. Поле type разделяет текстовые модели и генерацию изображений.

Без авторизации

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/models

Пример ответа

json
{
  "object": "list",
  "data": [
    {"id": "YOUR_MODEL_ID", "object": "model", "owned_by": "llmtokenapi", "name": "Model name", "type": "llm"}
  ]
}

Каталог

GET/v1/prices

Возвращает опубликованный стандартный прайс в рублях. Web-операции тарифицируются за 1000 запросов. Текущая цена search, fetch, scrape, map и crawl составляет 50 ₽ за 1000 запросов.

Без авторизации

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/prices

Каталог

GET/v1/account/prices

Возвращает эффективный прайс организации с учётом её тарифа. Используйте этот метод в кабинете и перед расчётом расходов.

Scope: billing:read

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/account/prices \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY"

Модели

POST/v1/responses

Основной метод для новых LLM-интеграций. Поддерживает строковый или составной input, function tools, структурированный текст и streaming.

Scope: llm:read

Параметры

ПараметрТипОписание
modelобязательныйstringПубличный ID из GET /v1/models.
streambooleanВключает потоковый ответ. По умолчанию false.
inputобязательныйstring | arrayТекст или массив входных элементов.
max_output_tokensintegerМаксимум выходных токенов, до 1 000 000.
toolsarrayОписание доступных модели инструментов.
textobjectНастройки текстового и структурированного ответа.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/responses \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "input": "Назови три риска при запуске API-сервиса",
    "max_output_tokens": 300
  }'

Модели

POST/v1/chat/completions

Совместимый метод для существующих OpenAI SDK и приложений, работающих с массивом messages.

Scope: llm:read

Параметры

ПараметрТипОписание
modelобязательныйstringПубличный ID из GET /v1/models.
streambooleanВключает потоковый ответ. По умолчанию false.
messagesобязательныйarrayСообщения с ролями system, developer, user, assistant или tool.
temperaturenumberТемпература от 0 до 2.
max_tokensintegerМаксимум выходных токенов, до 1 000 000.
toolsarrayFunction tools в OpenAI-совместимом формате.
response_formatobjectНастройки JSON или JSON Schema ответа.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/chat/completions \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "messages": [
      {"role": "system", "content": "Отвечай кратко"},
      {"role": "user", "content": "Что такое идемпотентность?"}
    ]
  }'

Изображения

POST/v1/images/generations

Генерирует до 4 изображений за запрос. Ответ провайдера возвращается в совместимом формате, включая b64_json, если модель поддерживает такой результат.

Scope: llm:read

Параметры

ПараметрТипОписание
modelобязательныйstringID image-модели из GET /v1/models.
promptобязательныйstringПромпт длиной до 8000 символов.
nintegerКоличество изображений от 1 до 4. По умолчанию 1.
qualitylow | medium | highКачество. По умолчанию medium.
size1024x1024 | 1024x1536 | 1536x1024Размер результата.
output_formatpng | webp | jpegФормат файла.
output_compressionintegerСжатие от 0 до 100, если формат его поддерживает.
backgroundauto | opaque | transparentРежим фона.
moderationauto | lowРежим проверки безопасности.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/images/generations \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "Минималистичный светящийся routing core на чёрном фоне",
    "quality": "medium",
    "size": "1024x1024",
    "output_format": "webp"
  }'

Web API

POST/v1/fetch

Загружает URL после проверки DNS, редиректов и конечного IP. Private, loopback, link-local и metadata-адреса блокируются.

Scope: web:read

Параметры

ПараметрТипОписание
urlобязательныйURLПубличный HTTP или HTTPS URL.
timeoutMsintegerТаймаут от 1000 до 60000 мс. По умолчанию 20000.
maxBytesintegerЛимит ответа от 1024 до 10 000 000 байт.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/fetch \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "timeoutMs": 20000,
    "maxBytes": 2000000
  }'

Web API

POST/v1/scrape

Получает и очищает страницу, затем возвращает выбранные форматы. Для страниц с JavaScript можно включить browser.

Scope: web:read

Параметры

ПараметрТипОписание
urlобязательныйURLПубличный HTTP или HTTPS URL.
formatsarraymarkdown, html, links и metadata. По умолчанию markdown.
waitForMsintegerОжидание рендера от 0 до 15000 мс.
browserbooleanРазрешает браузерный маршрут. По умолчанию false.
timeoutMsintegerТаймаут получения страницы.
maxBytesintegerМаксимальный размер ответа.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/scrape \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "formats": ["markdown", "links", "metadata"],
    "browser": false
  }'

Фоновое задание

POST/v1/map

Собирает URL сайта асинхронно. Gateway резервирует стоимость одной операции и сразу возвращает 202 с Location на статус задания.

Scope: jobs:write

Параметры

ПараметрТипОписание
urlобязательныйURLСтартовый URL.
limitintegerДо 10 000 URL. По умолчанию 500.
searchstringДополнительный фильтр до 500 символов.
includeSubdomainsbooleanВключать поддомены. По умолчанию false.
webhookUrlURLHTTPS URL для уведомления о завершении.

Заголовок Idempotency-Key обязателен. Повторите запрос с тем же ключом, чтобы безопасно восстановить уже созданное задание.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/map \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: map-example-com-001" \
  -d '{
    "url": "https://example.com",
    "limit": 500,
    "includeSubdomains": false
  }'

Пример ответа

json
{
  "id": "2f35e4dd-3d29-4e9d-a979-59581918fd8e",
  "type": "crawl",
  "status": "queued",
  "createdAt": "2026-08-27T10:00:00.000Z",
  "expiresAt": "2026-08-28T10:00:00.000Z",
  "progress": { "completed": 0, "total": null },
  "error": null
}

Фоновое задание

POST/v1/crawl

Обходит страницы сайта, сохраняет очищенные результаты и отдаёт их через endpoint результатов. Результаты удаляются через 24 часа.

Scope: jobs:write

Параметры

ПараметрТипОписание
urlобязательныйURLСтартовый URL.
limitintegerДо 10 000 страниц. По умолчанию 100.
maxDepthintegerГлубина от 0 до 20. По умолчанию 5.
includePathsstring[]Разрешённые пути, до 100 правил.
excludePathsstring[]Исключённые пути, до 100 правил.
webhookUrlURLHTTPS URL для уведомления о завершении.

Для каждого логического запуска используйте отдельный Idempotency-Key. Частично выполненный crawl может вернуть доступные результаты вместе со статусом failed.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/crawl \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: crawl-example-com-001" \
  -d '{
    "url": "https://example.com",
    "limit": 100,
    "maxDepth": 5,
    "includePaths": ["/docs/**"]
  }'

Пример ответа

json
{
  "id": "2f35e4dd-3d29-4e9d-a979-59581918fd8e",
  "type": "crawl",
  "status": "queued",
  "createdAt": "2026-08-27T10:00:00.000Z",
  "expiresAt": "2026-08-28T10:00:00.000Z",
  "progress": { "completed": 0, "total": null },
  "error": null
}

Задания

GET/v1/jobs/{id}

Возвращает состояние, прогресс, сроки хранения и ошибку map или crawl задания.

Scope: jobs:read

Параметры

ПараметрТипОписание
idобязательныйUUIDID из ответа POST /v1/map или POST /v1/crawl.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/jobs/JOB_ID \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY"

Пример ответа

json
{
  "id": "2f35e4dd-3d29-4e9d-a979-59581918fd8e",
  "type": "crawl",
  "status": "queued",
  "createdAt": "2026-08-27T10:00:00.000Z",
  "expiresAt": "2026-08-28T10:00:00.000Z",
  "progress": { "completed": 0, "total": null },
  "error": null
}

Задания

GET/v1/jobs/{id}/results

Возвращает готовый результат. До завершения отвечает 409 job_not_ready. Для частично завершившегося задания данные могут быть доступны со статусом failed.

Scope: jobs:read

Параметры

ПараметрТипОписание
idобязательныйUUIDID задания.

Пример запроса

curl
curl https://api.llmtokenapi.ru/v1/jobs/JOB_ID/results \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY"

Задания

DELETE/v1/jobs/{id}

Отменяет задание, если оно ещё не перешло в конечное состояние. Неиспользованный резерв освобождается.

Scope: jobs:write

Параметры

ПараметрТипОписание
idобязательныйUUIDID задания.

Пример запроса

curl
curl -X DELETE https://api.llmtokenapi.ru/v1/jobs/JOB_ID \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY"

Справочник

Streaming

Передайте stream: true в Responses или Chat Completions. Gateway начинает проксирование после первого полученного фрагмента. Если маршрут отказал до первого байта, запрос может быть направлен по другому доступному маршруту той же публичной модели.

json
{
  "model": "YOUR_MODEL_ID",
  "input": "Напиши короткий план запуска",
  "stream": true
}

Справочник

Webhooks

Для map и crawl можно передать webhookUrl. Подпись HMAC SHA-256 строится по строке timestamp.eventId.body. Проверяйте подпись, допустимое время события и повторный event ID.

x-llmtokenapi-event-idx-llmtokenapi-timestampx-llmtokenapi-signature: v1=...

Справочник

Ошибки

Каждая ошибка содержит стабильный code, сообщение и requestId. Тот же ID возвращается в заголовке x-request-id. Передавайте его поддержке при разборе запроса.

HTTPКодЗначение
400idempotency_key_requiredНет ключа для map или crawl
400unsafe_urlURL заблокирован SSRF-защитой
400moderation_blockedГенерация остановлена проверкой безопасности
400image_generation_failedЗапрос изображения отклонён или не выполнен
401invalid_api_keyКлюч отсутствует, неверен или отозван
402insufficient_balanceНедостаточно доступного баланса
403insufficient_scopeКлючу не хватает scope
403account_blockedОрганизация заблокирована
403outstanding_debtНа балансе есть задолженность
403terms_not_acceptedНе приняты действующие условия
404job_not_foundЗадание не найдено
404not_foundМаршрут API не найден
409job_not_readyРезультат ещё не готов
429rate_limit_exceededВременный лимит upstream
500internal_errorВнутренняя ошибка сервиса
502upstream_errorПровайдер не выполнил запрос
503model_unavailableНет рабочего маршрута модели
503pricing_unavailableПрайс не опубликован
503upstream_unavailableWeb или LLM маршрут временно недоступен
json
{
  "error": {
    "code": "insufficient_balance",
    "message": "Недостаточно средств для резервирования запроса",
    "requestId": "7fe2b1cc-6a3a-4bb4-8729-850854df9186"
  }
}

Готовы проверить интеграцию?

Создайте ключ, пополните баланс и выполните первый запрос из примеров.
Открыть кабинет