Account
Slicer API account endpoints — profile, token balance, the free first video, the token's scopes and spend limit, and wallet transaction history.
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).
Current account and token
GET
/v1/meRequest
curl "https://api.slicer.media/v1/me" \
-H "Authorization: Bearer $SLICER_TOKEN"const response = await fetch('https://api.slicer.media/v1/me', {
headers: {
Authorization: `Bearer ${process.env.SLICER_TOKEN}`,
},
});
const { ok, data, error } = await response.json();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 |
|---|---|---|
idrequired | integer | |
namerequired | string | null | |
languagerequired | string | ru · en |
walletrequired | object | |
wallet.balancerequired | integer | Token balance |
wallet.heldrequired | integer | Reserved for running jobs |
wallet.availablerequired | integer | Available to spend |
wallet.freeMontageAvailablerequired | boolean | The first video is free (with a watermark) |
wallet.montageTokensrequired | integer | Price of one montage |
tokenrequired | object | |
token.kindrequired | string | personal · oauth |
token.scopesrequired | string[] | |
token.spendLimitrequired | integer | null | |
token.spentThisMonthrequired | integer |
{
"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/transactionsQuery parameters
| Field | Type | Description |
|---|---|---|
limit | integer | 1–100 |
cursor | string | ≤ 200 |
Request
curl "https://api.slicer.media/v1/wallet/transactions" \
-H "Authorization: Bearer $SLICER_TOKEN"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();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 |
|---|---|---|
itemsrequired | WalletTransaction[] | |
nextCursorrequired | string | null |
{
"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 |
|---|---|---|
idrequired | integer | |
namerequired | string | null | |
languagerequired | string | ru · en |
walletrequired | object | |
wallet.balancerequired | integer | Token balance |
wallet.heldrequired | integer | Reserved for running jobs |
wallet.availablerequired | integer | Available to spend |
wallet.freeMontageAvailablerequired | boolean | The first video is free (with a watermark) |
wallet.montageTokensrequired | integer | Price of one montage |
tokenrequired | object | |
token.kindrequired | string | personal · oauth |
token.scopesrequired | string[] | |
token.spendLimitrequired | integer | null | |
token.spentThisMonthrequired | integer |
WalletTransaction
| Field | Type | Description |
|---|---|---|
idrequired | integer | |
typerequired | string | topup · bonus · charge · refund · adjustment |
amountrequired | integer | Tokens: positive — credit, negative — charge |
descriptionrequired | string | null | |
projectIdrequired | integer | null | |
createdAtrequired | string | ISO 8601 date-time, UTC |