LLMTOKENAPI

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

Документация LLMTOKENAPI

Подключайте поиск в интернете, тексты страниц и языковые модели через один API. Здесь собраны рабочие примеры, scopes и форматы ответов.
POST /v1/searchПример

Запрос

{
  "query": "Документация LLMTOKENAPI",
  "limit": 5,
  "mode": "balanced"
}

Ответ

{
  "data": [{
    "title": "Документация LLMTOKENAPI",
    "url": "https://llmtokenapi.ru/docs"
  }]
}

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

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

01

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

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

02

Задайте вопрос

Опишите, что нужно найти. Для поиска достаточно scope search:read.

03

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

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

curl
curl https://api.llmtokenapi.ru/v1/search \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"Документация LLMTOKENAPI","limit":5,"mode":"balanced"}'

Доступ

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

API-ключ начинается с llmt_. Полное значение показывается только один раз. Обычно передавайте его в Authorization: Bearer; Anthropic-совместимый endpoint также принимает x-api-key. Не помещайте ключ в браузерный код, URL или публичный репозиторий.

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

API Reference

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

Выберите метод для своей задачи. Каталог моделей и цены доступны без ключа; для остальных методов нужен API-ключ с указанными правами доступа.

Каталог

GET/v1/models

Возвращает активные публичные ID. Поле type принимает llm, image, embedding, audio_transcription или audio_speech.

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

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

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

Возвращает опубликованный прайс в рублях. Без параметра используется standard. Передайте billing_plan=at_cost, чтобы получить полный публичный прайс тарифа по себестоимости. Web-операции тарифицируются за 1000 запросов.

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

Параметры

ПараметрТипОписание
billing_planstandard | at_costПубличный тариф. По умолчанию standard.

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

curl
curl "https://api.llmtokenapi.ru/v1/prices?billing_plan=at_cost"

Каталог

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": "Что такое идемпотентность?"}
    ]
  }'

Coding agents

POST/v1/messages

Anthropic-совместимый Messages API для Claude Code. Поддерживает system, streaming, tool_use/tool_result и авторизацию через x-api-key или Bearer.

Scope: llm:read

Параметры

ПараметрТипОписание
modelобязательныйstringПубличный ID из GET /v1/models.
streambooleanВключает потоковый ответ. По умолчанию false.
messagesобязательныйarrayСообщения user и assistant в Anthropic-формате.
max_tokensобязательныйintegerМаксимум выходных токенов.
systemstring | arrayСистемная инструкция.
toolsarrayИнструменты с name и input_schema.

Для предварительной оценки контекста доступен POST /v1/messages/count_tokens. Этот метод не запускает модель.

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

curl
curl https://api.llmtokenapi.ru/v1/messages \
  -H "x-api-key: $LLMTOKENAPI_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-ai-deepseek-v4-flash-0731",
    "max_tokens": 1024,
    "messages": [{"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"
  }'

Embeddings

POST/v1/embeddings

Создаёт embeddings для строки, массива строк или массивов token ID. Списание идёт только по входным токенам.

Scope: embeddings:read

Параметры

ПараметрТипОписание
modelобязательныйstringID embedding-модели из GET /v1/models.
inputобязательныйstring | string[] | number[] | number[][]Один или несколько входов.
encoding_formatfloat | base64Формат вектора. По умолчанию float.
dimensionsintegerРазмерность, если модель поддерживает настройку.
userstringСтабильный идентификатор конечного пользователя.

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

curl
curl https://api.llmtokenapi.ru/v1/embeddings \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_EMBEDDING_MODEL_ID",
    "input": ["Первый документ", "Второй документ"],
    "encoding_format": "float"
  }'

Аудио

POST/v1/audio/transcriptions

Распознаёт речь из файла, переданного в multipart/form-data. Формат, размер и длительность проверяются до резервирования стоимости.

Scope: audio:read

Параметры

ПараметрТипОписание
modelобязательныйstringID модели типа audio_transcription.
fileобязательныйfileFLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV или WebM до 10 МБ и 4 часов.
languagestringЯзык в формате ISO-639-1.
promptstringПодсказка модели до 4096 символов.
response_formatjson | text | srt | verbose_json | vtt | diarized_jsonФормат ответа. По умолчанию json.
temperaturenumberОт 0 до 1.
streambooleanПотоковый ответ, если его поддерживает модель.

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

curl
curl https://api.llmtokenapi.ru/v1/audio/transcriptions \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -F "model=YOUR_TRANSCRIPTION_MODEL_ID" \
  -F "file=@./recording.mp3" \
  -F "language=ru" \
  -F "response_format=json"

Аудио

POST/v1/audio/speech

Синтезирует речь и возвращает бинарный аудиопоток. Списание рассчитывается по числу входных символов.

Scope: audio:read

Параметры

ПараметрТипОписание
modelобязательныйstringID модели типа audio_speech.
inputобязательныйstringТекст до 4096 символов.
voiceобязательныйstring | {id}Встроенный голос или ID пользовательского голоса.
instructionsstringИнструкции по манере речи, если поддерживаются.
response_formatmp3 | opus | aac | flac | wav | pcmФормат аудио. По умолчанию mp3.
speednumberСкорость от 0.25 до 4.
stream_formataudio | sseБинарный поток или SSE.

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

curl
curl https://api.llmtokenapi.ru/v1/audio/speech \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_SPEECH_MODEL_ID",
    "input": "Добро пожаловать в LLMTOKENAPI",
    "voice": "alloy",
    "response_format": "mp3"
  }' --output speech.mp3

Пробный баланс API

GET/v1/account/trial-balance

После подтверждения почты рабочая область получает 150 ₽ на 30 дней для проверки моделей, изображений, embeddings, аудио, баз знаний и Web API. Привязка карты не нужна; пробный баланс расходуется раньше основного баланса и не увеличивается при создании дополнительных ключей.

Scope: billing:read

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

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

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

json
{
  "object": "api.trial_balance",
  "grantedKopecks": 15000,
  "usedKopecks": 180,
  "reservedKopecks": 0,
  "remainingKopecks": 14820,
  "expiresAt": "2026-09-29T12:00:00.000Z",
  "active": true
}

Ответ с цитатами

POST/v1/answer

Ищет актуальные источники и формирует готовый ответ. В citations попадают только использованные страницы; при недостатке свидетельств сервис прямо отказывается от предположения и возвращает пустой массив цитат.

Scope: search:read

Параметры

ПараметрТипОписание
queryобязательныйstringВопрос до 2000 символов.
streambooleanВернуть SSE-фрагменты content и финальный фрагмент citations.
textbooleanДобавить к цитатам точные подтверждающие фрагменты, использованные при ответе.
systemPromptstringДополнительная инструкция по стилю ответа до 8000 символов. Она не может отключить привязку к источникам.
userLocationstringРегион пользователя для локального контекста.
outputSchemaJSON SchemaСтруктура поля answer. Цитаты всегда возвращаются отдельно.

При stream: true ответ приходит как SSE: текст — во фрагментах content, использованные источники — в финальном citations. Структурированный объект сначала проверяется целиком и затем отправляется одним фрагментом content.

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

curl
curl https://api.llmtokenapi.ru/v1/answer \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "Какие ограничения есть у Responses API?",
    "text": false
  }'

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

json
{
  "answer": "Responses API поддерживает потоковые ответы и вызов инструментов.",
  "citations": [{"id": "https://example.com/docs", "url": "https://example.com/docs", "title": "Документация API"}],
  "requestId": "...",
  "usage": {"searches": 1, "extracted_pages": 6, "input_tokens": 4200, "output_tokens": 180, "charged_kopecks": 12}
}

Web API

POST/v1/contents

Получает чистое содержимое до 100 публичных URL, включая PDF. Умеет возвращать проверяемые фрагменты, AI-сводки, целевые вложенные страницы и управлять свежестью. Успешные страницы находятся в results, а statuses содержит результат каждого исходного URL. Оплата начисляется за успешно обработанные страницы и фактические токены только успешно подготовленных сводок.

Scope: web:read

Параметры

ПараметрТипОписание
urlsобязательныйURL[]От 1 до 100 публичных HTTP или HTTPS URL.
textboolean | objectВозвращать полный текст; maxCharacters ограничивает размер каждой страницы.
highlightsboolean | objectВернуть проверяемые фрагменты по query и их scores. dynamic распределяет общий контекст между страницами и требует заголовок LLMTOKENAPI-Beta: dynamic-highlights-2026-08-28.
summaryboolean | objectAI-сводка по каждой странице; query задаёт фокус, schema — безопасную JSON Schema Draft 7 для структурированного результата.
extras.linksboolean | integerДобавить все либо ограниченное число нормализованных HTTP/HTTPS-ссылок страницы.
maxAgeHoursinteger0 — всегда обновить, -1 — только кэш, 1–720 — допустимый возраст сохранённой версии.
livecrawlTimeoutintegerТаймаут получения одной страницы до 90000 мс.
subpagesintegerДо 100 вложенных страниц того же сайта.
subpageTargetstring | string[]Слова для приоритизации нужных вложенных страниц.

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

curl
curl https://api.llmtokenapi.ru/v1/contents \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://example.com/article", "https://example.com/docs"],
    "text": {"maxCharacters": 100000},
    "highlights": {"query": "ограничения API", "maxCharacters": 4000},
    "summary": {"query": "Кратко изложи возможности и ограничения"},
    "extras": {"links": true},
    "maxAgeHours": 24,
    "subpages": 3,
    "subpageTarget": ["docs", "pricing"]
  }'

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

json
{
  "object": "contents.results",
  "results": [{"url": "https://example.com/article", "title": "...", "text": "...", "highlights": ["..."], "highlightScores": [0.91], "summary": "...", "subpages": []}],
  "statuses": [{"id": "https://example.com/article", "status": "success", "source": "cached"}],
  "usage": {"successful_pages": 1, "summary_pages": 1, "summary_input_tokens": 840, "summary_output_tokens": 92}
}

Web Intelligence

POST/v1/web-intelligence/jobs

Принимает бизнес-вопрос, URL или домен, безопасную JSON Schema, фильтры свежести и верхний бюджет. Возвращает асинхронное research-задание, которое собирает источники и проверяет итоговый JSON или таблицу по схеме.

Scope: research:write

Параметры

ПараметрТипОписание
questionобязательныйstringВопрос или инструкция до 20 000 символов.
urlsURL[]До 100 исходных публичных URL. Нельзя передавать вместе с domain.
domainURLОдин сайт как область исследования.
outputSchemaобязательныйJSON SchemaБезопасное подмножество JSON Schema Draft 7, до 500 узлов.
outputFormatjson | tableФорма результата. По умолчанию json.
filtersobjectТема, язык, страна, даты, разрешённые и исключённые домены или пути.
maxAgeHoursintegerСвежесть от -1 до 8760 часов. По умолчанию 168.
maxSourcesintegerОт 1 до 100 источников.
maxSpendKopecksобязательныйintegerЖёсткий верхний бюджет в целых копейках.
webhookEndpointIdUUIDСохранённый webhook для события завершения.

Idempotency-Key обязателен. Статус доступен по GET /v1/web-intelligence/jobs/{id}; готовый structured result содержит использованные источники.

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

curl
curl https://api.llmtokenapi.ru/v1/web-intelligence/jobs \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: competitor-prices-2026-08-31" \
  -d '{
    "question": "Собери актуальные тарифы API для LLM и ссылки на страницы цен",
    "domain": "https://example.com",
    "outputFormat": "table",
    "outputSchema": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "plan": {"type": "string"},
          "price": {"type": "string"},
          "sourceUrl": {"type": "string"}
        },
        "required": ["plan", "price", "sourceUrl"]
      }
    },
    "filters": {"language": "ru", "includePaths": ["/pricing/**"]},
    "maxAgeHours": 24,
    "maxSources": 20,
    "maxSpendKopecks": 500
  }'

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

json
{
  "id": "2f35e4dd-3d29-4e9d-a979-59581918fd8e",
  "type": "research",
  "status": "queued",
  "progress": {"completed": 0, "total": null}
}

Web Intelligence

POST/v1/web-intelligence/templates

Сохраняет повторяемый сценарий. intervalMinutes включает запуск каждые 15 минут или реже, null оставляет ручной режим; runImmediately создаёт первый job в том же запросе.

Scope: research:write

Параметры

ПараметрТипОписание
nameобязательныйstringИмя шаблона до 200 символов.
intervalMinutesinteger | nullИнтервал 15–43 200 минут либо ручной режим.
runImmediatelybooleanСразу создать первый запуск.
question, outputSchema, filtersобязательныйobjectТе же параметры, что у разового задания.

Шаблон можно читать, менять, ставить на паузу и удалять. Ручной запуск: POST /v1/web-intelligence/templates/{id}/runs; история: GET того же маршрута.

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

curl
curl https://api.llmtokenapi.ru/v1/web-intelligence/templates \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Ежедневные цены конкурентов",
    "question": "Собери тарифы и отметь изменения",
    "urls": ["https://example.com/pricing"],
    "outputSchema": {"type": "array", "items": {"type": "object"}},
    "outputFormat": "table",
    "maxSpendKopecks": 500,
    "intervalMinutes": 1440,
    "runImmediately": true
  }'

Website Knowledge Sync

POST/v1/knowledge-bases/{id}/sources

Подключает публичный сайт к существующей базе знаний. Регулярно обновляет разрешённые страницы. Поиск остаётся доступен во время обновления; неизменившийся контент не требует повторной оплаты индексации.

Scope: knowledge:write

Параметры

ПараметрТипОписание
idобязательныйUUIDID существующей базы знаний.
urlобязательныйURLКорневой публичный HTTP или HTTPS URL.
includePaths / excludePathsstring[]До 100 правил путей каждого типа.
maxPagesintegerОт 1 до 10 000 страниц.
maxDepthintegerГлубина обхода от 0 до 20.
intervalMinutesinteger | nullПериод 15–43 200 минут либо только ручной запуск.
maxSpendKopecksобязательныйintegerВерхний бюджет одного обхода и индексации в копейках.
syncNowbooleanЗапустить первый обход сразу. По умолчанию true.

После готовности используйте существующие /search и /answer. Цитаты ответа содержат URL страницы сайта. Источники можно читать, менять, ставить на паузу или удалять.

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

curl
curl https://api.llmtokenapi.ru/v1/knowledge-bases/BASE_ID/sources \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: docs-sync-example-001" \
  -d '{
    "url": "https://docs.example.com",
    "name": "Документация продукта",
    "includePaths": ["/guides/**", "/api/**"],
    "excludePaths": ["/archive/**"],
    "maxPages": 500,
    "maxDepth": 8,
    "intervalMinutes": 1440,
    "maxSpendKopecks": 1000,
    "syncNow": true
  }'

Website Knowledge Sync

POST/v1/knowledge-bases/{id}/sources/{sourceId}/sync

Запускает обход вручную. Один и тот же Idempotency-Key безопасно возвращает созданное ранее задание без второго резервирования.

Scope: knowledge:write

Параметры

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

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

curl
curl -X POST https://api.llmtokenapi.ru/v1/knowledge-bases/BASE_ID/sources/SOURCE_ID/sync \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Idempotency-Key: docs-sync-manual-002"

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

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
}

Agent API

POST/v1/agent/runs

Запускает асинхронное многошаговое web-исследование, сбор списка или обогащение входных строк. Результат содержит только проверяемые публичные источники и фактическую стоимость.

Scope: research:write

Параметры

ПараметрТипОписание
queryобязательныйstringЗадача агента до 20 000 символов.
effortminimal | low | medium | high | xhigh | auto | maxГлубина работы. По умолчанию auto.
input.dataobject[]До 1000 исходных строк для проверки или обогащения.
input.exclusionobject[]До 1000 сущностей, которые нельзя возвращать повторно.
outputSchemaJSON SchemaСтрогая структура итогового результата.
previousRunIdUUIDПродолжить завершённый запуск этой же рабочей области.
maxSourcesintegerОт 3 до 100 источников.
maxSpendKopecksintegerВерхний бюджет запуска в копейках.

Повтор с тем же Idempotency-Key не создаёт второе задание или списание. Ссылка на события возвращается в заголовке Link.

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

curl
curl https://api.llmtokenapi.ru/v1/agent/runs \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: market-research-001" \
  -d '{
    "query": "Сравни российские сервисы LLM API и верни таблицу с источниками",
    "effort": "medium",
    "maxSources": 20,
    "maxSpendKopecks": 500
  }'

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

json
{
  "id": "...",
  "object": "agent_run",
  "status": "queued",
  "stopReason": null,
  "output": {"text": "", "structured": null, "grounding": []},
  "usage": {"searches": 0, "extractedPages": 0, "iterations": 0},
  "costKopecks": 0
}

Agent API

GET/v1/agent/runs

Возвращает запуски текущей рабочей области с cursor pagination.

Scope: research:read

Параметры

ПараметрТипОписание
limitintegerОт 1 до 100, по умолчанию 20.
cursorUUIDКурсор из nextCursor предыдущей страницы.

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

curl
curl "https://api.llmtokenapi.ru/v1/agent/runs?limit=20" \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY"

Agent API

GET/v1/agent/runs/{id}

Возвращает исходный запрос, текущий статус, текстовый или структурированный результат, использованные источники, usage и стоимость.

Scope: research:read

Параметры

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

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

curl
curl https://api.llmtokenapi.ru/v1/agent/runs/RUN_ID \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY"

Agent API

GET/v1/agent/runs/{id}/events

Без SSE возвращает страницу сохранённых lifecycle-событий. С Accept: text/event-stream воспроизводит историю и продолжает поток до завершения запуска.

Scope: research:read

Параметры

ПараметрТипОписание
idобязательныйUUIDID запуска.
cursorintegerПоследовательность последнего принятого события.
Last-Event-IDheaderВозобновить SSE после последнего принятого события.

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

curl
curl -N https://api.llmtokenapi.ru/v1/agent/runs/RUN_ID/events \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY" \
  -H "Accept: text/event-stream" \
  -H "Last-Event-ID: 0"

Agent API

POST/v1/agent/runs/{id}/cancel

Кооперативно отменяет активный запуск. До начала работы резерв освобождается полностью; после начала оплачиваются только уже выполненные операции.

Scope: research:write

Параметры

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

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

curl
curl -X POST https://api.llmtokenapi.ru/v1/agent/runs/RUN_ID/cancel \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY"

Agent API

DELETE/v1/agent/runs/{id}

Удаляет только завершённый, отменённый или ошибочный запуск вместе с сохранённым результатом.

Scope: research:write

Параметры

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

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

curl
curl -X DELETE https://api.llmtokenapi.ru/v1/agent/runs/RUN_ID \
  -H "Authorization: Bearer $LLMTOKENAPI_API_KEY"

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 сайта асинхронно. Стоимость одной операции резервируется при запуске; ответ 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, чтобы получать ответ по частям. Если модель временно недоступна до начала ответа, сервис может автоматически повторить запрос к той же модели.

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

Coding agents

Codex, OpenCode и Claude Code

Подписочный DeepSeek поддерживает потоковые ответы и вызовы инструментов через три совместимых протокола. Для подключения в клиенте достаточно указать base URL, модель и ключ.

Codex · config.toml

toml
model = "deepseek-ai-deepseek-v4-flash-0731"
model_provider = "llmtokenapi"

[model_providers.llmtokenapi]
name = "LLMTOKENAPI"
base_url = "https://api.llmtokenapi.ru/v1"
env_key = "LLMTOKENAPI_API_KEY"
wire_api = "responses"
requires_openai_auth = false
stream_idle_timeout_ms = 300000

OpenCode · opencode.json

json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "llmtokenapi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LLMTOKENAPI",
      "options": {
        "baseURL": "https://api.llmtokenapi.ru/v1",
        "apiKey": "{env:LLMTOKENAPI_API_KEY}"
      },
      "models": {
        "deepseek-ai-deepseek-v4-flash-0731": {"name": "DeepSeek V4 Flash — безлимит"}
      }
    }
  },
  "model": "llmtokenapi/deepseek-ai-deepseek-v4-flash-0731"
}

Claude Code · переменные окружения

bash
export ANTHROPIC_BASE_URL="https://api.llmtokenapi.ru"
export ANTHROPIC_AUTH_TOKEN="$LLMTOKENAPI_API_KEY"
export ANTHROPIC_MODEL="deepseek-ai-deepseek-v4-flash-0731"
export CLAUDE_CODE_MAX_OUTPUT_TOKENS="16000"
claude

Справочник

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_urlАдрес запрещён политикой безопасности
400invalid_audio_fileФормат, размер или длительность аудио не подходят
400moderation_blockedГенерация остановлена проверкой безопасности
400image_generation_failedЗапрос изображения отклонён или не выполнен
400embedding_failedЗапрос embeddings отклонён
400audio_generation_failedСинтез речи отклонён
400audio_transcription_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Лимит запросов временно исчерпан
500internal_errorВнутренняя ошибка сервиса
502upstream_errorЗапрос временно не выполнен
503model_unavailableМодель временно недоступна
503pricing_unavailableПрайс не опубликован
503upstream_unavailableСервис временно недоступен
json
{
  "error": {
    "code": "insufficient_balance",
    "message": "Недостаточно средств для резервирования запроса",
    "requestId": "7fe2b1cc-6a3a-4bb4-8729-850854df9186"
  }
}

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

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