Перейти к содержанию

Проекты

Эндпоинты проектов Slicer API — запуск монтажа с подтверждением цены, статус и этапы, версии ролика, пересборка, повтор, остановка, история и скачивание.

На этой странице

Проект — ролик и всё, что с ним происходило: материалы, запуски монтажа и экспорта, версии, история. Платные операции (создание с ИИ-монтажом, пересборка, повтор) сначала отвечают ценой и запускаются только с confirmCost — см. Монтаж и цена. Проект без ИИ-режиссёра (mode: "manual") создаётся бесплатно и без подтверждения — см. Проект без ИИ-режиссёра.

Создать проект и запустить монтаж

POST/v1/projects
Области доступа
projects:write
Лимит
платные операции
Цена
тратит токены

Без confirmCost возвращает Quote и ничего не создаёт. С confirmCost, равным текущей цене, создаёт проект и запускает монтаж: одна версия, которую режиссёр после рендера сам проверяет и поправляет. Первый ролик бесплатный (cost: 0). С mode: "manual" проект бесплатный: материалы ложатся на таймлайн по порядку, проект становится черновиком draft — confirmCost не нужен.

Тело запроса CreateProjectRequest

Поле Тип Описание
uploadIdsобязательноеstring (uuid)[]Готовые загрузки source в порядке материалов1–20
modestringai (по умолчанию) — монтаж ИИ-режиссёром, платно; manual — материалы ложатся на таймлайн по порядку, проект — бесплатный черновик draft, его правят и экспортируют самиai · manual
formatstringФормат кадра проекта manual (по умолчанию 9:16)9:16 · 4:5 · 1:1 · 16:9
settingsMontageSettingsInput
titlestring≤ 120
briefstringПожелания режиссёру≤ 600
confirmCostintegerЦена, на которую вы согласны. Без неё ответ — Quote, ничего не запускается

Запрос

curl
JavaScript
Python
curl -X POST "https://api.slicer.media/v1/projects" \
  -H "Authorization: Bearer $SLICER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"uploadIds":["6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20"]}'

Ответ

Один из вариантов: Quote, ProjectDetails

Поля ответа: Quote (8)
Поле Тип Описание
statusобязательное"quote"
costобязательноеintegerЦена в токенах; повторите запрос с confirmCost, равным ей. У операции по себестоимости (atCost) — предельная: спишется фактическая себестоимость, не больше
freeобязательноеbooleanОперация бесплатна (первый ролик, бесплатный повтор)
estimatenumberОперация по себестоимости: ожидаемая цена в токенах (дробно)
atCostbooleanЦена — себестоимость ИИ-сервисов без наценки: списывается фактическая, не больше cost
availableобязательноеintegerСколько токенов доступно сейчас
enoughобязательноеbooleanТокенов хватает
spendLimitLeftобязательноеinteger | nullОстаток месячного лимита расходов токена; null — без лимита
Поля ответа: ProjectDetails (44)
Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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обязательноеstringpending · 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обязательноеstringfree · reserved · charged · refunded
run.queuedAtобязательноеstringДата и время ISO 8601, UTC
run.startedAtобязательноеstring | null
run.finishedAtобязательноеstring | null
versionsобязательноеProjectVersion[]
Пример ответа
{
  "ok": true,
  "data": {
    "status": "quote",
    "cost": 24,
    "free": true,
    "estimate": 1.5,
    "atCost": true,
    "available": 240,
    "enough": true,
    "spendLimitLeft": 200
  }
}

Список проектов

GET/v1/projects
Области доступа
projects:read
Лимит
обычный

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

Поле Тип Описание
limitinteger1–100
cursorstring≤ 200
statusstringall · ready · active · failed · draft
qstring≤ 100

Запрос

curl
JavaScript
Python
curl "https://api.slicer.media/v1/projects" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Ответ

Поля ответа: object (2)
Поле Тип Описание
itemsобязательноеProject[]
nextCursorобязательноеstring | null
Пример ответа
{
  "ok": true,
  "data": {
    "items": [
      {
        "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": null,
          "message": null
        },
        "durationSec": 42.5,
        "versionChoice": [
          null
        ],
        "result": {
          "url": null,
          "posterUrl": null,
          "container": null,
          "info": null
        },
        "appUrl": "https://api.slicer.media/v1/…",
        "sourcesAvailable": true,
        "createdAt": "2026-10-16T09:30:00Z",
        "finishedAt": "2026-10-16T09:30:00Z"
      }
    ],
    "nextCursor": "eyJpZCI6NDJ9"
  }
}

Проект

GET/v1/projects/{id}
Области доступа
projects:read
Лимит
обычный

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Запрос

curl
JavaScript
Python
curl "https://api.slicer.media/v1/projects/42" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Ответ

Поля ответа: ProjectDetails (44)
Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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обязательноеstringpending · 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обязательноеstringfree · 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"
      }
    ]
  }
}

Переименовать проект

PATCH/v1/projects/{id}
Области доступа
projects:write
Лимит
обычный

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Тело запроса RenameRequest

Поле Тип Описание
titleобязательноеstring≤ 120

Запрос

curl
JavaScript
Python
curl -X PATCH "https://api.slicer.media/v1/projects/42" \
  -H "Authorization: Bearer $SLICER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Монтаж за 3 минуты"}'

Ответ

Поля ответа: Project (26)
Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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
Пример ответа
{
  "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"
  }
}

Удалить проект и файлы

DELETE/v1/projects/{id}
Области доступа
projects:write
Лимит
обычный

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Запрос

curl
JavaScript
Python
curl -X DELETE "https://api.slicer.media/v1/projects/42" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Ответ

Поля ответа: object (2)
Поле Тип Описание
idобязательноеinteger
deletedобязательноеboolean
Пример ответа
{
  "ok": true,
  "data": {
    "id": 42,
    "deleted": true
  }
}

Запуски

Пересобрать с новыми параметрами

POST/v1/projects/{id}/remount
Области доступа
montage:run
Лимит
платные операции
Цена
тратит токены

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Тело запроса RemountRequest

Поле Тип Описание
settingsобязательноеMontageSettingsInput
briefstring≤ 600
confirmCostintegerЦена, на которую вы согласны. Без неё ответ — Quote, ничего не запускается

Запрос

curl
JavaScript
Python
curl -X POST "https://api.slicer.media/v1/projects/42/remount" \
  -H "Authorization: Bearer $SLICER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"settings":{"templateId":"string","fontId":"string","colorId":"string","subtitles":{"enabled":true,"design":"dynamic","size":"small","position":"auto","speakerColors":true,"highlight":"auto","animation":"auto","words":"auto","letterCase":"auto"},"params":{"emoji":true,"soundEffects":true,"mediaCards":true,"plaques":true,"cameraMotion":true,"introZoom":true,"hook":true},"smartCut":true,"targetDurationSec":15,"language":"auto","direction":{"mode":"auto","pace":"calm","effects":"off","narration":true,"voice":"warm"}}}'

Ответ

Один из вариантов: Quote, ProjectDetails

Поля ответа: Quote (8)
Поле Тип Описание
statusобязательное"quote"
costобязательноеintegerЦена в токенах; повторите запрос с confirmCost, равным ей. У операции по себестоимости (atCost) — предельная: спишется фактическая себестоимость, не больше
freeобязательноеbooleanОперация бесплатна (первый ролик, бесплатный повтор)
estimatenumberОперация по себестоимости: ожидаемая цена в токенах (дробно)
atCostbooleanЦена — себестоимость ИИ-сервисов без наценки: списывается фактическая, не больше cost
availableобязательноеintegerСколько токенов доступно сейчас
enoughобязательноеbooleanТокенов хватает
spendLimitLeftобязательноеinteger | nullОстаток месячного лимита расходов токена; null — без лимита
Поля ответа: ProjectDetails (44)
Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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обязательноеstringpending · 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обязательноеstringfree · reserved · charged · refunded
run.queuedAtобязательноеstringДата и время ISO 8601, UTC
run.startedAtобязательноеstring | null
run.finishedAtобязательноеstring | null
versionsобязательноеProjectVersion[]
Пример ответа
{
  "ok": true,
  "data": {
    "status": "quote",
    "cost": 24,
    "free": true,
    "estimate": 1.5,
    "atCost": true,
    "available": 240,
    "enough": true,
    "spendLimitLeft": 200
  }
}

Повторить неудачный запуск

POST/v1/projects/{id}/retry
Области доступа
montage:run
Лимит
платные операции
Цена
тратит токены

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Тело запроса RetryRequest

Поле Тип Описание
confirmCostintegerЦена, на которую вы согласны. Без неё ответ — Quote, ничего не запускается

Запрос

curl
JavaScript
Python
curl -X POST "https://api.slicer.media/v1/projects/42/retry" \
  -H "Authorization: Bearer $SLICER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Ответ

Один из вариантов: Quote, ProjectDetails

Поля ответа: Quote (8)
Поле Тип Описание
statusобязательное"quote"
costобязательноеintegerЦена в токенах; повторите запрос с confirmCost, равным ей. У операции по себестоимости (atCost) — предельная: спишется фактическая себестоимость, не больше
freeобязательноеbooleanОперация бесплатна (первый ролик, бесплатный повтор)
estimatenumberОперация по себестоимости: ожидаемая цена в токенах (дробно)
atCostbooleanЦена — себестоимость ИИ-сервисов без наценки: списывается фактическая, не больше cost
availableобязательноеintegerСколько токенов доступно сейчас
enoughобязательноеbooleanТокенов хватает
spendLimitLeftобязательноеinteger | nullОстаток месячного лимита расходов токена; null — без лимита
Поля ответа: ProjectDetails (44)
Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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обязательноеstringpending · 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обязательноеstringfree · reserved · charged · refunded
run.queuedAtобязательноеstringДата и время ISO 8601, UTC
run.startedAtобязательноеstring | null
run.finishedAtобязательноеstring | null
versionsобязательноеProjectVersion[]
Пример ответа
{
  "ok": true,
  "data": {
    "status": "quote",
    "cost": 24,
    "free": true,
    "estimate": 1.5,
    "atCost": true,
    "available": 240,
    "enough": true,
    "spendLimitLeft": 200
  }
}

Остановить запуск

POST/v1/projects/{id}/cancel
Области доступа
projects:write
Лимит
обычный

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Запрос

curl
JavaScript
Python
curl -X POST "https://api.slicer.media/v1/projects/42/cancel" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Ответ

Поля ответа: ProjectDetails (44)
Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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обязательноеstringpending · 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обязательноеstringfree · 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}/versions
Области доступа
projects:read
Лимит
обычный

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Запрос

curl
JavaScript
Python
curl "https://api.slicer.media/v1/projects/42/versions" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Ответ

Пример ответа
{
  "ok": true,
  "data": [
    {
      "id": 42,
      "version": 1,
      "idea": "string",
      "durationSec": 42.5,
      "current": true,
      "awaitingChoice": true,
      "hasFile": true,
      "createdAt": "2026-10-16T09:30:00Z"
    }
  ]
}

Выбрать версию

POST/v1/projects/{id}/versions/{versionId}/choose
Области доступа
projects:write
Лимит
обычный

Делает версию текущей: ждущую выбора (versionChoice) или любую версию из истории, файл которой хранится (hasFile), — как «Сделать текущей» в приложении. Прежний ролик остаётся в истории.

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1
versionIdобязательноеinteger≥ 1

Запрос

curl
JavaScript
Python
curl -X POST "https://api.slicer.media/v1/projects/42/versions/42/choose" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Ответ

Поля ответа: ProjectDetails (44)
Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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обязательноеstringpending · 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обязательноеstringfree · 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}/history
Области доступа
projects:read
Лимит
обычный

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Запрос

curl
JavaScript
Python
curl "https://api.slicer.media/v1/projects/42/history" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Ответ

Пример ответа
{
  "ok": true,
  "data": [
    {
      "id": 42,
      "kind": "string",
      "status": "string",
      "title": "Монтаж за 3 минуты",
      "version": 1,
      "createdAt": "2026-10-16T09:30:00Z"
    }
  ]
}

Файлы

Скачать ролик

GET/v1/projects/{id}/result
Области доступа
projects:read
Лимит
обычный

Поддерживаются Range-запросы. ?version={versionId} — файл версии.

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

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

Поле Тип Описание
versioninteger≥ 1

Запрос

curl
JavaScript
Python
curl "https://api.slicer.media/v1/projects/42/result" \
  -H "Authorization: Bearer $SLICER_TOKEN" \
  -o video.mp4

Ответ

Файл (application/octet-stream), поддерживаются Range-запросы.

Скачать обложку (JPEG)

GET/v1/projects/{id}/poster
Области доступа
projects:read
Лимит
обычный

Параметры пути

Поле Тип Описание
idобязательноеinteger≥ 1

Запрос

curl
JavaScript
Python
curl "https://api.slicer.media/v1/projects/42/poster" \
  -H "Authorization: Bearer $SLICER_TOKEN" \
  -o poster.jpg

Ответ

Файл (application/octet-stream), поддерживаются Range-запросы.

Схемы

Project

Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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

ProjectDetails

Поле Тип Описание
idобязательноеinteger
titleобязательноеstring
statusобязательноеstringdraft — проект «Сам в редакторе» до первого экспорта: правьте операциями и экспортируйтеqueued · processing · succeeded · failed · cancelled · draft
modeобязательноеstringai — монтаж ИИ-режиссёром; 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[] | nullId версий, ждущих выбора; монтаж отдаёт одну версию, поэтому обычно 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обязательноеstringpending · 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обязательноеstringfree · reserved · charged · refunded
run.queuedAtобязательноеstringДата и время ISO 8601, UTC
run.startedAtобязательноеstring | null
run.finishedAtобязательноеstring | null
versionsобязательноеProjectVersion[]

ProjectVersion

Поле Тип Описание
idобязательноеintegerId версии (записи истории)
versionобязательноеinteger | null
ideaобязательноеstring | nullЧем версия отличается
durationSecобязательноеnumber | null
currentобязательноеboolean
awaitingChoiceобязательноеbooleanПредложена на выбор после последнего монтажа
hasFileобязательноеbooleanФайл хранится (последние 10 версий)
createdAtобязательноеstringДата и время ISO 8601, UTC

CreateProjectRequest

Поле Тип Описание
uploadIdsобязательноеstring (uuid)[]Готовые загрузки source в порядке материалов1–20
modestringai (по умолчанию) — монтаж ИИ-режиссёром, платно; manual — материалы ложатся на таймлайн по порядку, проект — бесплатный черновик draft, его правят и экспортируют самиai · manual
formatstringФормат кадра проекта manual (по умолчанию 9:16)9:16 · 4:5 · 1:1 · 16:9
settingsMontageSettingsInput
titlestring≤ 120
briefstringПожелания режиссёру≤ 600
confirmCostintegerЦена, на которую вы согласны. Без неё ответ — Quote, ничего не запускается

HistoryEvent

Поле Тип Описание
idобязательноеinteger
kindобязательноеstring
statusобязательноеstring
titleобязательноеstring | null
versionобязательноеinteger | null
createdAtобязательноеstringДата и время ISO 8601, UTC