Skip to content

Export and publishing

Slicer API export endpoints — rendering the video with file settings and publishing, a project's publications and connected social accounts.

On this page

Export is free and re-renders the video from the current document. With the publish field the video is published to connected accounts after rendering — this requires the publish scope. Social accounts can only be connected in the app, and TikTok can only be published to from the app. Details — Export and publishing.

Render the video (free)

POST/v1/projects/{id}/export
Scopes
projects:write
Rate limit
paid operations

With publish — publishes after rendering (needs the publish scope). TikTok — only from the Slicer app.

Path parameters

Field Type Description
idrequiredinteger≥ 1

Request body ExportRequest

Field Type Description
profileExportProfile
publishPublishRequestItem[]0–8

Request

curl
JavaScript
Python
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":{}}]}'

Response

Response fields: ProjectDetails (44)
Field Type Description
idrequiredinteger
titlerequiredstring
statusrequiredstringdraft — an “edit it myself” project before its first export: edit it with operations, then exportqueued · processing · succeeded · failed · cancelled · draft
moderequiredstringai — edited by the AI director; manual — materials on the timeline as is, free (only AI operations cost)ai · manual
stagerequiredstring | null
progressrequiredintegerProgress of the current run, %
clientrequiredstring | nullWhere it was created: web, mobile, api, mcp
settingsrequiredobjectMontage settings (see MontageSettingsInput)
briefrequiredstring | null
isFreerequiredboolean
watermarkrequiredboolean
tokensCostrequiredinteger
errorrequiredobject | null
error.coderequiredstring
error.messagerequiredstring
durationSecrequirednumber | null
versionChoicerequiredinteger[] | nullVersion ids awaiting your choice; a montage returns one version, so usually null
resultrequiredobject | null
result.urlrequiredstring (uri)Download with the token (Range supported)
result.posterUrlrequiredstring (uri) | null
result.containerrequiredstring
result.inforequiredobject | null
appUrlrequiredstring (uri)The project in the Slicer web app
sourcesAvailablerequiredbooleanSources are kept 7 days after the montage
createdAtrequiredstringISO 8601 date-time, UTC
finishedAtrequiredstring | null
stagesrequiredobject[]
stages[].stagerequiredstring
stages[].statusrequiredstringpending · running · succeeded · failed · skipped
stages[].inRunrequiredbooleanPart of the current run (not reused from a previous one)
stages[].startedAtrequiredstring | null
stages[].finishedAtrequiredstring | null
stages[].durationSecrequirednumber | null
stages[].progressrequiredinteger
stages[].tokensrequiredintegerShare of the run price
runrequiredobject
run.kindrequiredstring
run.statusrequiredstring
run.tokensrequiredinteger
run.tokensStaterequiredstringfree · reserved · charged · refunded
run.queuedAtrequiredstringISO 8601 date-time, UTC
run.startedAtrequiredstring | null
run.finishedAtrequiredstring | null
versionsrequiredProjectVersion[]
Response example
{
  "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"
      }
    ]
  }
}

Project publications

GET/v1/projects/{id}/publications
Scopes
projects:read
Rate limit
default

Path parameters

Field Type Description
idrequiredinteger≥ 1

Request

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

Response

Response example
{
  "ok": true,
  "data": [
    {
      "id": 42,
      "platform": "string",
      "accountName": "Anna",
      "status": "string",
      "url": "https://example.com/hook",
      "errorCode": "string",
      "createdAt": "2026-10-16T09:30:00Z"
    }
  ]
}

Connected social accounts

GET/v1/social/accounts
Scopes
publish
Rate limit
default

Request

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

Response

Response example
{
  "ok": true,
  "data": [
    {
      "id": 42,
      "platform": "youtube",
      "name": "Anna",
      "status": "string",
      "apiPublishing": true
    }
  ]
}

Schemas

ExportRequest

Field Type Description
profileExportProfile
publishPublishRequestItem[]0–8

ExportProfile

Field Type Description
containerstringmp4 · mov
codecstringh264 · hevc
resolutionstring720p · 1080p · 1440p · 2160p
fps24 | 25 | 30
qualitystringbalanced · high · max
colorDepth8 | 1010-bit only with HEVC
audioBitrate128 | 192 | 256 | 320
loudness-14 | -16 | -23Target loudness, LUFS

PublishRequestItem

Field Type Description
accountIdrequiredintegerConnected account from GET /v1/social/accounts
titlestring≤ 150
captionstring≤ 5000
optionsobjectPlatform options: { youtube: { privacy, madeForKids } }, { instagram: { shareToFeed } }, { vk: { privacy, wallpost, groupId } }, aiGenerated

Publication

Field Type Description
idrequiredinteger
platformrequiredstring
accountNamerequiredstring | null
statusrequiredstring
urlrequiredstring | null
errorCoderequiredstring | null
createdAtrequiredstringISO 8601 date-time, UTC

SocialAccount

Field Type Description
idrequiredinteger
platformrequiredstringyoutube · instagram · tiktok · vk
namerequiredstring | null
statusrequiredstring
apiPublishingrequiredbooleanCan publish through the API (TikTok — only from the app)