Skip to content

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

На этой странице показан полный сценарий с curl:

  1. Регистрация и вход (cookie-сессия).
  2. Создание воркспейса.
  3. Создание API-ключа (raw-ключ показывается один раз).
  4. Получение id модели из GET /v1/models.
  5. Вызов POST /v1/chat/completions с ключом.
  6. Проверка баланса.

Замените https://api.runne.run на базовый URL вашего инстанса.

1. Регистрация

bash
curl -c cookies.txt -X POST https://api.runne.run/v1/auth/register \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com","password":"correct-horse-battery","name":"You"}'

Ответ (HTTP 201) — регистрация сразу выполняет вход и устанавливает cookie runne_session:

json
{ "customer_id": "0191…", "email": "you@example.com" }

password должен быть не короче 8 символов. Повторная регистрация того же email вернёт 409 email_already_registered.

2. Вход (опционально)

Если аккаунт уже есть:

bash
curl -c cookies.txt -X POST https://api.runne.run/v1/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com","password":"correct-horse-battery"}'

Ответ (HTTP 200):

json
{ "expires_at": "2026-09-13T09:00:00.000Z" }

3. Создание воркспейса

bash
curl -b cookies.txt -X POST https://api.runne.run/v1/workspaces \
  -H 'Content-Type: application/json' \
  -d '{"name":"my-app"}'

Ответ (HTTP 201):

json
{
  "id": "0191…",
  "customer_id": "0191…",
  "name": "my-app",
  "balance": "0",
  "currency": "RUB",
  "status": "active",
  "created_at": "2026-09-12T00:00:00.000Z",
  "updated_at": "2026-09-12T00:00:00.000Z"
}

Сохраните id воркспейса — он используется во всех вызовах в разрезе воркспейса.

4. Создание API-ключа

bash
curl -b cookies.txt -X POST https://api.runne.run/v1/workspaces/WORKSPACE_ID/api-keys \
  -H 'Content-Type: application/json' \
  -d '{"name":"prod-key","scopes":["chat:write","balance:read"]}'

Ответ (HTTP 201):

json
{
  "id": "0191…",
  "raw_key": "rn_live_4xK9mP2qR7sT_7hJ3kL9mN2pQ5rT8vW1xY4zA6bC0dE2fG4hI6jK8",
  "key_id": "4xK9mP2qR7sT",
  "name": "prod-key",
  "scopes": ["chat:write", "balance:read"],
  "created_at": "2026-09-12T00:00:00.000Z"
}

Сохраните raw_key сейчас

raw_key возвращается только один раз. Сервер хранит лишь HMAC секрета и не может восстановить исходное значение. Храните его в secrets-менеджере и никогда не логируйте.

5. Получение id модели

Для chat нужна модель, существующая в каталоге и имеющая прайс. В beta каталог изначально пуст — platform admin должен сначала создать модель и её прайс. Получите id, который будете использовать:

bash
curl https://api.runne.run/v1/models

Используйте возвращённый id как поле model в следующем шаге. Модели по умолчанию нет: значение, которого нет в каталоге, вернёт 404 not_found (нет прайса для модели).

6. Вызов chat completions

bash
# Используйте id модели из GET /v1/models.
curl -X POST https://api.runne.run/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer rn_live_4xK9mP2qR7sT_7hJ3kL9mN2pQ5rT8vW1xY4zA6bC0dE2fG4hI6jK8' \
  -d '{"model":"<model-id-from-v1-models>","messages":[{"role":"user","content":"Hello"}]}'

Ответ (в beta возвращается mock-ответ):

json
{
  "id": "chatcmpl-mock-…",
  "object": "chat.completion",
  "created": 1750000000,
  "model": "mock-model",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "This is a mock response for demonstration purposes." },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 2, "completion_tokens": 50, "total_tokens": 52 }
}

Запрос требует скоупа chat:write и лимитируется по каждому ключу. Стоимость сначала резервируется, затем списывается с баланса воркспейса.

7. Проверка баланса

bash
curl -X GET https://api.runne.run/v1/balance \
  -H 'Authorization: Bearer rn_live_4xK9mP2qR7sT_7hJ3kL9mN2pQ5rT8vW1xY4zA6bC0dE2fG4hI6jK8'

Ответ (требуется скоуп balance:read):

json
{ "balance": "0", "currency": "RUB", "updated_at": "2026-09-12T00:00:00.000Z" }

Баланс пуст, пока вы не пополните его или администратор не внесёт корректировку.

Дальнейшие шаги