---
title: "GET /subscriptions — Get subscriptions of API key owner"
url: https://lumean.app/developers/docs/api/get-subscriptions
locale: ru
description: "Get subscriptions of API key owner"
generated: 2026-10-17
operationId: subscription.index
method: GET
path: /subscriptions
scopes: [billing.read]
spec_version: 0.0.1
---

# GET /subscriptions

**Get subscriptions of API key owner**

Возвращает сводку по подпискам владельца API-ключа.

В ответе:
- `available_models` — список ключей моделей, доступных пользователю;
- `subscriptions` — только пригодные (живые) подписки: статус Active и срок
  не истёк. Истёкшие/просроченные и отменённые не возвращаются. По каждой:
  статус, признак `is_usable`, границы текущего периода и список `items` с
  планом, периодом, датой окончания (`end_at`) и остатком токенов
  (`token_allowance` / `tokens_used` / `tokens_remaining`).

Денежные данные (кошельки, баланс, цены) в публичном API не отдаются.

Требует право `billing.read`.

- Право ключа: `billing.read`

## Запрос

```bash
curl -X GET 'https://api.lumean.app/api/public/subscriptions' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY'
```

## Параметры

Параметров нет.

## Тело запроса

Тела нет.

## Ответы

### 200 — Сводка подписок и доступных моделей

**Поля ответа**

| Поле | Тип | Обяз. | Описание |
| --- | --- | --- | --- |
| `success` | `boolean` | обяз. | Признак успеха. Решение принимайте по HTTP-коду: у любого ответа 2xx здесь `true`, а ошибка приходит телом другой формы, где этого поля может не быть вовсе. |
| `message` | `string` | обяз. | Пояснение для человека, на языке аккаунта. Показать пользователю можно; разбирать программно — нет: формулировки меняются без предупреждения и кодом ошибки не являются. |
| `data` | `object` | обяз. | Полезная нагрузка ответа. |
| `data.available_models` | `array<string>` | обяз. | Коды моделей, доступных по активным подпискам. Модель вне этого списка будет отклонена при создании заказа. |
| `data.subscriptions` | `array<object>` | обяз. | Ваши подписки. Пустой список — активной подписки нет: заказы возможны только при положительном балансе LMC. |
| `data.subscriptions[].id` | `integer` | обяз. | Идентификатор подписки. |
| `data.subscriptions[].status` | `string` | обяз. | Состояние подписки. Автопродления нет: по истечении срока подписка переходит в истёкшую, и тариф покупается заново. |
| `data.subscriptions[].current_period_start` | `string` | обяз. | Начало текущего периода, ISO 8601. |
| `data.subscriptions[].current_period_end` | `string` | обяз. | Конец текущего периода, ISO 8601 — момент, когда подписка истечёт. |
| `data.subscriptions[].items` | `array<object>` | обяз. | Тарифы внутри подписки: что куплено и сколько токенов осталось. |
| `data.subscriptions[].items[].plan` | `object` | обяз. | Купленный тариф: код и название. |
| `data.subscriptions[].items[].plan.code` | `string` | обяз. | Код тарифа. |
| `data.subscriptions[].items[].plan.name` | `string` | обяз. | Название тарифа для показа. |
| `data.subscriptions[].items[].status` | `string` | обяз. | Состояние тарифа внутри подписки. |
| `data.subscriptions[].items[].is_usable` | `boolean` | обяз. | Можно ли расходовать этот тариф прямо сейчас. **Ориентируйтесь на него**, а не на `status`: тариф бывает активен формально, но уже исчерпан. |
| `data.subscriptions[].items[].billing_period` | `string` | обяз. | Период тарификации. Поддерживается только месячный. |
| `data.subscriptions[].items[].start_at` | `string` | обяз. | Когда тариф начал действовать, ISO 8601. |
| `data.subscriptions[].items[].end_at` | `string` | обяз. | Когда тариф истекает, ISO 8601. После этого момента остаток токенов сгорает. |
| `data.subscriptions[].items[].token_allowance` | `integer` | обяз. | Сколько токенов даёт тариф за период. |
| `data.subscriptions[].items[].tokens_used` | `integer` | обяз. | Сколько токенов израсходовано в текущем периоде. |
| `data.subscriptions[].items[].tokens_remaining` | `integer` | обяз. | Сколько токенов осталось. Именно этот остаток тратится **до** списания LMC — доплата включается, только когда он исчерпан. |

**Пример**

```json
{
  "success": true,
  "message": "Success",
  "data": {
    "available_models": [
      "gpt-4.1-mini",
      "claude-haiku-4.5"
    ],
    "subscriptions": [
      {
        "id": 301,
        "status": "active",
        "current_period_start": "2026-07-15T00:00:00+00:00",
        "current_period_end": "2026-08-15T00:00:00+00:00",
        "items": [
          {
            "plan": {
              "code": "creator",
              "name": "Creator"
            },
            "status": "active",
            "is_usable": true,
            "billing_period": "monthly",
            "start_at": "2026-07-15T00:00:00+00:00",
            "end_at": "2026-08-15T00:00:00+00:00",
            "token_allowance": 30000,
            "tokens_used": 8200,
            "tokens_remaining": 21800
          }
        ]
      }
    ]
  }
}
```

### 401 — API-ключ отсутствует, неизвестен, неактивен или истёк

**Поля ответа**

| Поле | Тип | Обяз. | Описание |
| --- | --- | --- | --- |
| `success` | `boolean` | обяз. | Всегда `false` в ответах об ошибке. |
| `message` | `string` | обяз. | Текст ошибки на языке ключа (задаётся заголовком `X-Locale`). |
| `data` | `null` — nullable | обяз. | Всегда `null`, когда запрос отклонён до обработки. |

**Пример**

```json
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
```

### 403 — У ключа нет права billing.read

**Поля ответа**

| Поле | Тип | Обяз. | Описание |
| --- | --- | --- | --- |
| `success` | `boolean` | обяз. | Всегда `false` в ответах об ошибке. |
| `message` | `string` | обяз. | Текст ошибки на языке ключа (задаётся заголовком `X-Locale`). |

**Пример**

```json
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
```

---

- Эта же страница в браузере: https://lumean.app/developers/docs/api/get-subscriptions
- Машинный справочник целиком: https://api.lumean.app/docs/llm.md
