# Аккаунт

> Эндпоинты аккаунта Slicer API — профиль, баланс токенов, бесплатный первый ролик, области и лимит расходов токена, история операций кошелька.

Источник: https://docs.slicer.media/api/reference/account/

Сведения об аккаунте и токене, с которым сделан запрос: баланс, доступно ли бесплатное первое видео, области доступа, лимит расходов и сколько из него потрачено в этом месяце. Пополнить баланс через API нельзя — пакеты покупаются в приложении ([Баланс и пакеты](https://docs.slicer.media/guide/account/balance/)).

## Аккаунт и токен

`GET /v1/me`

- **Области доступа:** `account:read`
- **Лимит:** обычный

### Запрос

**curl**

```bash
curl "https://api.slicer.media/v1/me" \
  -H "Authorization: Bearer $SLICER_TOKEN"
```

**JavaScript**

```js
const response = await fetch('https://api.slicer.media/v1/me', {
  headers: {
    Authorization: `Bearer ${process.env.SLICER_TOKEN}`,
  },
});
const { ok, data, error } = await response.json();
```

**Python**

```python
import os
import requests

response = requests.get(
    "https://api.slicer.media/v1/me",
    headers={"Authorization": f"Bearer {os.environ['SLICER_TOKEN']}"},
)
body = response.json()
```

### Ответ

**Поля ответа: `Me` (14)**

| Поле | Тип | Описание |
| --- | --- | --- |
| `id` _(обязательное)_ | `integer` |     |
| `name` _(обязательное)_ | `string \| null` |     |
| `language` _(обязательное)_ | `string` | — `ru` · `en` |
| `wallet` _(обязательное)_ | `object` |     |
| `wallet.balance` _(обязательное)_ | `integer` | Баланс токенов |
| `wallet.held` _(обязательное)_ | `integer` | Зарезервировано под идущие работы |
| `wallet.available` _(обязательное)_ | `integer` | Можно потратить |
| `wallet.freeMontageAvailable` _(обязательное)_ | `boolean` | Первый ролик бесплатно (с водяным знаком) |
| `wallet.montageTokens` _(обязательное)_ | `integer` | Цена одного монтажа |
| `token` _(обязательное)_ | `object` |     |
| `token.kind` _(обязательное)_ | `string` | — `personal` · `oauth` |
| `token.scopes` _(обязательное)_ | `string[]` |     |
| `token.spendLimit` _(обязательное)_ | `integer \| null` |     |
| `token.spentThisMonth` _(обязательное)_ | `integer` |     |

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

```json
{
  "ok": true,
  "data": {
    "id": 42,
    "name": "Anna",
    "language": "ru",
    "wallet": {
      "balance": 240,
      "held": 0,
      "available": 240,
      "freeMontageAvailable": true,
      "montageTokens": 24
    },
    "token": {
      "kind": "personal",
      "scopes": [
        "account:read"
      ],
      "spendLimit": 200,
      "spentThisMonth": 0
    }
  }
}
```

## Операции кошелька

`GET /v1/wallet/transactions`

- **Области доступа:** `account:read`
- **Лимит:** обычный

### Параметры запроса

| Поле | Тип | Описание |
| --- | --- | --- |
| `limit` | `integer` | — 1–100 |
| `cursor` | `string` | — ≤ 200 |

### Запрос

**curl**

```bash
curl "https://api.slicer.media/v1/wallet/transactions" \
  -H "Authorization: Bearer $SLICER_TOKEN"
```

**JavaScript**

```js
const response = await fetch('https://api.slicer.media/v1/wallet/transactions', {
  headers: {
    Authorization: `Bearer ${process.env.SLICER_TOKEN}`,
  },
});
const { ok, data, error } = await response.json();
```

**Python**

```python
import os
import requests

response = requests.get(
    "https://api.slicer.media/v1/wallet/transactions",
    headers={"Authorization": f"Bearer {os.environ['SLICER_TOKEN']}"},
)
body = response.json()
```

### Ответ

**Поля ответа: `object` (2)**

| Поле | Тип | Описание |
| --- | --- | --- |
| `items` _(обязательное)_ | `WalletTransaction[]` |     |
| `nextCursor` _(обязательное)_ | `string \| null` |     |

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

```json
{
  "ok": true,
  "data": {
    "items": [
      {
        "id": 42,
        "type": "topup",
        "amount": 1,
        "description": "string",
        "projectId": 42,
        "createdAt": "2026-10-16T09:30:00Z"
      }
    ],
    "nextCursor": "eyJpZCI6NDJ9"
  }
}
```

## Схемы

`Me`

| Поле | Тип | Описание |
| --- | --- | --- |
| `id` _(обязательное)_ | `integer` |     |
| `name` _(обязательное)_ | `string \| null` |     |
| `language` _(обязательное)_ | `string` | — `ru` · `en` |
| `wallet` _(обязательное)_ | `object` |     |
| `wallet.balance` _(обязательное)_ | `integer` | Баланс токенов |
| `wallet.held` _(обязательное)_ | `integer` | Зарезервировано под идущие работы |
| `wallet.available` _(обязательное)_ | `integer` | Можно потратить |
| `wallet.freeMontageAvailable` _(обязательное)_ | `boolean` | Первый ролик бесплатно (с водяным знаком) |
| `wallet.montageTokens` _(обязательное)_ | `integer` | Цена одного монтажа |
| `token` _(обязательное)_ | `object` |     |
| `token.kind` _(обязательное)_ | `string` | — `personal` · `oauth` |
| `token.scopes` _(обязательное)_ | `string[]` |     |
| `token.spendLimit` _(обязательное)_ | `integer \| null` |     |
| `token.spentThisMonth` _(обязательное)_ | `integer` |     |

`WalletTransaction`

| Поле | Тип | Описание |
| --- | --- | --- |
| `id` _(обязательное)_ | `integer` |     |
| `type` _(обязательное)_ | `string` | — `topup` · `bonus` · `charge` · `refund` · `adjustment` |
| `amount` _(обязательное)_ | `integer` | Токены: плюс — начисление, минус — списание |
| `description` _(обязательное)_ | `string \| null` |     |
| `projectId` _(обязательное)_ | `integer \| null` |     |
| `createdAt` _(обязательное)_ | `string` | Дата и время ISO 8601, UTC |
