Каталог и цены
Каталог стилей и настроек монтажа, пресеты экспорта, цена операции до запуска и спецификация OpenAPI — эндпоинты, доступные с любым токеном.
На этой странице
Каталог — тот же, что у приложений Slicer: шаблоны, шрифты, акцентные цвета, оформление субтитров, параметры монтажа, режиссура, длительности, ограничения материалов и цены. Названия и описания — на русском и английском. Каталог меняется редко, его удобно кэшировать.
Стили, настройки и цены
GET
/v1/stylesЗапрос
curl "https://api.slicer.media/v1/styles" \
-H "Authorization: Bearer $SLICER_TOKEN"const response = await fetch('https://api.slicer.media/v1/styles', {
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/styles",
headers={"Authorization": f"Bearer {os.environ['SLICER_TOKEN']}"},
)
body = response.json()Ответ
Поля ответа: Styles (15)
| Поле | Тип | Описание |
|---|---|---|
templatesобязательное | object[] | |
templates[].idобязательное | string | |
fontsобязательное | object[] | |
fonts[].idобязательное | string | |
colorsобязательное | object[] | |
colors[].idобязательное | string | |
subtitleDesignsобязательное | object[] | |
subtitleDesigns[].idобязательное | string | |
subtitleOptions | object[] | Настройки субтитров (выделение слова, появление, слов на экране, регистр) и их значения |
subtitleOptions[].idобязательное | string | |
paramsобязательное | object[] | |
params[].idобязательное | string | |
directionобязательное | object | |
defaultsобязательное | object | |
pricingобязательное | object |
{
"ok": true,
"data": {
"templates": [
{
"id": "string"
}
],
"fonts": [
{
"id": "string"
}
],
"colors": [
{
"id": "string"
}
],
"subtitleDesigns": [
{
"id": "string"
}
],
"subtitleOptions": [
{
"id": "string"
}
],
"params": [
{
"id": "string"
}
],
"direction": {},
"defaults": {},
"pricing": {}
}
}Пресеты экспорта и профиль по умолчанию
GET
/v1/export-presetsЗапрос
curl "https://api.slicer.media/v1/export-presets" \
-H "Authorization: Bearer $SLICER_TOKEN"const response = await fetch('https://api.slicer.media/v1/export-presets', {
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/export-presets",
headers={"Authorization": f"Bearer {os.environ['SLICER_TOKEN']}"},
)
body = response.json()Ответ
Поля ответа: object (4)
| Поле | Тип | Описание |
|---|---|---|
defaultProfileобязательное | ExportProfile | |
presetsобязательное | object[] | |
presets[].idобязательное | string | |
presets[].profileобязательное | ExportProfile |
{
"ok": true,
"data": {
"defaultProfile": {
"container": "mp4",
"codec": "h264",
"resolution": "720p",
"fps": 24,
"quality": "balanced",
"colorDepth": 8,
"audioBitrate": 128,
"loudness": -14
},
"presets": [
{
"id": "string",
"profile": {
"container": "mp4",
"codec": "h264",
"resolution": "720p",
"fps": null,
"quality": "balanced",
"colorDepth": null,
"audioBitrate": null,
"loudness": null
}
}
]
}
}Цена операции
POST
/v1/estimateТело запроса EstimateRequest
| Поле | Тип | Описание |
|---|---|---|
kindобязательное | string | montage · remount · retry · assistant · translate · transcribe |
projectId | integer | Для повтора и распознавания речи |
Запрос
curl -X POST "https://api.slicer.media/v1/estimate" \
-H "Authorization: Bearer $SLICER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"kind":"montage"}'const response = await fetch('https://api.slicer.media/v1/estimate', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SLICER_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"kind": "montage"
}),
});
const { ok, data, error } = await response.json();import os
import requests
response = requests.post(
"https://api.slicer.media/v1/estimate",
headers={"Authorization": f"Bearer {os.environ['SLICER_TOKEN']}"},
json={
"kind": "montage",
},
)
body = response.json()Ответ
Поля ответа: Quote (8)
| Поле | Тип | Описание |
|---|---|---|
statusобязательное | "quote" | |
costобязательное | integer | Цена в токенах; повторите запрос с confirmCost, равным ей. У операции по себестоимости (atCost) — предельная: спишется фактическая себестоимость, не больше |
freeобязательное | boolean | Операция бесплатна (первый ролик, бесплатный повтор) |
estimate | number | Операция по себестоимости: ожидаемая цена в токенах (дробно) |
atCost | boolean | Цена — себестоимость ИИ-сервисов без наценки: списывается фактическая, не больше cost |
availableобязательное | integer | Сколько токенов доступно сейчас |
enoughобязательное | boolean | Токенов хватает |
spendLimitLeftобязательное | integer | null | Остаток месячного лимита расходов токена; null — без лимита |
{
"ok": true,
"data": {
"status": "quote",
"cost": 24,
"free": true,
"estimate": 1.5,
"atCost": true,
"available": 240,
"enough": true,
"spendLimitLeft": 200
}
}Эта спецификация (OpenAPI 3.1)
GET
/v1/openapi.jsonЗапрос
curl "https://api.slicer.media/v1/openapi.json"const response = await fetch('https://api.slicer.media/v1/openapi.json');
const { ok, data, error } = await response.json();import requests
response = requests.get(
"https://api.slicer.media/v1/openapi.json",
)
body = response.json()Ответ
Тело ответа описано в тексте страницы.
Схемы
Styles — Тот же каталог, что у приложений: id, названия (ru/en), описания, значения по умолчанию и цены
| Поле | Тип | Описание |
|---|---|---|
templatesобязательное | object[] | |
templates[].idобязательное | string | |
fontsобязательное | object[] | |
fonts[].idобязательное | string | |
colorsобязательное | object[] | |
colors[].idобязательное | string | |
subtitleDesignsобязательное | object[] | |
subtitleDesigns[].idобязательное | string | |
subtitleOptions | object[] | Настройки субтитров (выделение слова, появление, слов на экране, регистр) и их значения |
subtitleOptions[].idобязательное | string | |
paramsобязательное | object[] | |
params[].idобязательное | string | |
directionобязательное | object | |
defaultsобязательное | object | |
pricingобязательное | object |
MontageSettingsInput — Любая часть настроек монтажа; недостающее — по умолчанию, неизвестные id — по умолчанию
| Поле | Тип | Описание |
|---|---|---|
templateId | string | Шаблон: bold, clean, pop |
fontId | string | Шрифт субтитров: punch, poster, block, wide, editorial, rounded, script, mono |
colorId | string | Акцент: amber, azure, lime, crimson, fuchsia, mint, violet, white |
subtitles | object | Вид субтитров; частичная правка сохраняет остальные поля. Новое design без highlight/animation/words возвращает их к auto |
subtitles.enabled | boolean | |
subtitles.design | string | dynamic · karaoke · classic · minimal · pop · box · word |
subtitles.size | string | small · medium · large |
subtitles.position | string | auto — каждая фраза там, где в кадре свободнее (не на лице, хуке, плашках, титрах)auto · top · center · bottom |
subtitles.speakerColors | boolean | Слова каждого говорящего — своим цветом |
subtitles.highlight | string | Слово, которое звучит: цвет, увеличение, плашка, подчёркивание; auto — как задумано оформлениемauto · none · color · pop · box · underline |
subtitles.animation | string | Появление фразы; words — по словам, по мере речиauto · none · fade · pop · slide · words |
subtitles.words | string | Сколько слов на экране сразуauto · one · few · line · phrase |
subtitles.letterCase | string | Регистр; auto — как задумано шрифтомauto · upper · normal |
params | object | Параметры монтажа, см. GET /v1/styles → params |
params.emoji | boolean | |
params.soundEffects | boolean | |
params.mediaCards | boolean | |
params.plaques | boolean | |
params.cameraMotion | boolean | |
params.introZoom | boolean | |
params.hook | boolean | |
smartCut | boolean | Умная нарезка: убрать паузы и повторы |
targetDurationSec | 15 | 30 | 60 | 90 | null | Длительность; null — решает ИИ (до 90 с) |
language | string | auto · ru · en |
direction | object | |
direction.mode | string | auto · talking · story · product · aesthetic |
direction.pace | string | calm · balanced · dynamic |
direction.effects | string | off · light · bold |
direction.narration | boolean | Закадровый голос ИИ |
direction.voice | string | warm · soft · confident · deep |
ExportProfile
| Поле | Тип | Описание |
|---|---|---|
container | string | mp4 · mov |
codec | string | h264 · hevc |
resolution | string | 720p · 1080p · 1440p · 2160p |
fps | 24 | 25 | 30 | |
quality | string | balanced · high · max |
colorDepth | 8 | 10 | 10 бит — только с HEVC |
audioBitrate | 128 | 192 | 256 | 320 | |
loudness | -14 | -16 | -23 | Громкость, LUFS |
Quote
| Поле | Тип | Описание |
|---|---|---|
statusобязательное | "quote" | |
costобязательное | integer | Цена в токенах; повторите запрос с confirmCost, равным ей. У операции по себестоимости (atCost) — предельная: спишется фактическая себестоимость, не больше |
freeобязательное | boolean | Операция бесплатна (первый ролик, бесплатный повтор) |
estimate | number | Операция по себестоимости: ожидаемая цена в токенах (дробно) |
atCost | boolean | Цена — себестоимость ИИ-сервисов без наценки: списывается фактическая, не больше cost |
availableобязательное | integer | Сколько токенов доступно сейчас |
enoughобязательное | boolean | Токенов хватает |
spendLimitLeftобязательное | integer | null | Остаток месячного лимита расходов токена; null — без лимита |