# Account

> Slicer API account endpoints — profile, token balance, the free first video, the token's scopes and spend limit, and wallet transaction history.

Source: https://docs.slicer.media/en/api/reference/account/

Details of the account and of the token used for the request: balance, whether the free first video is available, scopes, spend limit and how much of it was spent this month. You can't top up through the API — token packs are bought in the app ([Balance and packs](https://docs.slicer.media/en/guide/account/balance/)).

## Current account and token

`GET /v1/me`

- **Scopes:** `account:read`
- **Rate limit:** default

### Request

**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()
```

### Response

**Response fields: `Me` (14)**

| Field | Type | Description |
| --- | --- | --- |
| `id` _(required)_ | `integer` |     |
| `name` _(required)_ | `string \| null` |     |
| `language` _(required)_ | `string` | — `ru` · `en` |
| `wallet` _(required)_ | `object` |     |
| `wallet.balance` _(required)_ | `integer` | Token balance |
| `wallet.held` _(required)_ | `integer` | Reserved for running jobs |
| `wallet.available` _(required)_ | `integer` | Available to spend |
| `wallet.freeMontageAvailable` _(required)_ | `boolean` | The first video is free (with a watermark) |
| `wallet.montageTokens` _(required)_ | `integer` | Price of one montage |
| `token` _(required)_ | `object` |     |
| `token.kind` _(required)_ | `string` | — `personal` · `oauth` |
| `token.scopes` _(required)_ | `string[]` |     |
| `token.spendLimit` _(required)_ | `integer \| null` |     |
| `token.spentThisMonth` _(required)_ | `integer` |     |

Response example:

```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
    }
  }
}
```

## Wallet transactions

`GET /v1/wallet/transactions`

- **Scopes:** `account:read`
- **Rate limit:** default

### Query parameters

| Field | Type | Description |
| --- | --- | --- |
| `limit` | `integer` | — 1–100 |
| `cursor` | `string` | — ≤ 200 |

### Request

**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()
```

### Response

**Response fields: `object` (2)**

| Field | Type | Description |
| --- | --- | --- |
| `items` _(required)_ | `WalletTransaction[]` |     |
| `nextCursor` _(required)_ | `string \| null` |     |

Response example:

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

## Schemas

`Me`

| Field | Type | Description |
| --- | --- | --- |
| `id` _(required)_ | `integer` |     |
| `name` _(required)_ | `string \| null` |     |
| `language` _(required)_ | `string` | — `ru` · `en` |
| `wallet` _(required)_ | `object` |     |
| `wallet.balance` _(required)_ | `integer` | Token balance |
| `wallet.held` _(required)_ | `integer` | Reserved for running jobs |
| `wallet.available` _(required)_ | `integer` | Available to spend |
| `wallet.freeMontageAvailable` _(required)_ | `boolean` | The first video is free (with a watermark) |
| `wallet.montageTokens` _(required)_ | `integer` | Price of one montage |
| `token` _(required)_ | `object` |     |
| `token.kind` _(required)_ | `string` | — `personal` · `oauth` |
| `token.scopes` _(required)_ | `string[]` |     |
| `token.spendLimit` _(required)_ | `integer \| null` |     |
| `token.spentThisMonth` _(required)_ | `integer` |     |

`WalletTransaction`

| Field | Type | Description |
| --- | --- | --- |
| `id` _(required)_ | `integer` |     |
| `type` _(required)_ | `string` | — `topup` · `bonus` · `charge` · `refund` · `adjustment` |
| `amount` _(required)_ | `integer` | Tokens: positive — credit, negative — charge |
| `description` _(required)_ | `string \| null` |     |
| `projectId` _(required)_ | `integer \| null` |     |
| `createdAt` _(required)_ | `string` | ISO 8601 date-time, UTC |
