Экспорт и публикация
Эндпоинты экспорта Slicer API — рендер ролика с параметрами файла и публикацией, список публикаций проекта и подключённые аккаунты соцсетей.
Экспорт бесплатный и перерисовывает ролик по текущему документу. С полем publish ролик после рендера публикуется в
подключённые аккаунты — для этого токену нужна область publish. Подключать соцсети можно только в приложении, TikTok —
публиковать только из приложения. Подробно — Экспорт и публикация.
Отрендерить ролик (бесплатно)
POST
/v1/projects/{id}/exportС publish — публикует после рендера (нужна область publish). TikTok — только из приложения Slicer.
Параметры пути
| Поле | Тип | Описание |
|---|---|---|
idобязательное | integer | ≥ 1 |
Тело запроса ExportRequest
| Поле | Тип | Описание |
|---|---|---|
profile | ExportProfile | |
publish | PublishRequestItem[] | 0–8 |
Запрос
curl -X POST "https://api.slicer.media/v1/projects/42/export" \
-H "Authorization: Bearer $SLICER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"profile":{"container":"mp4","codec":"h264","resolution":"720p","fps":24,"quality":"balanced","colorDepth":8,"audioBitrate":128,"loudness":-14},"publish":[{"accountId":42,"title":"Монтаж за 3 минуты","caption":"string","options":{}}]}'const response = await fetch('https://api.slicer.media/v1/projects/42/export', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SLICER_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"profile": {
"container": "mp4",
"codec": "h264",
"resolution": "720p",
"fps": 24,
"quality": "balanced",
"colorDepth": 8,
"audioBitrate": 128,
"loudness": -14
},
"publish": [
{
"accountId": 42,
"title": "Монтаж за 3 минуты",
"caption": "string",
"options": {}
}
]
}),
});
const { ok, data, error } = await response.json();import os
import requests
response = requests.post(
"https://api.slicer.media/v1/projects/42/export",
headers={"Authorization": f"Bearer {os.environ['SLICER_TOKEN']}"},
json={
"profile": {
"container": "mp4",
"codec": "h264",
"resolution": "720p",
"fps": 24,
"quality": "balanced",
"colorDepth": 8,
"audioBitrate": 128,
"loudness": -14,
},
"publish": [{
"accountId": 42,
"title": "Монтаж за 3 минуты",
"caption": "string",
"options": {},
}],
},
)
body = response.json()Ответ
Поля ответа: ProjectDetails (44)
| Поле | Тип | Описание |
|---|---|---|
idобязательное | integer | |
titleобязательное | string | |
statusобязательное | string | draft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft |
modeобязательное | string | ai — монтаж ИИ-режиссёром; manual — материалы на таймлайне как есть, бесплатно (платны только ИИ-операции)ai · manual |
stageобязательное | string | null | |
progressобязательное | integer | Прогресс текущего запуска, % |
clientобязательное | string | null | Где создан: web, mobile, api, mcp |
settingsобязательное | object | Настройки монтажа (см. MontageSettingsInput) |
briefобязательное | string | null | |
isFreeобязательное | boolean | |
watermarkобязательное | boolean | |
tokensCostобязательное | integer | |
errorобязательное | object | null | |
error.codeобязательное | string | |
error.messageобязательное | string | |
durationSecобязательное | number | null | |
versionChoiceобязательное | integer[] | null | Id версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно null |
resultобязательное | object | null | |
result.urlобязательное | string (uri) | Скачать с токеном (поддерживается Range) |
result.posterUrlобязательное | string (uri) | null | |
result.containerобязательное | string | |
result.infoобязательное | object | null | |
appUrlобязательное | string (uri) | Проект в веб-приложении Slicer |
sourcesAvailableобязательное | boolean | Исходники хранятся 7 дней после монтажа |
createdAtобязательное | string | Дата и время ISO 8601, UTC |
finishedAtобязательное | string | null | |
stagesобязательное | object[] | |
stages[].stageобязательное | string | |
stages[].statusобязательное | string | pending · running · succeeded · failed · skipped |
stages[].inRunобязательное | boolean | Часть текущего запуска (не взят готовым) |
stages[].startedAtобязательное | string | null | |
stages[].finishedAtобязательное | string | null | |
stages[].durationSecобязательное | number | null | |
stages[].progressобязательное | integer | |
stages[].tokensобязательное | integer | Доля цены запуска |
runобязательное | object | |
run.kindобязательное | string | |
run.statusобязательное | string | |
run.tokensобязательное | integer | |
run.tokensStateобязательное | string | free · reserved · charged · refunded |
run.queuedAtобязательное | string | Дата и время ISO 8601, UTC |
run.startedAtобязательное | string | null | |
run.finishedAtобязательное | string | null | |
versionsобязательное | ProjectVersion[] |
{
"ok": true,
"data": {
"id": 42,
"title": "Монтаж за 3 минуты",
"status": "queued",
"mode": "ai",
"stage": "string",
"progress": 0.5,
"client": "string",
"settings": {},
"brief": "Динамично, с акцентом на главные мысли",
"isFree": true,
"watermark": true,
"tokensCost": 24,
"error": {
"code": "string",
"message": "string"
},
"durationSec": 42.5,
"versionChoice": [
1
],
"result": {
"url": "https://example.com/hook",
"posterUrl": "https://api.slicer.media/v1/…",
"container": "string",
"info": {}
},
"appUrl": "https://api.slicer.media/v1/…",
"sourcesAvailable": true,
"createdAt": "2026-10-16T09:30:00Z",
"finishedAt": "2026-10-16T09:30:00Z",
"stages": [
{
"stage": "string",
"status": "pending",
"inRun": true,
"startedAt": "2026-10-16T09:30:00Z",
"finishedAt": "2026-10-16T09:30:00Z",
"durationSec": 42.5,
"progress": 0.5,
"tokens": 24
}
],
"run": {
"kind": "string",
"status": "string",
"tokens": 24,
"tokensState": "free",
"queuedAt": "2026-10-16T09:30:00Z",
"startedAt": "2026-10-16T09:30:00Z",
"finishedAt": "2026-10-16T09:30:00Z"
},
"versions": [
{
"id": 42,
"version": null,
"idea": "string",
"durationSec": 42.5,
"current": true,
"awaitingChoice": true,
"hasFile": true,
"createdAt": "2026-10-16T09:30:00Z"
}
]
}
}Публикации проекта
GET
/v1/projects/{id}/publicationsПараметры пути
| Поле | Тип | Описание |
|---|---|---|
idобязательное | integer | ≥ 1 |
Запрос
curl "https://api.slicer.media/v1/projects/42/publications" \
-H "Authorization: Bearer $SLICER_TOKEN"const response = await fetch('https://api.slicer.media/v1/projects/42/publications', {
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/projects/42/publications",
headers={"Authorization": f"Bearer {os.environ['SLICER_TOKEN']}"},
)
body = response.json()Ответ
{
"ok": true,
"data": [
{
"id": 42,
"platform": "string",
"accountName": "Anna",
"status": "string",
"url": "https://example.com/hook",
"errorCode": "string",
"createdAt": "2026-10-16T09:30:00Z"
}
]
}Подключённые соцсети
GET
/v1/social/accountsЗапрос
curl "https://api.slicer.media/v1/social/accounts" \
-H "Authorization: Bearer $SLICER_TOKEN"const response = await fetch('https://api.slicer.media/v1/social/accounts', {
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/social/accounts",
headers={"Authorization": f"Bearer {os.environ['SLICER_TOKEN']}"},
)
body = response.json()Ответ
{
"ok": true,
"data": [
{
"id": 42,
"platform": "youtube",
"name": "Anna",
"status": "string",
"apiPublishing": true
}
]
}Схемы
ExportRequest
| Поле | Тип | Описание |
|---|---|---|
profile | ExportProfile | |
publish | PublishRequestItem[] | 0–8 |
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 |
PublishRequestItem
| Поле | Тип | Описание |
|---|---|---|
accountIdобязательное | integer | Подключённый аккаунт из GET /v1/social/accounts |
title | string | ≤ 150 |
caption | string | ≤ 5000 |
options | object | Настройки платформы: { youtube: { privacy, madeForKids } }, { instagram: { shareToFeed } }, { vk: { privacy, wallpost, groupId } }, aiGenerated |
Publication
| Поле | Тип | Описание |
|---|---|---|
idобязательное | integer | |
platformобязательное | string | |
accountNameобязательное | string | null | |
statusобязательное | string | |
urlобязательное | string | null | |
errorCodeобязательное | string | null | |
createdAtобязательное | string | Дата и время ISO 8601, UTC |
SocialAccount
| Поле | Тип | Описание |
|---|---|---|
idобязательное | integer | |
platformобязательное | string | youtube · instagram · tiktok · vk |
nameобязательное | string | null | |
statusобязательное | string | |
apiPublishingобязательное | boolean | Можно публиковать через API (TikTok — только из приложения) |