Skip to content
blitzreels-motion-graphics logo

BlitzReels Motion Graphics (Playground API)

blitzreels-motion-graphics

Motion graphics composition creation via the BlitzReels Playground API (text, shapes, charts, animations, export).

SKILL.md

Full skill instructions

BlitzReels Motion Graphics (Playground API)

Create and edit motion graphics compositions via the Playground API. Build animated scenes with text, shapes, images, video, charts, code blocks, and more.

Quick Start

# List available presets
bash scripts/​playground.sh list-presets PROJECT_ID

# Create a composition from a JSON file
bash scripts/​playground.sh create PROJECT_ID spec.json

# Create from inline JSON
bash scripts/​playground.sh create PROJECT_ID '{"name":"Title Card","fps":30,"width":1920,"height":1080,"durationInFrames":90,"mode":"elements","elements":[{"id":"title","type":"text","content":"Hello World","style":{"fontSize":96,"fontWeight":"bold","color":"#fff","display":"flex","justifyContent":"center","alignItems":"center"}}]}'

# Get, update, delete
bash scripts/​playground.sh get PROJECT_ID COMP_ID
bash scripts/​playground.sh update PROJECT_ID COMP_ID updated-spec.json
bash scripts/​playground.sh delete PROJECT_ID COMP_ID

# Export the project
bash scripts/​playground.sh export PROJECT_ID --resolution 1080p

Workflow

  1. Create a project (or use an existing one)
  2. Browse presets — playground.sh list-presets for inspiration
  3. Build composition spec — JSON describing canvas, elements, and animations
  4. Create composition — playground.sh create
  5. Iterate — Update elements, adjust timing, add animations
  6. Export — playground.sh export

Scripts

scripts/​playground.sh

Purpose-built CRUD wrapper for playground compositions.

CommandUsage
list-presetsplayground.sh list-presets <projectId>
listplayground.sh list <projectId>
createplayground.sh create <projectId> <spec.json|-|JSON>
getplayground.sh get <projectId> <compositionId>
updateplayground.sh update <projectId> <compositionId> <spec>
deleteplayground.sh delete <projectId> <compositionId>
exportplayground.sh export <projectId> [--resolution 1080p]

Run bash scripts/​playground.sh --help for full usage.

scripts/​blitzreels.sh

Generic API helper for ad-hoc calls.

Environment Variables

VariableRequiredDescription
BLITZREELS_API_KEYYesAPI key
BLITZREELS_API_BASE_URLNoOverride base URL
BLITZREELS_ALLOW_EXPENSIVENoSet to 1 for export calls via blitzreels.sh

API Endpoints

Playground Compositions

MethodPathDescription
GET/​projects/​{id}/​playground/​presetsList preset templates
GET/​projects/​{id}/​playground/​compositionsList compositions
POST/​projects/​{id}/​playground/​compositionsCreate composition
GET/​projects/​{id}/​playground/​compositions/​{cid}Get composition
PATCH/​projects/​{id}/​playground/​compositions/​{cid}Update composition
DELETE/​projects/​{id}/​playground/​compositions/​{cid}Delete composition

Element-Level Operations

MethodPathDescription
PATCH/​projects/​{id}/​playground/​compositions/​{cid}/​elements/​{eid}Update single element
DELETE/​projects/​{id}/​playground/​compositions/​{cid}/​elements/​{eid}Delete element

Project Operations

MethodPathDescription
POST/​projectsCreate project
POST/​projects/​{id}/​exportStart export (expensive)
GET/​exports/​{export_id}Get export status + download URL

Composition Spec

The composition JSON spec defines the canvas, elements, and animations. See references/​composition-spec.md for the full schema.

Minimal Example

{
  "name": "Title Card",
  "fps": 30,
  "width": 1920,
  "height": 1080,
  "durationInFrames": 150,
  "background": "#1a1a2e",
  "mode": "elements",
  "elements": [
    {
      "id": "title",
      "type": "text",
      "content": "Hello World",
      "from": 0,
      "durationInFrames": 150,
      "style": {
        "fontSize": 96,
        "fontWeight": "bold",
        "color": "#ffffff",
        "opacity": {
          "keyframes": [
            { "frame": 0, "value": 0 },
            { "frame": 30, "value": 1 }
          ]
        }
      }
    }
  ]
}

Element Types

TypeDescription
textText with typewriter, highlight effects
shapeRectangle, circle, ellipse, line, arrow, polygon, star
imageStatic image with optional Ken Burns effect
videoVideo clip with volume, loop, playback control
audioAudio track
chartBar, pie, line, area, donut charts with animated reveal
codeSyntax-highlighted code with line-by-line reveal
svgSVG with path draw/​morph animations
groupContainer for child elements (parallel or series)
lottieLottie animation from JSON or URL

Animation Options

  • Static values: "opacity": 1
  • Keyframes: Frame-by-frame with easing
  • Spring physics: smooth, snappy, bouncy, heavy, gentle presets
  • Easing: linear, easeIn, easeOut, easeInOut, elastic, bounce, bezier

Scene Transitions (scenes mode)

fade, slide, wipe, flip, clockWipe — with directional variants.

Timeline & Overlay Editing

For editing existing video projects (not playground compositions), use these endpoints:

MethodPathDescription
GET/​projects/​{id}/​context?mode=timelineGet project timeline
POST/​projects/​{id}/​overlaysAdd text/​image overlay
PATCH/​projects/​{id}/​overlays/​{oid}Update overlay
DELETE/​projects/​{id}/​overlays/​{oid}Remove overlay
POST/​projects/​{id}/​captionsAdd/​update captions
PATCH/​projects/​{id}/​captions/​styleUpdate caption style

References

  • references/​composition-spec.md — Full composition JSON schema, element types, animation format, spring presets, transitions

Notes

  • Use https://www.blitzreels.com/​api/​v1 as your base URL. https://blitzreels.com redirects to www, and some HTTP clients drop the Authorization header on redirects.
  • When animating, prefer the smallest number of keyframes that communicates the motion (reduces jitter).
  • Full OpenAPI spec: https://www.blitzreels.com/​api/​openapi.json

Rate Limits

PlanRequests/​min
Free10
Creator30
Pro60
Agency120