SDKs
Official and community SDKs for the BlitzReels API.
TypeScript SDK
The official TypeScript SDK is @blitzreels/sdk. It is the shared API layer used by the BlitzReels CLI and external TypeScript integrations.
npm install @blitzreels/sdkimport { BlitzReelsClient } from "@blitzreels/sdk";
const client = new BlitzReelsClient({
apiKey: process.env.BLITZREELS_API_KEY ?? "",
baseUrl: "https://www.blitzreels.com/api/v1",
});
const auth = await client.auth.validate();
const scan = await client.onboarding.startBrandScan({
websiteUrl: "https://example.com",
businessOutcome: "book_calls",
});
await client.onboarding.getBrandScan({ runId: scan.run_id });
const brandProfile = await client.onboarding.getBrandProfile();
await client.onboarding.importLogo({
profileId: brandProfile.profile?.id ?? null,
logoUrl: null,
replaceExisting: false,
});
await client.onboarding.complete({
businessOutcome: brandProfile.profile?.business_outcome ?? "book_calls",
websiteUrl: brandProfile.profile?.website_url ?? "https://example.com",
socialProfiles: brandProfile.profile?.social_profiles ?? null,
brandName: brandProfile.profile?.brand_name ?? "Creator Studio",
tagline: brandProfile.profile?.tagline ?? null,
audience: brandProfile.profile?.audience ?? null,
offer: brandProfile.profile?.offer ?? null,
conversionGoal: brandProfile.profile?.conversion_goal ?? null,
tone: brandProfile.profile?.tone ?? null,
colorPalette: brandProfile.profile?.color_palette ?? null,
logoCandidates: brandProfile.profile?.logo_candidates ?? null,
suggestedSafeWords: brandProfile.profile?.suggested_safe_words ?? null,
workspaceDescription: null,
platforms: ["tiktok", "linkedin"],
saveWorkspaceIcon: true,
});
const clip = await client.clips.create({
projectName: "Demo short",
source: {
sourceType: "youtube",
assetId: null,
youtubeUrl: "https://www.youtube.com/watch?v=VIDEO_ID",
},
selection: {
mode: "auto_best",
suggestionId: null,
startSeconds: null,
endSeconds: null,
},
target: {
aspectRatio: "9:16",
minDurationSeconds: 8,
maxDurationSeconds: 45,
},
layout: {
mode: "auto",
contentTypeHint: "auto",
},
captions: {
enabled: true,
styleId: null,
},
qa: {
mode: "permissive",
},
export: {
autoExport: false,
},
});
console.log(auth.organization_id, clip.clip.clip_id);CLI Relationship
The CLI uses the same SDK package internally. Use the SDK for TypeScript applications and blitzreels CLI commands for shell-first agent workflows.
Onboarding
The SDK exposes the same onboarding primitives as the REST API and CLI:
client.onboarding.startBrandScanclient.onboarding.getBrandScanclient.onboarding.getBrandProfileclient.onboarding.updateBrandProfileclient.onboarding.importLogoclient.onboarding.complete
Use these to let an integration scan a public website, review or patch brand profile fields, import a logo candidate, and mark onboarding complete before creating projects.
Raw HTTP
The REST API is stable and can also be called with any HTTP client.
const res = await fetch("https://www.blitzreels.com/api/v1/projects", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BLITZREELS_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ name: "My Video", aspect_ratio: "9:16" }),
});
if (!res.ok) throw new Error(await res.text());
const project = await res.json();Python
There is no official Python SDK yet. Use requests or generate a client from the OpenAPI spec.
import os
import requests
resp = requests.post(
"https://www.blitzreels.com/api/v1/projects",
headers={
"Authorization": f"Bearer {os.environ['BLITZREELS_API_KEY']}",
"Content-Type": "application/json",
},
json={"name": "My Video", "aspect_ratio": "9:16"},
)
resp.raise_for_status()
project = resp.json()OpenAPI
Use the OpenAPI spec to generate clients for other languages:
https://www.blitzreels.com/api/openapi.json