Skip to Content
DeveloperEmbed APIMotion Sequences

Motion Sequences

A motion sequence is one slide’s animations: what moves, how, and in what order. A video post takes one in videoSettings.sequenceId on generate and import, and puts it on every slide, element by element, over the motion style. The elements it animates move its way; the others keep the style’s animations; each slide keeps its own length and transition. See Saved styles and sequences.

Sequences belong to the workspace attached to your API key. They’re the same as Your sequences in the video editor: one saved here shows up there, and the other way round.

Reading is open to every key; saving, changing and deleting need an active paid plan. A cancelled plan counts until it ends. Without one, those calls return 402. A video already made keeps its own copy of its motion, so changing or deleting a sequence never changes it.

List motion sequences

GET https://embed-api.postnitro.ai/motion-sequence

Returns the workspace’s saved sequences, newest first.

Headers

  • embed-api-key: your-api-key-here (required)
curl --location 'https://embed-api.postnitro.ai/motion-sequence' \ --header 'embed-api-key: pn-your-api-key'

Response

{ "success": true, "data": { "sequences": [ { "id": "cmvode5gk0003v0p6el1cbcho", "name": "Big title", "builtIn": false, "summary": "title typewriter/letter → description fade; cta pulse (emphasis, repeating)", "createdAt": "2026-10-25T21:59:06.021Z", "updatedAt": "2026-10-25T21:59:06.021Z" } ] } }
FieldTypeDescription
idstringThe value to pass as videoSettings.sequenceId
namestringThe sequence’s name, as the editor shows it
builtInbooleanAlways false: there are no built-in sequences
summarystringIts animations in order: → starts after the step before, & with it, elements that move alike share a step, and after a ; each emphasis and exit
createdAt, updatedAtstringISO-8601 times

An empty list returns 200 with "sequences": [].

Read a motion sequence

GET https://embed-api.postnitro.ai/motion-sequence/{id}

Returns one sequence, with its stored motion: the steps as the editor stores them. You don’t need it to use the sequence.

{ "success": true, "data": { "sequence": { "id": "cmvode5gk0003v0p6el1cbcho", "name": "Big title", "builtIn": false, "summary": "title typewriter/letter → description fade; cta pulse (emphasis, repeating)", "motion": { "version": 1, "duration": "auto", "steps": ["..."] }, "createdAt": "2026-10-25T21:59:06.021Z", "updatedAt": "2026-10-25T21:59:06.021Z" } } }

Save a motion sequence

POST https://embed-api.postnitro.ai/motion-sequence

Saves a sequence for the workspace, in one of two ways.

From a video’s slide

One slide’s animations, as Save this sequence keeps them in the editor. designId is a video in your workspace (the designId Post Output gives a video post, or a video made in the editor), and slide is its number, counted from 1.

curl --location 'https://embed-api.postnitro.ai/motion-sequence' \ --header 'Content-Type: application/json' \ --header 'embed-api-key: pn-your-api-key' \ --data '{ "name": "Big title", "designId": "design123", "slide": 2 }'

From steps

The steps by element name, as per-slide motion writes them: element and preset, with any of the other step fields.

curl --location 'https://embed-api.postnitro.ai/motion-sequence' \ --header 'Content-Type: application/json' \ --header 'embed-api-key: pn-your-api-key' \ --data '{ "name": "Big title", "steps": [ { "element": "title", "preset": "typewriter" }, { "element": "description", "preset": "fade" }, { "element": "cta", "preset": "pulse", "repeat": "until-end" } ] }'

A sequence keeps animations only: the slide it goes on keeps its own length and transition. Steps for the brand’s avatar, name and handle are kept too, and play wherever a slide shows them.

Request Body

FieldTypeRequiredDescription
namestringYesUp to 60 characters. Names needn’t be unique: use the sequence by its id
designIdstringOne of theseA video in your workspace, with slide
slidenumberWith designIdThe slide whose animations are saved, counted from 1
stepsarrayOne of theseThe steps, by element name

Response

{ "success": true, "message": "Motion sequence created", "data": { "sequence": { "id": "cmw1k7m2c0003v0lk9f5x1r8t", "name": "Big title", "builtIn": false, "summary": "title typewriter/letter → description fade; cta pulse (emphasis, repeating)", "motion": { "version": 1, "duration": "auto", "steps": ["..."] }, "createdAt": "2026-10-29T10:00:00.000Z", "updatedAt": "2026-10-29T10:00:00.000Z" } } }

The saved sequence comes back with its stored motion, as reading it gives it.

A workspace keeps up to 100 saved sequences.

Change a motion sequence

PUT https://embed-api.postnitro.ai/motion-sequence/{id}

A new name, new steps (a designId and slide, or steps, as when saving), or both. New steps replace the old whole. The response is as for saving, with "message": "Motion sequence updated".

curl --location --request PUT 'https://embed-api.postnitro.ai/motion-sequence/cmw1k7m2c0003v0lk9f5x1r8t' \ --header 'Content-Type: application/json' \ --header 'embed-api-key: pn-your-api-key' \ --data '{ "name": "Big title, typed" }'

Delete a motion sequence

DELETE https://embed-api.postnitro.ai/motion-sequence/{id}

{ "success": true, "message": "Motion sequence deleted", "data": { "deleted": "cmw1k7m2c0003v0lk9f5x1r8t" } }

Errors

StatusMessageWhen
402Saving motion styles and sequences needs an active paid plan.Saving, changing or deleting with a plan that is expired or past due. A cancelled plan can until it ends. A key without API credits, such as a free plan’s, gets the API’s usual 402 before this
404Motion sequence not found.No saved sequence with that id in your workspace (a style’s id included)
404Design not found in this workspace.designId isn’t one of your workspace’s designs
422Name is requiredSaving without a name
422Give the sequence's motion: … / … one way …, not more than one.Saving with neither designId nor steps, or with both
422slide must be the slide's number, counted from 1slide isn’t a whole number from 1
422Extra parameters passed in the body.Any other field, slides included: built-in styles by slide type make a style
400slide must be one of the design's slides, from 1 to <n>.The video has no such slide
400Slide <n> has no animations to save.That slide doesn’t move
400That design isn't a video, so it has no motion to save.designId is a carousel or an image
400steps.<n>.<field>: …A step that can’t be used, and where it is, such as steps.0.element: …
400There are no animations in it to save.steps is empty
409A workspace keeps up to 100 of these.The workspace already has 100 saved sequences
Last updated on