KKeyDealerDocs
PUBLIC APIДокументация доступна без регистрации

Подключите модель
за один вечер.

OpenAI-совместимый API, один ключ и публичные цены в рублях. Здесь есть всё, чтобы оценить интеграцию до создания аккаунта.

OpenAI SDK cURL и обычный HTTP Streaming через SSE Настольный KD Code

Обновление · 10 октября 2026

GPT дешевле. GPT Image 2.5 уже доступен

Новые базовые цены уже действуют. Прежний ключ, адрес API и настройки подключения сохраняются.

Текстовые GPT — цена за миллион токенов

МодельБылоВходВыход
GPT-6 Astra80 ₽55 ₽55 ₽
GPT-6 Sol / GPT-6.1 Sol40 ₽28 ₽28 ₽
GPT-5.6 Sol50 ₽35 ₽35 ₽
GPT-5.6 Terra / GPT-5.530 ₽21 ₽21 ₽
GPT-6 Luna / GPT-5.6 Luna15 ₽10 ₽10 ₽

Входные и выходные токены считаются отдельно, по одной ставке. Для соответствующих Review-моделей действуют те же новые цены. Это снижение примерно на 30–33%, а не вдвое. Персональные условия аккаунта сохраняются; свою цену проверяйте в GET /v1/balance.

GPT Image 2.5 — цена за одно изображение

ФорматLowMediumHigh
Квадрат1,7 ₽1,7 ₽3,4 ₽
Портрет / альбом2,5 ₽2,5 ₽5 ₽

Публичный ID — gpt-image-2.5, результат — PNG. Low, Medium и High проверены живыми запросами. До 10 референсов PNG, JPEG или WebP, каждый до 2,5 МБ. Пропорции указывайте также в описании: точные пиксели результата могут отличаться. Тарифы GPT Image 2 и GPT Image 1.5 не менялись.

В текущих маршрутах GPT Image 1.5, 2 и 2.5 лимит — десять входных изображений. Запросы с 11 и 16 референсами отклонены при прямой проверке маршрутов. Не путайте этот лимит с количеством генерируемых картинок: один запрос KeyDealer выдаёт одну картинку.
Параметры и пример запроса
01

Быстрый старт

Три шага до первого ответа

Примеры используют привычный OpenAI SDK. Меняются только ключ, Base URL и имя модели.
Для длинных агентных задач рекомендуем KD Code

Без локальной оптимизации повторная отправка истории, файлов и результатов инструментов может существенно увеличивать счёт. Для максимального эффекта от управления контекстом ведите такие задачи в KD Code.

До 90% экономии в отдельных сценариях локальной оптимизации контекста. Ориентир из исторического контрольного теста от 01.09.2026: Gemini 3 Flash, шесть выводов инструментов. Это не замер каждой модели или текущего релиза. На вашей задаче экономия может быть ниже или нулевой.

Перед большой задачей
1
Создайте ключ

После регистрации откройте «API-ключи». Полное значение показывается один раз.

2
Сохраните секрет

Положите kd_live_… в переменную KEYDEALER_API_KEY.

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

Выберите модель из каталога и используйте пример ниже.

Что установить
cURL уже готов к работе

Можно использовать любой HTTP-клиент. SDK нужен только для удобства.

Первый запрос · curl
curl https://api.keydealer.ru/v1/chat/completions \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sonnet-5",
    "messages": [
      {"role": "user", "content": "Объясни API простыми словами"}
    ]
  }'
₽

Перед длинной сессией

Для длинных агентных задач рекомендуем KD Code

Без локальной оптимизации повторная отправка истории, файлов и результатов инструментов может существенно увеличивать счёт. Для максимального эффекта от управления контекстом ведите такие задачи в KD Code.
Установка и работа в клиенте — не одно и то же

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

Установить KD Code

Используйте прежний ключ KeyDealer и тот же баланс. KD Code бесплатен, запросы к моделям оплачиваются по тарифам вашего аккаунта. Экономия достигается сокращением повторного контекста, а не отдельной скидкой на токен.

До 90% экономии в отдельных сценариях локальной оптимизации контекста. Ориентир из исторического контрольного теста от 01.09.2026: Gemini 3 Flash, шесть выводов инструментов. Это не замер каждой модели или текущего релиза. На вашей задаче экономия может быть ниже или нулевой.

API остаётся доступен для собственных интеграций: контролируйте размер истории, повторные чтения и лимиты расходов. Серверные KD Trim и кэш готовых ответов имеют отдельные условия и не заменяют локальное управление контекстом KD Code.

Экономия зависит от вашей задачи

Размер экономии зависит от модели, задачи, инструментов и управления историей. На коротких запросах или уже оптимизированном контексте её может не быть. Конкретный процент заранее не гарантируется.

02

Авторизация

Один заголовок для всех моделей

Каждый запрос к защищённым методам передаёт ключ по стандартной схеме Bearer.
HTTP header
Authorization: Bearer kd_live_…
Ключ — это секрет

Не вставляйте его во frontend-код, мобильное приложение или публичный репозиторий. Делайте запросы со своего сервера.

01
Показывается один раз

KeyDealer сохраняет необратимый отпечаток, а не полное значение.

02
Отдельный ключ на проект

Так проще ограничивать расходы и отзывать доступ без остановки других систем.

03
Отзыв без ожидания

Скомпрометированный ключ можно отключить в личном кабинете.

03

Модели и цены

Каталог загружается прямо из API

Таблица показывает публичный каталог, включая позиции с нулевой ставкой, и честный статус каждого протокола: доступен или на проверке.
Загружаем каталог
МодельНазначениеВход / 1 млнВыход / 1 млнПротоколыВозможностиPrompt cache
Получаем актуальные данные из GET /v1/models…
Передавайте только публичный id из каталога. Префиксные и короткие ID внутренних маршрутов поставщика не являются частью API KeyDealer и отклоняются. verified означает проверку контролируемым запросом, unsupported — известное отсутствие функции, unknown — KeyDealer пока ничего не обещает.
GPT-6.1 Sol, GPT-6 Luna и отдельные модели с суффиксом -review доступны через Chat Completions. Проверены потоковый ответ, вызов инструментов и продолжение с их результатом. Review — отдельный выбор модели, а не автоматическая проверка каждого чата. Поддержку Responses, Messages и изображений смотрите отдельно в каталоге.
DiffusionGemma, Nemotron 3.5 Content Safety и Riva Translate работают с нулевой ставкой после подтвержденных денежных пополнений суммарно от 100 ₽; бонусы для открытия доступа не учитываются. Content Safety возвращает метки safe / unsafe, Riva предназначена для перевода: задайте языковую пару в сообщении system, например ru-en. Content Safety и Riva — специализированные модели, не универсальные агенты.
health.status показывает наблюдаемое состояние модели у поставщика. outage предупреждает о текущем сбое, но сам по себе не отключает маршрут: запрос продолжает использовать обычные повторы и резервные пути. Статус обновляется автоматически, а health.bars содержит почасовую историю за последние 168 часов.
Цены могут меняться

Закупочная стоимость маршрутов обновляется, поэтому ставки для будущих запросов тоже могут измениться. Актуальная базовая цена всегда опубликована в GET /v1/models, персональная — в GET /v1/balance. Уже принятый запрос рассчитывается по ставке, зафиксированной при его приёме.

04

Chat Completions

Знакомый формат запроса и ответа

Основной метод принимает историю сообщений и возвращает OpenAI-совместимый объект completion.
POST/v1/chat/completionsapplication/json
modelstring · обязательно

Публичный ID из GET /v1/models.

messagesarray · обязательно

От 1 до 1 000 сообщений с ролями system, user и assistant.

max_tokensinteger · необязательно

Максимальный объём ответа в токенах: целое число от 1. Предел конкретной модели — capabilities.max_output_tokens в GET /v1/models; если он не указан, ответ ограничивает только сама модель. Запрос с числом больше предела не отклоняется: модель отвечает в пределах своего предела, а применённое значение приходит в заголовке x-kd-max-tokens-applied.

streamboolean · необязательно

true включает потоковый ответ через Server-Sent Events.

tools / functionsarray · зависит от модели

Описание функций для tool calling. Проверяйте capabilities.tools.

tool_choice / function_callstring | object

Принудительный выбор работает только при forced_tool_choice = verified.

response_formatobject · зависит от модели

capabilities.json_output = verified подтверждает JSON mode, а не соблюдение строгой схемы. Для строгого JSON используйте проверенный Responses-маршрут.

parallel_tool_callsboolean · зависит от модели

Параллельные вызовы имеют отдельный статус в каталоге.

Никаких молчаливых отказов

Неизвестное поле верхнего уровня возвращает 400 unsupported_parameter. Если запрошенная возможность ещё не проверена, ответ содержит x-kd-unverified-capabilities. Поля с таким статусом используйте только после собственного теста.

Все поля запроса
Пример ответа · сокращён
{
  "id": "chatcmpl_kd_…",
  "object": "chat.completion",
  "model": "sonnet-5",
  "choices": [{
    "index": 0,
    "message": { "role": "assistant", "content": "…" },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9584,
    "completion_tokens": 126,
    "total_tokens": 9710,
    "prompt_tokens_details": {
      "estimated_route_context_tokens": 9500,
      "context_value_is_estimate": true
    }
  },
  "keydealer_billing": {
    "currency": "RUB",
    "charge_source": "usage",
    "input_rub_per_million": 30,
    "output_rub_per_million": 30,
    "charged_microrubles": 291300,
    "operation_id": "kd_req_…"
  }
}
05

Messages и Responses

Один ключ, разные wire-протоколы

Проверенный endpoint выбирается по задаче и статусу конкретной модели в GET /v1/models.
POST /v1/messagesAnthropic-compatible

Используется Claude Code и клиентами Messages API. Поддерживает заголовок x-api-key и Bearer-ключ KeyDealer.

POST /v1/responsesOpenAI Responses

Контракт для современных агентных клиентов. До открытия модели поле protocols.responses остаётся review.

gpt-5-6-terraCodex CLI · проверено

Работает через wire_api = "responses": streaming, terminal tools и возврат tool results подтверждены публичным E2E.

gpt-6-solResponses · проверено 28 сентября

Проверили форму запроса Codex Desktop: потоковый вызов инструмента, возврат результата, продолжение ответа и списание. Это не гарантия для любой версии клиента и каждой модели.

GET /v1/modelsисточник истины

Проверяйте protocols.chat_completions, protocols.anthropic_messages и protocols.responses отдельно.

GET /v1/models/info?id=…точный выбор endpoint

Для Codex выбирайте responses, для Claude Code — anthropic_messages из массива endpoints[] со статусом available. Одиночное поле endpoint оставлено только для старых клиентов.

Codex · пример конфигурации
# ~/.codex/config.toml
model = "gpt-6-sol"
model_provider = "keydealer"

[model_providers.keydealer]
name = "KeyDealer"
base_url = "https://api.keydealer.ru/v1"
wire_api = "responses"
requires_openai_auth = true

# Один раз сохраните ключ в локальном хранилище Codex:
export KEYDEALER_API_KEY="kd_live_…"
printf '%s' "$KEYDEALER_API_KEY" | codex login --with-api-key
codex
Fail-closed до оплаты

Если базовый протокол не подтверждён, KeyDealer возвращает model_under_review до резерва баланса и до обращения к модельному сервису.

Подключить Claude Code
JSON

Структурированные ответы

Ответ по строгой JSON Schema

Для классификации, извлечения данных и интеграций, которым нужен предсказуемый объект.

Используйте POST /v1/responses с gpt-5-6-terra или gpt-6-sol. Перед запросом проверьте capabilities.responses_json_schema = verified в GET /v1/models. Этот признак относится к Responses и проверяется отдельно от JSON mode.

Минимальный запрос · POST /v1/responses
{
  "model": "gpt-5-6-terra",
  "input": "Определи тон сообщения: Спасибо, очень помогли!",
  "max_output_tokens": 1024,
  "stream": false,
  "store": false,
  "text": {
    "format": {
      "type": "json_schema",
      "name": "tone_probe",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "tone": {
            "type": "string",
            "enum": [
              "neutral",
              "warm"
            ]
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "tone",
          "reason"
        ],
        "additionalProperties": false
      }
    }
  }
}

Результат находится в output[].content[] с типом output_text. Внутри — JSON-строка, которую можно разобрать через JSON.parse. На этом этапе доступны запросы с stream: false без инструментов. Выбор модели и действующий тариф сохраняются; автоматической замены другой моделью нет.

Поддерживаемая схемаограниченное подмножество

Корневой объект, вложенные объекты и массивы, string, number, integer, boolean, null, enum и const для простых значений. Nullable-поле задается массивом из одного типа и null. Все свойства объекта должны входить в required, additionalProperties — false.

Ограничениядо платного вызова

Схема до 16 КБ, глубина до 8, до 128 узлов схемы, до 64 свойств в объекте и значений enum. Выходной объект — до 20 000 узлов. $ref, $defs, anyOf, allOf, oneOf, pattern, format и ограничения длины, диапазона или числа элементов пока не поддерживаются.

Ошибка результатабез списания с клиента

Если итоговый ответ нарушает схему, вернется HTTP 502 с structured_output_invalid. Незавершенный ответ — 502 model_output_incomplete, отказ модели — 422 model_output_refused. Ошибка содержит request_id. Невалидная схема или неподдерживаемое сочетание параметров отклоняется HTTP 400 до обращения к модели.

KeyDealer проверяет итоговый текст ответа. Сервис не убирает Markdown-обрамление, не дополняет отсутствующие поля и не запускает платные повторы ради исправления формата. Для Luna и Luna Review поддержка строгой схемы через Chat Completions пока не подтверждена.

VIS

Входные изображения

Проверяйте не только значок vision

Каталог подтверждает приём изображения конкретным маршрутом, но пока не показывает, кто именно прочитал его внутри маршрута.

capabilities.vision=verified означает, что KeyDealer получил правильный ответ на контрольную картинку. Это не гарантия точного OCR, понимания любого скриншота или нативной обработки выбранной моделью. Значение unknown означает отсутствие подтверждённого результата, а не доказанное отсутствие зрения.

ПОДТВЕРЖДЁННЫЙ ВВОД

Смотрите живой каталог

Перед отправкой изображения проверяйте capabilities.vision в GET /v1/models. Список меняется после новых проб и не должен храниться в клиенте вручную.

ДВА НАБЛЮДАЕМЫХ ПУТИ

Прямой и с помощником

В проверке 7 сентября ответы маршрутов Opus сообщили, что изображение сначала читает Gemini, а выбранная модель отвечает по описанию. У ряда других маршрутов ответы указывали на прямую обработку. API пока не возвращает отдельный признак пути.

ГРАНИЦА ДОКАЗАТЕЛЬСТВА

Маршрут не раскрывает исполнителя

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

06

Deep Research

Актуальные данные из открытого интернета

Подтверждённый встроенный исследовательский маршрут сейчас один: Grok Multi-Agent через Responses API.
POST/v1/responsesдо нескольких минут
modelобязательно

Используйте публичный ID grok-4-20-multi-agent.

inputстрока · обязательно

Опишите тему, глубину, формат результата и требования к источникам.

streamboolean · необязательно

true возвращает события SSE и завершает поток событием response.completed.

toolsне передавать

Веб-исследование встроено в этот маршрут. Клиентские функции ему не требуются.

cURL · исследование с актуальными источниками
curl https://api.keydealer.ru/v1/responses \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4-20-multi-agent",
    "input": "Сравни актуальные тарифы трёх сервисов, проверь официальные страницы и укажи ссылки на источники."
  }'
GET/v1/modelsClaude server web search · fail-closed
anthropic_server_web_searchсейчас unknown

Ни один Claude-маршрут сейчас не публикуется как проверенный для серверного поиска. Недоказанная возможность блокируется до резерва баланса.

web_search_20250305server tool

Gateway умеет валидировать и передавать этот инструмент, но пропустит его только после новой маршрутной пробы со статусом verified.

searchполе поставщика

Общая пометка поиска в каталоге поставщика не доказывает поддержку конкретного Messages-инструмента и не повышает capability автоматически.

usage.server_tool_useтребуется для проверки

Возврат к verified потребует наблюдаемого поискового результата, цитат, terminal usage и корректного списания.

Не отправляйте Claude server search по старому примеру

После обновления маршрута ранее подтверждённая модель перестала принимать инструмент. До новой успешной пробы используйте Grok Multi-Agent выше либо отдельные методы /v1/search и /v1/web/fetch.

GPT Research пока не заявлен доступным

o3-deep-research не опубликован в живом GET /v1/models, поэтому KeyDealer не принимает его и не резервирует баланс. Маршрут откроется только после появления модели и завершённого теста web_search_preview с usage.

Списание только по завершённому usage

Исследование может использовать много внутренних рассуждений. KeyDealer списывает фактические входные и выходные токены только после корректно завершённого ответа; при оборванном потоке резерв возвращается.

Как считается цена
07

Интернет для агентов

Поиск и чтение страниц — двумя простыми методами

Оба метода доступны любому агенту с ключом KeyDealer и управляются одним переключателем «Доступ к интернету» в деталях ключа.
Обычный запрос к модели не выходит в интернет автоматически

/v1/chat/completions, обычный /v1/responses и /v1/messages работают только с переданным контекстом. Для актуальных данных используйте Grok Multi-Agent выше либо вызовите /v1/search или /v1/web/fetch и передайте результат модели.

POST /v1/searchактуальный веб-поиск

Принимает query и необязательный max_results от 1 до 10. Возвращает готовый ответ, найденные ссылки, usage и точное списание.

POST /v1/web/fetchчтение конкретной страницы

Принимает единственное поле url и возвращает очищенный текст публичной HTTP(S)-страницы размером до 2 МБ. Квоты по ключу и ограничения параллельности по ключу нет.

cURL · search и fetch
curl https://api.keydealer.ru/v1/search \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"Что изменилось в Node.js за последний месяц?","max_results":5}'

curl https://api.keydealer.ru/v1/web/fetch \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://nodejs.org/en/blog"}'
Внутренняя сеть не становится доступной

fetch блокирует localhost, частные и служебные IP, cloud metadata, домены KeyDealer, нестандартные порты и повторно проверяет каждый redirect. Cookies, клиентские заголовки и авторизация на страницу не пересылаются.

search выполняет полноценное исследование через Grok 4.20 Multi-Agent, поэтому может занять несколько минут и списывает фактические токены. fetch включён в сервис без отдельного списания. Новые и существующие ключи получают доступ по умолчанию; его можно целиком выключить для конкретного ключа.
08

Image API

Генерация и редактирование изображений

GPT Image, Gemini, Nano Banana и Grok работают по опубликованной цене за изображение. FLUX — без списаний после подтверждённого пополнения от 100 ₽.
POST/v1/images/generationsapplication/json
Платные GPT Image и бесплатные FLUX после пополненияЗагружаем цены
МодельРазмерLowMediumHighФорматы
Получаем актуальные цены из GET /v1/models…
modelобязательно

Выберите любую image-модель из живого GET /v1/models?kind=image: GPT Image, Gemini, Nano Banana, Grok Imagine или FLUX.

promptобязательно

Текстовое описание изображения. Текст не сохраняется в истории кабинета.

qualitylow | medium | high

По умолчанию medium. Чем выше качество, тем выше фиксированная цена. У GPT Image 2.6 Flare и Sunburst качество задаёт и класс разрешения: medium — около 2K (≈4,2 Мп), high — до 4K (не больше 8,3 Мп, длинная сторона до 3840 px); low у них нет.

size3 запрашиваемых размера

1024x1024, 1024x1536 или 1536x1024. Модель может вернуть другие размеры; фактические пиксели — в заголовке X-KD-Image-Actual-Size.

aspect_ratioнеобязательно

16:9, 9:16, 1:1, 3:2, 3:4 или 2:3. Передаётся модели, но соблюдение формата зависит от маршрута. У GPT Image 2.6 пропорция задаёт точный холст и должна совпадать с ориентацией size: 1:1 — с квадратом, 2:3, 3:4, 9:16 — с портретом, 3:2, 16:9 — с альбомом. GPT Image 2 параметр не принимает: пропорцию задаёт size (1024x1024, 1024x1536 или 1536x1024), запрос с aspect_ratio получает ошибку 400 без списания.

output_formatпо каталогу модели

Допустимые PNG, JPEG или WebP перечислены в capabilities.output_formats. Изображение возвращается в b64_json.

nтолько 1

Один запрос создаёт одно изображение. Для серии отправляйте отдельные запросы.

image / imagesпо возможностям модели

GPT Image 2.6, GPT Image 2.5, GPT Image 2 и GPT Image 1.5 принимают до 10 референсов в одном запросе. Для остальных моделей лимит смотрите в capabilities.image_references_max живого каталога. Каждый файл — PNG, JPEG или WebP до 2,5 МБ; внешние URL не скачиваются. В Image Studio KD Code десять референсов доступны начиная с версии 0.3.49.

maskGPT Image 2.6

Правка участка первой картинки из image или images. PNG с альфа-каналом того же размера, что первая картинка: полностью прозрачные пиксели отмечают, что менять. Нельзя вместе с markup.

markupGPT Image 2.6

Прозрачный PNG того же размера, что первая картинка, с обведённым участком; что изменить, опишите в prompt. Нельзя вместе с mask.

complexityGPT Image 2.6

low, medium или high — сколько модель планирует перед отрисовкой, отдельно от качества и без доплаты. По умолчанию у модели high; low подходит для точечных правок.

seed / stepsтолько FLUX

Воспроизводимый seed и число шагов от 1 до 100. FLUX сейчас возвращает JPEG 1024×1024.

X-KD-Idempotency-Key и X-KD-Idempotency-Scope обязательны. Перед генерацией получите свежий image_idempotency_scope из GET /v1/balance. Для каждой логической генерации создавайте новый ключ длиной 16–128 ASCII-символов; после неопределённого ответа повторяйте неизменённый запрос с тем же ключом и scope.
cURL · GPT Image
KD_IMAGE_SCOPE="$(
  curl -fsS https://api.keydealer.ru/v1/balance \
    -H "Authorization: Bearer $KEYDEALER_API_KEY" | \
  python3 -c 'import json,sys; print(json.load(sys.stdin)["image_idempotency_scope"])'
)"
KD_IMAGE_REQUEST_ID="$(uuidgen)"
curl https://api.keydealer.ru/v1/images/generations \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-KD-Idempotency-Key: $KD_IMAGE_REQUEST_ID" \
  -H "X-KD-Idempotency-Scope: $KD_IMAGE_SCOPE" \
  -d '{
    "model": "gpt-image-2.5",
    "prompt": "Предметная фотография кроссовок на светлом фоне. Итоговый холст квадратный, 1:1, 1024 на 1024 пикселя.",
    "quality": "medium",
    "size": "1024x1024",
    "output_format": "png"
  }'
cURL · бесплатная FLUX
KD_IMAGE_SCOPE="$(
  curl -fsS https://api.keydealer.ru/v1/balance \
    -H "Authorization: Bearer $KEYDEALER_API_KEY" | \
  python3 -c 'import json,sys; print(json.load(sys.stdin)["image_idempotency_scope"])'
)"
KD_IMAGE_REQUEST_ID="$(uuidgen)"
curl https://api.keydealer.ru/v1/images/generations \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-KD-Idempotency-Key: $KD_IMAGE_REQUEST_ID" \
  -H "X-KD-Idempotency-Scope: $KD_IMAGE_SCOPE" \
  -d '{
    "model": "flux-2-klein-4b",
    "prompt": "Плакат кофейни в конструктивистском стиле",
    "seed": 42,
    "steps": 28
  }'
Доступ и результат проверяемы

GET /v1/balance → image_equivalents заранее показывает цену и access.eligible. Тестовый бонус не открывает FLUX: учитываются только платежи со статусом approved суммарно от 100 ₽. Успешный ответ содержит base64-файл и точное нулевое либо платное списание.

Полный контракт
Укажите ориентацию, пропорции и размер также в тексте prompt: это помогает модели выдержать формат, но не гарантирует точные пиксели. KeyDealer не переписывает ваши промпты и не обрезает результат. Ответ API остаётся JSON; передавать stream не нужно. Для проверенных маршрутов GPT Image 2 и GPT Image 2.5 поток используется внутри шлюза, превью не считаются готовой генерацией. Для Nano и GPT Image 2.6 этот режим не подтверждён. Прозрачный фон GPT Image 2.6 — background: "transparent" с PNG или WebP.
Референсы принимаются только как data:image/...;base64,...; это исключает скачивание произвольных клиентских URL через наш сервер. Повтор с тем же idempotency key не запускает модель и не списывает генерацию второй раз. Готовый base64-результат сервер не хранит и повторно не выдаёт.
TTS

Speech API

Озвучка текста тем же ключом KeyDealer

Gemini 3.8 Flash TTS: один диктор, готовый WAV. Перед запуском проверьте наличие модели в живом каталоге.

Для изображений используйте Nano Banana через /v1/images/generations, для голоса — отдельный Speech API. Ключ и баланс общие. GET /v1/models/tts показывает доступные модели, GET /v1/audio/voices — имена голосов. Принимаются gemini-3-8-flash-tts и google/gemini-3-8-flash-tts; ответ нормализует ID к первому варианту.

Это асинхронный API KeyDealer: создание возвращает JSON-задачу, а не аудиофайл. Обычный синхронный вызов OpenAI audio.speech.create() без адаптации не подходит. Поддерживаются до 2 500 символов текста, один готовый голос и WAV 24 kHz mono PCM16. MP3, speed, клонирование и несколько дикторов пока не поддерживаются.
speech.json · тело оценки и запуска
{
  "model": "google/gemini-3-8-flash-tts",
  "input": "Привет! Это озвучка через KeyDealer.",
  "voice": "Charon",
  "instructions": "Спокойно и доброжелательно.",
  "response_format": "wav"
}
cURL · оценка → задача → статус → аудио
# 1. Бесплатная оценка. Ничего не резервирует и не запускает.
curl --fail-with-body https://api.keydealer.ru/v1/audio/speech/quote \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" --data-binary @speech.json

# 2. Из ответа возьмите max_charge_microrubles и проверьте максимум.
# Для этой задачи сохраните один уникальный ключ и не меняйте его при повторе.
curl --fail-with-body https://api.keydealer.ru/v1/audio/speech \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-KD-Idempotency-Key: $SPEECH_IDEMPOTENCY_KEY" \
  -H "X-KD-Max-Charge-Microrubles: $MAX_CHARGE_MICRORUBLES" \
  --data-binary @speech.json

# 3. Сохраните id из JSON и проверяйте ТУ ЖЕ задачу до completed/failed.
curl --fail-with-body "https://api.keydealer.ru/v1/audio/speech/operations/$OPERATION_ID" \
  -H "Authorization: Bearer $KEYDEALER_API_KEY"

# 4. Только после completed скачайте WAV. Повторное скачивание бесплатно.
curl --fail-with-body "https://api.keydealer.ru/v1/audio/speech/operations/$OPERATION_ID/content" \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" -o voice.wav

Цена в оценке приблизительная. До отправки резервируется указанный максимум; итоговое списание по подтверждённому использованию не может его превысить. Лишний резерв возвращается при завершении. При unknown исход ещё не подтверждён: не создавайте новую задачу и не считайте списание нулевым. Повтор с тем же idempotency key и тем же телом не вызывает модель заново.

Текст и инструкции отправляются поставщику для озвучки. В KeyDealer они хранятся зашифрованными до отправки; неотправленная задача истекает через 24 часа. Готовое аудио зашифровано и доступно только с ключом вашего аккаунта в течение 24 часов. После этого остаётся финансовая квитанция, но файл повторно не генерируется.

09

Rerank

Бесплатно пересортируйте найденные документы

Два проверенных маршрута ранжируют фрагменты по релевантности запросу. После подтверждённых пополнений от 100 ₽ отдельного списания нет.
POST/v1/rerankapplication/json
modelобязательно

Выберите публичный ID из GET /v1/models/rerank. Внутренние префиксные маршруты не принимаются.

queryобязательно

Строка или объект {"text":"…"} до 32 000 символов.

documentsобязательно

Строки или объекты с полем text. Лимит — 1 000 либо 512 документов в зависимости от модели.

top_nнеобязательно

Сколько лучших результатов вернуть. Точный максимум опубликован в capabilities.max_documents.

return_documentsboolean

При true KeyDealer возвращает исходный текст документа из вашего запроса вместе с оценкой.

truncateEND | NONE

END разрешает усечение длинного текста, NONE требует принять его целиком.

cURL · бесплатный rerank
curl https://api.keydealer.ru/v1/rerank \
  -H "Authorization: Bearer $KEYDEALER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nemotron-rerank-vl-1b-v2",
    "query": "как уменьшить задержку API",
    "documents": ["Включите streaming", "Увеличьте размер картинки", "Используйте connection pooling"],
    "top_n": 2,
    "return_documents": true
  }'
Проверяемо и без скрытого списания

GET /v1/balance → rerank_access показывает доступ. Успешный ответ содержит terminal usage и charged_microrubles: "0". В журнале остаются только счётчики, статус и время — не запрос и не документы.

Полный контракт
09

Embeddings

Находите документы и код по смыслу

Два проверенных текстовых маршрута превращают текст в вектор из 2 048 чисел. Бесплатно после подтверждённых пополнений суммарно от 100 ₽; приветственный бонус не учитывается.
POST/v1/embeddingsapplication/json

Выберите nemotron-3-embed-1b или nemotron-embed-vl-1b-v2. Передайте input как строку либо массив до 16 строк: до 8 000 символов в каждой и до 64 000 суммарно. Поддерживается только encoding_format: float; изменение размерности и изображения пока не поддерживаются.

JSON · embeddings
{
  "model": "nemotron-embed-vl-1b-v2",
  "input": [
    "Где списывается баланс?",
    "После выполнения запроса баланс уменьшается на его стоимость."
  ],
  "encoding_format": "float"
}

GET /v1/models/embedding возвращает каталог, а GET /v1/balance → embedding_access — доступ вашего ключа. Ответ содержит векторы в порядке входных строк и квитанцию с нулевым списанием. Одновременно допускаются два запроса на аккаунт; при перегрузке API отвечает 429.

Текст передаётся модели для обработки, но KeyDealer не сохраняет его и векторы в журнале. Векторную базу и индекс нужно хранить в вашем приложении. Не отправляйте секреты; для одного индекса используйте одну модель.
Для длинных агентных задач рекомендуем KD Code

Без локальной оптимизации повторная отправка истории, файлов и результатов инструментов может существенно увеличивать счёт. Для максимального эффекта от управления контекстом ведите такие задачи в KD Code.

До 90% экономии в отдельных сценариях локальной оптимизации контекста. Ориентир из исторического контрольного теста от 01.09.2026: Gemini 3 Flash, шесть выводов инструментов. Это не замер каждой модели или текущего релиза. На вашей задаче экономия может быть ниже или нулевой.

Контекст и расходы
10

Токены и списания

Формулу можно проверить

Фактический usage приходит вместе с ответом, а точное списание связывается с операцией в истории кабинета.
GET/v1/balanceBearer API key

Метод возвращает точный остаток, персональный коэффициент и фактические ставки аккаунта. Ответ не кэшируется.

cURL · проверка остатка
curl https://api.keydealer.ru/v1/balance \
  -H "Authorization: Bearer $KEYDEALER_API_KEY"

{
  "object": "balance",
  "currency": "RUB",
  "pricing_scope": "account_effective",
  "balance_microrubles": "6320000",
  "balance_rub": "6.32",
  "price_multiplier_bps": 10000,
  "token_equivalents": [{
    "model": "sonnet-5",
    "pricing_scope": "account_effective",
    "input_tokens": "210666",
    "output_tokens": "210666",
    "input_rub_per_million": 30,
    "output_rub_per_million": 30
  }]
}
СТОИМОСТЬprompt_tokens × цена входа
+ completion_tokens × цена выхода
Ставки указаны в рублях за 1 000 000 токенов
До запроса

Две области цены

GET /v1/models показывает базовый каталог, а GET /v1/balance — ваши account-effective ставки и индивидуальные условия.

При приёме

Ставка фиксируется

Изменение каталога не пересчитывает уже принятый запрос: фактический usage оплачивается по ставке, с которой создан резерв.

В кабинете

Операция совпадает

x-request-id и keydealer_billing.operation_id ведут к той же записи в истории.

Что входит во входные токены

prompt_tokens может включать служебный контекст выбранного маршрута. Каталог публикует оценку, а после измерений — p50, p95 и размер выборки. Объём может зависеть от запроса; источник истины — фактический usage.

Политика биллинга
Кэш

Response cache

Повторный ответ без нового списания

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

Для поддерживаемого запроса Chat Completions укажите kd_cache: true, temperature: 0 и stream: false. Инструменты и вызовы функций исключены; n не задан или равен 1. Кэш привязан к вашему ключу, модели и полному телу запроса. Совпадение даёт готовый ответ без нового списания; первый запрос оплачивается обычно.

Тело POST /v1/chat/completions · замените PUBLIC_MODEL_ID на ID из каталога
{"model":"PUBLIC_MODEL_ID","messages":[{"role":"user","content":"Кратко объясни HTTP"}],"temperature":0,"stream":false,"kd_cache":true}

Это явное исключение из режима без хранения содержимого: тело ответа хранится зашифрованным с TTL (текущая настройка — 24 часа). Текст запроса не сохраняется в кэше; для поиска используется отпечаток. Без kd_cache: true запись не создаётся. Не включайте кэш, если хранение ответа вам не подходит. Наличие опции не гарантирует попадание в кэш; результат проверяйте по served_from_cache и фактическому списанию.

11

KD Trim

Галочка, которая режет счёт на длинных сессиях

Настройка ключа на стороне шлюза: устаревшие выводы инструментов не пересылаются модели целиком. Ставить ничего не нужно.

Агент с каждым ходом пересылает всю историю заново, включая логи, диффы и содержимое файлов, прочитанные десять шагов назад. KD Trim заменяет тела таких устаревших выводов короткой пометкой прямо перед отправкой. Модель не подменяется: отвечает выбранная вами модель, но по укороченному входу, поэтому ответ может отличаться от ответа на полную историю. Свежие результаты остаются целиком. Для Responses API (Codex) Trim пока не применяется.

НАСТРОЙКА КЛЮЧА

Новые ключи — включено

Для новых ключей KD Trim включён по умолчанию. Настройки существующих ключей сохранены. Проверить и изменить: «API-ключи» → нужный ключ → KD Trim. В KD Code локальная архивация отключает повторную серверную обрезку.

ИЛИ ЗАГОЛОВКОМ

Для одного запроса

Заголовок x-kd-trim: 1 включает обрезку, x-kd-trim: off выключает. Явный заголовок всегда сильнее настройки ключа.

x-kd-trim: 1
ЧТО В ОТВЕТЕ

Видимый след

Заголовок x-kd-trim сообщает, сколько выводов и символов вырезано. В журнале кабинета появляется оценка сэкономленного.

cleared_tool_results=4
Границы честности

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

KD Code для длинных задач

API остаётся доступен для собственных интеграций: контролируйте размер истории, повторные чтения и лимиты расходов. Серверные KD Trim и кэш готовых ответов имеют отдельные условия и не заменяют локальное управление контекстом KD Code.

Как обновить KD Code

Завершите текущую задачу и сохраните файлы. В приложении откройте «Настройки → KD Engine», нажмите «Проверить обновления», дождитесь загрузки и выберите «Обновить и перезапустить».

После перезапуска проверьте версию: актуальная — KD Code 0.3.60, KD Engine 0.9.29. Если обновление не предлагается, обратитесь в поддержку.

12

KD Code 0.3.60

Настольный агент с одной командой установки

Вы выбираете проект сами, запускаете сессии, работаете с файлами и моделями KeyDealer, а приложение показывает фактические списания и уменьшает повторный служебный контекст в длинных задачах.
Что понадобится

macOS 13+ на Apple Silicon, Windows 10/11 x64 или Linux x64 и ключ KeyDealer из кабинета. Управление рабочим контекстом уже встроено в приложение.

Создать ключ
Экономия включается в работе внутри KD Code

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

Используйте прежний ключ KeyDealer и тот же баланс. KD Code бесплатен, запросы к моделям оплачиваются по тарифам вашего аккаунта. Экономия достигается сокращением повторного контекста, а не отдельной скидкой на токен.

До 90% экономии в отдельных сценариях локальной оптимизации контекста. Ориентир из исторического контрольного теста от 01.09.2026: Gemini 3 Flash, шесть выводов инструментов. Это не замер каждой модели или текущего релиза. На вашей задаче экономия может быть ниже или нулевой.

1
УСТАНОВКА

Одна команда для вашей системы

Установщик проверит отдельную bootstrap-подпись манифеста, затем размер и SHA-256 пакета, установит и запустит KD Code.

macOS · Terminal
curl -fsSL https://keydealer.ru/downloads/kd-code/install.sh | sh
Windows · PowerShell
irm https://keydealer.ru/downloads/kd-code/install.ps1 | iex
Linux x64 · Терминал
curl -fsSL https://keydealer.ru/downloads/kd-code/install-linux.sh | sh

Linux: Ubuntu 24.04 с графической сессией, Python 3, libsecret-tools и системной связкой ключей. Для профиля AppArmor установщик может один раз запросить sudo.

2
ПОДКЛЮЧЕНИЕ

Введите ключ KeyDealer

Приложение проверит ключ и сохранит его в Keychain на macOS, Credential Manager на Windows или системной связке Secret Service на Linux. Он не записывается в файлы выбранного проекта.

3
ПРОЕКТ

Создайте или выберите проект

KD Code не подключает папки автоматически. Работа начинается в выбранном проекте, а доступ к пути за его пределами требует отдельного подтверждения.

Что входит в KD Code

Проекты и изолированные сессии, работа с файлами и командами, выбор моделей, продолжение после перезапуска, управление рабочим контекстом и фактическая стоимость каждой сессии.

Все преимущества и загрузка
Глубина ответа: effort

В KD Code 0.3.50 рядом с основной моделью откройте «Глубина». Выбор действует со следующего запроса и сохраняется в текущем чате. «Как у модели» возвращает обычный режим; при смене модели настройка сбрасывается.

Меню появляется только у моделей с поддержкой effort, и набор уровней у них разный. Настройка относится к основной модели, не к помощникам или независимому ревью. Глубокий режим может отвечать дольше и расходовать больше токенов, но не гарантирует лучший результат. Тарифы не меняются.

Проверенные настройки уже выставлены

Новая установка получает профиль balanced + active: Gemini 3 Flash (gemini-3-flash) находит нужные файлы, а KD Engine передаёт их основной модели как уже выполненные чтения. Выбранная модель по-прежнему пишет код и отвечает пользователю. Недоказанные экспериментальные этапы скрыты и не могут быть включены из клиентского интерфейса.

После первого уже разрешённого успешного теста KD Code автоматически подхватывает только простую безопасную команду длительностью до 15 секунд, записывает её в .kd/validation.json и повторяет после правок. Shell-цепочки, команды записи и медленные наборы не включаются; для них доступна адресная настройка. Финальный полный прогон обязателен. Оба доказанных этажа можно отключить или вернуть кнопкой «Вернуть рекомендуемые настройки».

Как настроить
12 из 12 верных ответов за один запрос основной модели

Поиск по публичному tRPC · 06.09.2026 · Sonnet 5. Автоматический поисковый профиль: 4,36 ₽ за 12 задач, медиана до ответа 9,44 с, 144 900 входных токенов.

Живой прогон выполнен на KD Code 0.3.15. На всех 12 задачах движок подготовил полные выдержки до ответа; внешних вызовов библиотекаря и исполнения программ не потребовалось. В 0.3.16 исправлен выбор профиля на составных запросах; нового платного замера не было.

Один публичный репозиторий, 12 фиксированных задач и одна основная модель. Относительно исторического v27 стоимость ниже на 9,85%, но медиана времени выше на 19,19%. Это не гарантия такой же скорости, цены или точности на другом проекте. PROOF-LEDGER №58.

ВСТРОЕНО В KD ENGINE

Поиск по проекту с локальным индексом

KD Engine внутри приложения находит определения, использования и подходящие файлы в разрешённых папках. При неоднозначном вопросе библиотекарь помогает выбрать выдержки. Индекс хранится локально; выбранные данные передаются моделям для ответа. Модель ответа выбираете вы.

ЛЕДЖЕР В РУБЛЯХ

Сколько стоила сессия, видно сразу

Рядом с каждой сессией стоит сумма завершённых списаний в рублях. Не прогноз интерфейса и не счёт в конце месяца.

KD LAYERS · 2 ЭТАЖА

Два доказанных этажа работают из коробки

KD Locate заранее находит нужные файлы, а KD Verify запускает разрешённую быструю проверку сразу после правки без отдельного обращения к модели. Оба этажа включены одним рекомендуемым тумблером; их можно отключить, перенастроить или вернуть к рекомендуемым значениям.

−15,05% В ИЗМЕРЕННОМ A/B

Экономия, которая не стирает память

После первого хода крупные вложения остаются в локальном архиве. Длинные выводы тестов, линтера, typecheck и сборки превращаются в точный дайджест с exit code и ошибками; полный оригинал можно дочитать. В платном A/B на 10 задачах стоимость снизилась на 15,05% к обычному архиву при одинаковой приёмке результатов.

ОБЩАЯ СЕССИЯ · ВАШ GIT

Передайте работу коллеге вместе с контекстом

Сделайте выбранный чат общим и пригласите коллегу. Один участник занимает сессию, остальные видят его имя. Код и просмотренная история передаются вашей веткой Git; личные чаты и ключи не переносятся. Получатель выбирает свою модель и продолжает новым сообщением. Это работа по очереди, а не одновременное редактирование.

ОДИН КЛЮЧ

Семейства моделей под одним ключом

Claude, GPT, Gemini, GLM и остальной каталог KeyDealer выбираются в приложении. Рядом с моделью видно цену, статус и поддержку инструментов.

КАТАЛОГ + СВОИ MCP

Ваши приложения рядом с проектом

Подключайте GitHub, Linear, Notion и другие сервисы из каталога или добавляйте свой MCP-сервер. В разделе «Приложения» — 12 пресетов, 7 категорий и подборки по задачам. Доступ выдаёте вы; права аккаунта и лимиты сервиса продолжают действовать.

ТЕКСТ + РЕФЕРЕНСЫ

Image Studio внутри KD Code

Опубликованные модели изображений, их размеры, качество, форматы и цены собираются из каталога KeyDealer. Каталог обновляется при смене модели, возвращении в приложение и раз в несколько минут, поэтому серверные изменения появляются без перезапуска. Создание запускается только в настольном приложении, а референсы добавляются только вами.

ФАЙЛЫ + TERMINAL

Файлы, команды и тесты, а не только чат

Агент читает и меняет файлы выбранного проекта, запускает команды и прогоняет тесты. Каждый шаг виден в диалоге и остаётся проверяемым.

ТОЛЬКО ПО ВАШЕМУ РАЗРЕШЕНИЮ

Поставьте задачу через Telegram

Включите KD Code Remote, привяжите @KeyDealer_robot и разрешите конкретный проект. Каждая команда /kd создаёт новую изолированную локальную сессию; Plan включён по умолчанию, а Build разрешается отдельно на этом компьютере. Обычные сообщения и поддержка агента не запускают.

ЛОКАЛЬНО

Работа продолжается после перезапуска

Сессии и состояние хранятся на этом компьютере. После закрытия приложения можно вернуться к задаче, а не начинать её заново.

ПО ЗАПРОСУ · ЛОКАЛЬНО

Сохраняйте подход, а не повторяйте объяснение

По вашей просьбе агент сохраняет описание процедуры локально, находит его и проверяет, изменились ли указанные файлы. Каждое обращение требует одноразового согласия. В обычные запросы память не добавляется автоматически; её использование всё равно расходует токены.

ПОД ВАШИМ КОНТРОЛЕМ

Границы задаёте вы

Папка не подключается сама. По умолчанию обращение за пределы выбранного проекта требует подтверждения. Явный режим «Полный доступ» разрешает работать без повторных запросов, пока вы его не отключите.

ЛОКАЛЬНАЯ КАРТА · ВАШ КОНТРОЛЬ

Личный Jarvis связывает ваши проекты

Вы сами выбираете папки через системное окно и отдельно подтверждаете доступ. Jarvis локально строит визуальную карту файлов и связей, отвечает с реальными источниками и передаёт модели только подходящие фрагменты для конкретного вопроса. Доступ можно отозвать одной кнопкой.

БЕЗ СКРЫТОГО РАСХОДА

Скиллы подключаются по запросу

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

БЕЗ СЛУЧАЙНЫХ ПЕРЕБИВАНИЙ

Уточнение не сбивает текущий ход

Следующее сообщение ждёт, пока агент закончит. Вмешаться немедленно можно отдельным действием «Скорректировать».

ИЗОЛИРОВАНО

Отдельная история приложения

Сессии и настройки других агентских приложений не импортируются и не смешиваются с вашей работой.

BETA

Обновление видно прямо в приложении

KD Code проверяет общий канал и показывает заметное уведомление всем установкам, когда выходит новая версия. Установка запускается только по вашему нажатию; перед ней приложение проверяет Ed25519-подпись, размер и SHA-256 архива.

Без Apple Developer ID и Authenticode

KD Code распространяется напрямую с сайта. Первая установка проверяет detached SSH-подпись манифеста встроенным bootstrap-ключом, затем размер и SHA-256 пакета. Команды curl | sh и irm | iex до запуска этой проверки доверяют HTTPS-домену keydealer.ru; fingerprint bootstrap-ключа опубликован на странице KD Code для независимой сверки. Gatekeeper или SmartScreen всё равно могут показать предупреждение.

Git

KD Code 0.3.60

Продолжайте одну сессию с коллегой

Один участник работает, затем передает выбранную историю и код другому через общую ветку Git. Это не одновременное редактирование.

Обновите оба приложения. У каждого участника должны быть свой ключ KeyDealer, локальная копия одного Git-репозитория и доступ к его remote. Работайте в одной выбранной ветке. Кнопка «Совместная работа» находится рядом с управлением разрешениями в строке ввода чата.

1
ПРИГЛАШЕНИЕ

Выберите общий чат

В существующей сессии откройте «Совместная работа», укажите свое имя и нажмите «Сделать этот чат общим». Через «Пригласить коллегу» получите одноразовый код и передайте его коллеге лично. Он вводит свое имя и код, затем нажимает «Принять приглашение». Приглашение действует 24 часа.

2
ПЕРЕДАЧА

Сохраните код и просмотрите историю

Завершите ход агента и сохраните изменения кода обычным Git-коммитом. Нажмите «Подготовить передачу», проверьте всю выбранную историю и исходящие изменения, затем явно подтвердите публикацию. Приложение не коммитит посторонние незавершенные изменения. После успешной передачи сессия освобождается автоматически. Чтобы перестать работать без передачи нового checkpoint, используйте «Освободить».

3
ПРОДОЛЖЕНИЕ

Получите сессию на втором компьютере

Коллега нажимает «Получить из Git», выбирает общую сессию и нажимает «Посмотреть входящую историю». После просмотра выбирает свою модель и нажимает «Восстановить и занять». История появится в его локальном чате. Продолжение начинается только после нового сообщения; прежние инструменты повторно не запускаются.

Кто сейчас работает

В интерфейсе видно имя владельца. Владение продлевается автоматически. Если соединение или право владения потеряно, агент и его инструменты останавливаются. После перезапуска нужно занять сессию заново. Внешние редакторы и ручные Git-команды этой блокировкой не управляются.

Если публикация оборвалась, откройте ту же ветку и нажмите «Восстановить передачу». Приложение сверит уже отправленный checkpoint и завершит передачу без повторного выполнения задачи. Конфликт не перезаписывается автоматически. Для другой ветки нужна явная отдельная копия истории.

Просмотрите данные до отправки

Личные чаты не публикуются. Выбранная история остается в вашем Git-репозитории: ее тексты и файлы не отправляются на сервер координации KeyDealer. Сообщения и вложения могут содержать секреты, поэтому перед передачей проверьте их целиком. Ключи аккаунта и локальные разрешения не переносятся; у получателя действуют его собственные разрешения.

На checkpoint действует лимит 500 сообщений и 1 МБ; исходящий diff кода ограничен 2 МБ. Превышение блокирует передачу, а не обрезает историю молча.

Что изменилось в текущем выпуске

12C

KD Code 0.3.48+

Независимое ревью в истории чата

Выбранная модель комментирует новые завершенные действия агента. Это советы, а не гарантия правильности или безопасности.

Рядом с полем ввода нажмите «Ревью · выкл», затем откройте «Настройки» и выберите модель ревьюера. Включение и модель сохраняются для этой сессии при смене вкладок и перезапуске. По умолчанию ревью выключено.

ИСТОРИЯ

Комментарий к своему ходу

Карточка «Независимое ревью» появляется в основной ленте на отдельной подложке. В ней указаны модель, время и стоимость, когда она доступна в ответе. Выключение ревью не удаляет комментарии.

ОПЛАТА

Отдельные запросы

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

ГРАНИЦЫ

Не управляет агентом

Ревьюер не меняет файлы и не получает инструменты. Его комментарии не добавляются в контекст основной модели. Это отдельная функция, не KD Layers и не субагенты.

Локальная история и отдельное согласие

Настройки и комментарии сохраняются на этом компьютере. Они не передаются коллеге через Git и не входят в экспорт обычной истории. После включения отрывки новых действий передаются выбранной модели через KeyDealer. Фильтр типовых секретов не гарантирует обнаружения всех конфиденциальных данных: включайте ревью только для подходящих задач.

При ошибке, отмене или обрыве с неопределенным результатом платная проверка автоматически не повторяется. Если запрос уже обработан, отмена не гарантирует отсутствия списания.

12A

KD Layers · KD Code 0.3.42+

Два доказанных этажа одной настройкой

KD Locate сокращает первичный поиск основной моделью, а KD Verify локально проверяет правку без отдельного модельного хода.

Как включить: откройте KD Code → Настройки → в разделе KD Engine выберите Маршрутизация → включите «Рекомендуемая маршрутизация». Если приложение не показывает пометку об изменённых расширенных настройках, больше ничего настраивать не нужно.

1
ОТКРОЙТЕ

Настройки → KD Engine → Маршрутизация

Это единственный экран управления KD Layers. Экспериментальные этапы здесь не показываются.

2
ВКЛЮЧИТЕ

Рекомендуемая маршрутизация

Тумблер включает KD Locate и KD Verify вместе. Основная выбранная модель продолжает писать код и проверять итог.

3
ВОССТАНОВИТЕ

Вернуть рекомендуемые настройки

Используйте эту кнопку, если меняли исполнителя, режим передачи файлов или локальную проверку и хотите вернуться к доказанной конфигурации.

ЭТАЖ 1 · KD LOCATE

Поиск нужных файлов

По умолчанию gemini-3-flash находит файлы, а режим «Готовые чтения · рекомендуется» передаёт их основной модели как уже прочитанные. В расширенных настройках можно выбрать другую доступную модель, основную модель или локальный исполнитель.

ЭТАЖ 2 · KD VERIFY

Проверка после правки

Рекомендуемое значение — «Запускать затронутые тесты». Проверку выполняет локальный runtime проекта, поэтому сам запуск не расходует токены. Финальный полный прогон остаётся обязательным.

БЕЗ СКРЫТОЙ ПОДМЕНЫ

Основная модель остаётся автором

Вспомогательная модель выполняет только подписанный поисковый этап. Сложную правку, объяснение и итог даёт выбранная пользователем основная модель.

Когда нужны расширенные настройки

Открывайте их только для конкретной задачи: заменить модель KD Locate, вернуть совместимый режим передачи файлов, выключить проверку после правки или настроить адресные проверки долгого проекта. Для обычной работы оставьте рекомендуемые значения.

ПЕРЕДАЧА ФАЙЛОВ

Оставьте «Готовые чтения»

Режим history доказан: он не просто показывает модели выдержку, а представляет найденные файлы как выполненные чтения. system оставлен для совместимости и диагностики.

АДРЕСНЫЕ ПРОВЕРКИ

Найти → проверить → подтвердить

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

НЕТ КОМАНД

Проверьте runtime проекта

Если Node.js, Python, Go, Rust или нужный тестовый сценарий не установлен, KD Verify не сможет выполнить тест. Установите runtime или добавьте обычную тестовую команду и повторите поиск.

Что именно считается безопасным автоподхватом

Только уже разрешённая пользователем, успешно завершившаяся простая тестовая команда из белого списка с первым временем до 15 секунд. Shell-цепочки, перенаправления, команды записи, coverage, watch, обновление снапшотов и медленные полные наборы автоматически не включаются. KD Layers не получает новых разрешений.

Как должна помогать LLM

Сначала проверить версию KD Code, затем вести по пути «Настройки → KD Engine → Маршрутизация». Без конкретной причины не менять расширенные настройки; при сомнении предлагать «Вернуть рекомендуемые настройки». Не включать скрытые экспериментальные этапы, не складывать проценты двух этажей и не объявлять локальный тест успешным без runtime и фактического результата.

12B

KD Research · KDX-01

Исследование проекта до первой правки

Функция KD Engine автоматически работает во время поиска и чтения кода, даже если пользователь остаётся в режиме Build.

KD Research связывает формулировку задачи с определениями, местами вызова и точными диапазонами в разрешённых файлах. Для точного символа он возвращает его тело, связи и используемые определения того же файла за границами тела с явной пометкой области видимости. После первого успешного edit, write или apply_patch исследовательский инструмент засыпает. Уже найденный результат один раз передаётся следующему успешному обращению модели, после чего не повторяется в дальнейшей истории.

01 / БЫСТРЕЕ

Быстрее понимает задачу

Даже в большом проекте агент быстрее находит точку старта и переходит к делу.

02 / ТОЧНЕЕ

Не тратится на повторы

Меньше лишних шагов уходит на повторный поиск уже найденной информации.

03 / ЭКОНОМНЕЕ

Оставляет бюджет на результат

Вы меньше платите за знакомство с проектом и больше вкладываете в готовое решение.

ЖИЗНЕННЫЙ ЦИКЛ

−15,33%

стоимости предварительного разбора

ЖИЗНЕННЫЙ ЦИКЛ

−25%

оплаченных обращений: 12 → 9

ЖИЗНЕННЫЙ ЦИКЛ

4/4

качество ответа во всех восьми попытках

Меньше цена. Меньше обращений. Тот же результат: 4/4 во всех восьми попытках.

В четырёх парных прогонах одной задачи обычный KD Engine стоил 3,39 ₽, а KD Engine с KD Research — 2,87 ₽. Число оплаченных обращений снизилось с 12 до 9. Результат зависит от проекта, задачи и выбранной модели.

KD Research не обучает модель и не меняет её веса. KDX-01 — внутреннее имя технологии, KD Research — название функции для пользователя, KD Engine — движок, в котором она работает.

Посмотреть на странице продукта
12C

KD Code 0.3.18

Большое текстовое вложение не пересылается целиком на каждом ходу

Функция включена автоматически внутри KD Code на крупных сессиях. Обычные запросы через API не меняются.

На первом ходу выбранная модель получает текстовое вложение полностью. В следующих ходах KD Engine хранит оригинал на вашем компьютере и передаёт модели короткую карту и подходящие точные фрагменты. Если для ответа нужен другой участок, агент может дочитать локальный оригинал. Изображения, PDF и другие бинарные блоки архив не переписывает.

ПЕРВЫЙ ХОД

Полный текст

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

СЛЕДУЮЩИЕ ХОДЫ

Карта и нужные строки

Историческая копия не едет заново целиком. Выдержки выбираются под текущий вопрос, а ответ по-прежнему даёт выбранная вами модель.

НА ВАШЕМ КОМПЬЮТЕРЕ

Оригинал остаётся доступен

Локальное хранилище ограничено 512 МБ и очищает старые записи через 30 дней. Явное отключение архива сохраняется для диагностики.

WINDOWS · ОДИН БОЛЬШОЙ ФАЙЛ

−75,82% стоимости

Парный тест: 12/12 в обоих плечах, 41,92 → 10,13 ₽; медиана полного хода 20,51 → 12,75 с.

39 РАЗНЫХ ФАЙЛОВ · ASTRA

−51,40% стоимости

Парный тест на фактическом диапазоне 68–82 тыс. входных токенов; архив строго 12/12. Результат включает дополнительные дочитывания.

macOS · ФИНАЛЬНЫЙ КОД

12/12 одним вызовом

Финальная проверка качества: 12 основных запросов на 12 задач. Свежего контрольного плеча в этом прогоне не было.

Процент зависит от задачи

Максимальный эффект получен на повторяющемся большом файле. На разных вложениях экономия оказалась ниже. Эти замеры подтверждают конкретные корпуса и маршруты, а не обещают тот же процент каждому проекту.

13

Потоковые ответы

Показывайте результат сразу

Установите stream: true, чтобы получать части ответа по мере генерации.
Node.js · streaming
const stream = await client.chat.completions.create({
  model: "sonnet-5",
  messages: [{ role: "user", content: "Напиши короткий план" }],
  stream: true
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}

События приходят в формате text/event-stream. Поток завершается строкой data: [DONE]; итоговый usage приходит в одном из последних событий. Пока модель думает, шлюз присылает служебные строки : ping; клиенты SSE их пропускают. Длинные ответы берите потоком: запрос без потока ждёт не дольше 30 минут.

14

Ошибки API

Стабильные коды без внутренних деталей

Ошибки возвращаются в едином JSON-конверте. Добавляйте request_id в обращение в поддержку.
400
invalid_request / unsupported_parameter

Исправьте тело запроса. Неизвестные поля и заведомо неподдерживаемые возможности не выполняются и не тарифицируются.

400
model_under_review

Выбранный протокол модели ещё проверяется. Запрос блокируется до резерва денег и обращения к модельному сервису.

401
invalid_api_key

Передайте действующий ключ. Автоматически повторять запрос с тем же ключом не нужно.

402
insufficient_balance

Пополните баланс либо выберите более доступную модель, затем повторите запрос.

402
paid_topup_required

FLUX бесплатна после подтверждённых пополнений суммарно от 100 ₽. Приветственный и рекламные бонусы в порог не входят.

404
model_not_found / not_found

Обновите каталог через GET /v1/models или проверьте адрес метода.

413
invalid_request

Уменьшите тело запроса. Текущий лимит опубликован в GET /v1.

429
key_limit_exceeded

Лимита ключа не хватает на активные запросы и максимальный вывод нового запроса. Это не обязательно означает, что весь лимит уже списан. Дождитесь завершения активных запросов, уменьшите max_tokens или измените лимит ключа; один только backoff проблему не решает.

429
rate_limit_exceeded

Модель или поставщик временно перегружены. Повторите с exponential backoff и jitter; учитывайте Retry-After, если он передан.

502/503
model_service_unavailable

Средства за некорректный ответ не списываются. Повторите позже с backoff или выберите другую модель.

Error envelope
{
  "error": {
    "message": "Недостаточно средств на балансе.",
    "type": "billing_error",
    "code": "insufficient_balance",
    "request_id": "kd_req_…"
  }
}
Тело запроса

4 MiB

Текущее значение возвращается как limits.max_request_bytes в GET /v1.

Ответ и время

32 MiB · 30 минут тишины

Пока модель присылает данные, текстовый запрос не обрывается. Обрыв — только после 30 минут полной тишины, поток длится до 2 часов. Картинки, видео, rerank и эмбеддинги получают до 10 минут. Текущие значения — limits.model_silence_timeout_ms, limits.model_stream_ceiling_ms и limits.request_timeout_ms в GET /v1.

Частота

Без квоты KeyDealer

Для операций с действующим API-ключом нет ограничения частоты или параллельности со стороны KeyDealer. Доступность поставщика и модели по-прежнему учитывается.

15

Данные и безопасность

Публичная модель. Закрытая инфраструктура.

Вы всегда знаете, какую модель вызываете. Внутренние маршруты и технические секреты остаются внутри KeyDealer.
Контент не нужен кабинету

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

Только ваш ключ

Клиент работает с kd_live_… и доменом api.keydealer.ru. Внутренние credentials не передаются наружу.

Без сырых ошибок

Ответы и идентификаторы перестраиваются по разрешённой схеме. Заголовки и технические ошибки внутреннего маршрута не проксируются.

Контракт можно скачать

OpenAPI, llms.txt, тарифы и формула списания доступны до регистрации.

ГОТОВЫ ПРОВЕРИТЬ?

10 ₽ на баланс
для первого теста.

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

Получить API-ключ