Captions API
Apply caption styles and edit caption words with the BlitzReels API.
Captions can be styled globally and edited down to the word level. This lets you highlight keywords, fix errors, and align captions to a brand style.
Endpoints
POST /v1/projects/{project_id}/captionsGET /v1/projects/{project_id}/captionsGET /v1/projects/{project_id}/captions/{caption_id}PATCH /v1/projects/{project_id}/captions/{caption_id}GET /v1/projects/{project_id}/captions/stylePATCH /v1/projects/{project_id}/captions/styleGET /v1/projects/{project_id}/captions/wordsPOST /v1/projects/{project_id}/captions/words/emphasisPOST /v1/projects/{project_id}/captions/words/stylePOST /v1/projects/{project_id}/captions/words/textPOST /v1/projects/{project_id}/captions/words/retimePOST /v1/projects/{project_id}/captions/words/deletePOST /v1/projects/{project_id}/captions/words/mergePOST /v1/projects/{project_id}/captions/words/splitGET /v1/caption-looksGET /v1/caption-themesPOST /v1/caption-themesPATCH /v1/caption-themes/{theme_id}
Apply a Caption Style
Use a Caption Look ID to apply a consistent style.
curl -X PATCH https://www.blitzreels.com/api/v1/projects/{project_id}/captions/style \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "look_id": "editor-premium-lime" }'Get Current Caption Style
curl https://www.blitzreels.com/api/v1/projects/{project_id}/captions/style \
-H "Authorization: Bearer $BLITZREELS_API_KEY"List Caption Looks
Use this to discover the built-in looks meant for creators and agents.
curl https://www.blitzreels.com/api/v1/caption-looks \
-H "Authorization: Bearer $BLITZREELS_API_KEY"List Custom Caption Themes
Use this before copying a previous video's theme settings or setting a workspace default.
curl https://www.blitzreels.com/api/v1/caption-themes \
-H "Authorization: Bearer $BLITZREELS_API_KEY"Update Caption Style
Send only the fields you want to change (camelCase keys).
curl -X PATCH https://www.blitzreels.com/api/v1/projects/{project_id}/captions/style \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"style": {
"fontSize": 52,
"fontFamily": "Anton",
"textStrokeEnabled": true,
"textStrokeColor": "#000000",
"textStrokeWidthPx": 6
}
}'List Caption Words
Use this before word edits to get IDs and timing.
curl "https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words?limit=100" \
-H "Authorization: Bearer $BLITZREELS_API_KEY"Filter by exact word text or a caption timeline item:
curl "https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words?timeline_item_id={timeline_item_id}&match_text=IA" \
-H "Authorization: Bearer $BLITZREELS_API_KEY"List and Patch Caption Blocks
Use caption-block endpoints when you need the whole caption text, or when an edit changes token count.
curl https://www.blitzreels.com/api/v1/projects/{project_id}/captions \
-H "Authorization: Bearer $BLITZREELS_API_KEY"curl -X PATCH https://www.blitzreels.com/api/v1/projects/{project_id}/captions/{caption_id} \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d "{ \"text\": \"Pourquoi l'IA écrit du code propre\" }"Emphasize Words
You can target words by ID, exact text, or pattern.
curl -X POST https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words/emphasis \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "emphasis": true, "match_pattern": "numbers" }'curl -X POST https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words/emphasis \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "emphasis": false, "word_ids": ["word-uuid"] }'Update Word Styles
Style overrides are applied per word. Use clear_existing to reset old overrides.
curl -X POST https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words/style \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"style": { "color": "#FFEE00", "isKeyword": true },
"match_text": "important"
}'Update a Word Text
Use this for precise corrections when you know the word ID.
curl -X POST https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words/text \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "word_id": "word-uuid", "new_text": "corrected" }'Retime Words
Use this after splitting or inserting words when the displayed timing needs exact control.
curl -X POST https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words/retime \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"updates": [
{ "word_id": "word-chatgpt", "start_seconds": 35.93, "end_seconds": 36.87 }
]
}'Delete, Merge, or Split Words
Use these when a correction changes token count, such as de Expo to d'Expo.
curl -X POST https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words/merge \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "word_ids": ["word-de", "word-expo"], "text": "d'\''Expo" }'curl -X POST https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words/delete \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "word_ids": ["word-uuid"] }'curl -X POST https://www.blitzreels.com/api/v1/projects/{project_id}/captions/words/split \
-H "Authorization: Bearer $BLITZREELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "word_id": "word-uuid", "words": ["Next", ".js"] }'Tips
- Prefer transcript bulk corrections for repeated typos.
- Use
timeline_item_idwhen editing captions for a specific clip. - Combine emphasis with word style overrides for stronger visual impact.