Skip to content

Catalog and prices

The catalog of styles and montage settings, export presets, operation prices before starting and the OpenAPI spec — endpoints open to any token.

On this page

The catalog is the same one the Slicer apps use: templates, fonts, accent colors, caption designs, montage settings, direction, durations, material limits and prices. Titles and descriptions come in Russian and English. The catalog rarely changes and is worth caching.

Styles, settings and prices

GET/v1/styles
Scopes
any token
Rate limit
default

Request

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

Response

Response fields: Styles (15)
Field Type Description
templatesrequiredobject[]
templates[].idrequiredstring
fontsrequiredobject[]
fonts[].idrequiredstring
colorsrequiredobject[]
colors[].idrequiredstring
subtitleDesignsrequiredobject[]
subtitleDesigns[].idrequiredstring
subtitleOptionsobject[]Caption options (word highlight, entrance, words on screen, letter case) with their values
subtitleOptions[].idrequiredstring
paramsrequiredobject[]
params[].idrequiredstring
directionrequiredobject
defaultsrequiredobject
pricingrequiredobject
Response example
{
  "ok": true,
  "data": {
    "templates": [
      {
        "id": "string"
      }
    ],
    "fonts": [
      {
        "id": "string"
      }
    ],
    "colors": [
      {
        "id": "string"
      }
    ],
    "subtitleDesigns": [
      {
        "id": "string"
      }
    ],
    "subtitleOptions": [
      {
        "id": "string"
      }
    ],
    "params": [
      {
        "id": "string"
      }
    ],
    "direction": {},
    "defaults": {},
    "pricing": {}
  }
}

Export presets and the default profile

GET/v1/export-presets
Scopes
any token
Rate limit
default

Request

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

Response

Response fields: object (4)
Field Type Description
defaultProfilerequiredExportProfile
presetsrequiredobject[]
presets[].idrequiredstring
presets[].profilerequiredExportProfile
Response example
{
  "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
        }
      }
    ]
  }
}

Price of an operation

POST/v1/estimate
Scopes
any token
Rate limit
default

Request body EstimateRequest

Field Type Description
kindrequiredstringmontage · remount · retry · assistant · translate · transcribe
projectIdintegerFor retry and transcribe

Request

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

Response

Response fields: Quote (8)
Field Type Description
statusrequired"quote"
costrequiredintegerPrice in tokens; repeat the request with confirmCost equal to it. For an operation at cost (atCost) — the maximum: the actual cost is charged, never more
freerequiredbooleanThe operation is free (first video, free retry)
estimatenumberOperation at cost: expected price in tokens (fractional)
atCostbooleanPriced at the AI providers’ cost, no markup: the wallet is charged the actual cost, at most cost
availablerequiredintegerTokens available now
enoughrequiredbooleanEnough tokens to run
spendLimitLeftrequiredinteger | nullWhat is left of the token's monthly spend limit; null — no limit
Response example
{
  "ok": true,
  "data": {
    "status": "quote",
    "cost": 24,
    "free": true,
    "estimate": 1.5,
    "atCost": true,
    "available": 240,
    "enough": true,
    "spendLimitLeft": 200
  }
}

This specification (OpenAPI 3.1)

GET/v1/openapi.json
Scopes
no token
Rate limit
default

Request

curl
JavaScript
Python
curl "https://api.slicer.media/v1/openapi.json"

Response

The response body is described on this page.

Schemas

Styles — Same catalog as the apps use: ids, titles (ru/en), descriptions, defaults and prices

Field Type Description
templatesrequiredobject[]
templates[].idrequiredstring
fontsrequiredobject[]
fonts[].idrequiredstring
colorsrequiredobject[]
colors[].idrequiredstring
subtitleDesignsrequiredobject[]
subtitleDesigns[].idrequiredstring
subtitleOptionsobject[]Caption options (word highlight, entrance, words on screen, letter case) with their values
subtitleOptions[].idrequiredstring
paramsrequiredobject[]
params[].idrequiredstring
directionrequiredobject
defaultsrequiredobject
pricingrequiredobject

MontageSettingsInput — Any subset of montage settings; missing values — defaults, unknown ids — defaults

Field Type Description
templateIdstringTemplate: bold, clean, pop
fontIdstringCaption font: punch, poster, block, wide, editorial, rounded, script, mono
colorIdstringAccent: amber, azure, lime, crimson, fuchsia, mint, violet, white
subtitlesobjectCaption look; a partial change keeps the other fields. A new design without highlight/animation/words resets them to auto
subtitles.enabledboolean
subtitles.designstringdynamic · karaoke · classic · minimal · pop · box · word
subtitles.sizestringsmall · medium · large
subtitles.positionstringauto — each phrase where the frame has the most free space (off the face, hook, plaques, titles)auto · top · center · bottom
subtitles.speakerColorsbooleanEach speaker in its own colour
subtitles.highlightstringThe spoken word: colour, pop (grows), box, underline; auto — as the design intendsauto · none · color · pop · box · underline
subtitles.animationstringPhrase entrance; words — word by word as spokenauto · none · fade · pop · slide · words
subtitles.wordsstringWords on screen at onceauto · one · few · line · phrase
subtitles.letterCasestringLetter case; auto — as the font intendsauto · upper · normal
paramsobjectMontage parameters, see GET /v1/styles → params
params.emojiboolean
params.soundEffectsboolean
params.mediaCardsboolean
params.plaquesboolean
params.cameraMotionboolean
params.introZoomboolean
params.hookboolean
smartCutbooleanSmart cut: remove pauses and retakes
targetDurationSec15 | 30 | 60 | 90 | nullTarget length; null — AI decides (up to 90 s)
languagestringauto · ru · en
directionobject
direction.modestringauto · talking · story · product · aesthetic
direction.pacestringcalm · balanced · dynamic
direction.effectsstringoff · light · bold
direction.narrationbooleanAI voiceover
direction.voicestringwarm · soft · confident · deep

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

Quote

Field Type Description
statusrequired"quote"
costrequiredintegerPrice in tokens; repeat the request with confirmCost equal to it. For an operation at cost (atCost) — the maximum: the actual cost is charged, never more
freerequiredbooleanThe operation is free (first video, free retry)
estimatenumberOperation at cost: expected price in tokens (fractional)
atCostbooleanPriced at the AI providers’ cost, no markup: the wallet is charged the actual cost, at most cost
availablerequiredintegerTokens available now
enoughrequiredbooleanEnough tokens to run
spendLimitLeftrequiredinteger | nullWhat is left of the token's monthly spend limit; null — no limit