Authentication
All API requests require your API key sent as a Bearer token in the Authorization header.
You can find your API key in Settings.
Rate Limiting
API requests are rate limited to ensure fair usage and platform stability.
| Scope | Limit | Window |
|---|---|---|
| Per API key | 60 requests | 1 minute |
| Per IP (failed auth) | 20 attempts | 15 minutes |
Rate limit info is returned in response headers: X-RateLimit-Limit and X-RateLimit-Remaining. Exceeding the limit returns 429 Too Many Requests.
Base URL
/meReturns your account details and current credit usage.
Example Request
curl -H "Authorization: Bearer blx_your_api_key_here" \ https://app.blipix.pro/api/v1/me
Response
{
"id": "abc123",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"plan": "STARTER",
"country": "US",
"credits": {
"used": 15,
"total": 50,
"remaining": 35
}
}/stylesReturns all available art styles. Use the name value as the style parameter when creating a video.
Response
{
"count": 25,
"styles": [
{
"name": "Cinematic",
"thumbnail": "https://..."
},
{
"name": "Anime",
"thumbnail": "https://..."
}
]
}/voicesReturns all available voices. Use the voiceId value as the voice parameter when creating a video.
Response
{
"count": 30,
"voices": [
{
"voiceId": "alloy",
"name": "Alloy",
"language": "en",
"gender": "female",
"preview": "https://..."
},
{
"voiceId": "nova",
"name": "Nova",
"language": "en",
"gender": "female",
"preview": "https://..."
}
]
}/videosReturns a list of your videos, sorted by newest first.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Number of videos to return (1–100, default 20) |
| status | string | Filter by status: ready, processing, failed |
Example Request
curl -H "Authorization: Bearer blx_your_api_key_here" \ "https://app.blipix.pro/api/v1/videos?limit=5&status=ready"
Response
{
"count": 2,
"videos": [
{
"id": "abc123",
"title": "Top 5 AI Tools in 2026",
"description": "A quick rundown of the best AI tools...",
"status": "ready",
"type": "standard",
"duration": 45.2,
"aspectRatio": "9:16",
"renderStatus": "completed",
"videoUrl": "https://...",
"thumbnailUrl": "https://...",
"hashtags": ["#AI", "#Tech"],
"createdAt": "2026-05-15T10:30:00.000Z"
}
]
}/videos/:idReturns details for a single video by ID. Includes the script and audio URL in addition to the standard fields.
Example Request
curl -H "Authorization: Bearer blx_your_api_key_here" \ https://app.blipix.pro/api/v1/videos/VIDEO_ID
Response
{
"id": "abc123",
"title": "Top 5 AI Tools in 2026",
"description": "A quick rundown of the best AI tools...",
"script": "Did you know that AI tools are changing...",
"status": "ready",
"type": "standard",
"duration": 45.2,
"aspectRatio": "9:16",
"renderStatus": "completed",
"renderProgress": 100,
"videoUrl": "https://...",
"thumbnailUrl": "https://...",
"audioUrl": "https://...",
"hashtags": ["#AI", "#Tech"],
"createdAt": "2026-05-15T10:30:00.000Z"
}/videos/createGenerate a new video from a prompt. The AI writes the script, generates images, produces and renders the final MP4 automatically. Returns a video ID — poll GET /videos/:id to track progress.
Video Lifecycle
Rendering starts automatically after generation completes. Track progress with renderStatus (queued → completed) and renderProgress (0-100%). Once renderStatus is "completed", the videoUrl field contains the final MP4 download link.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| prompt | string | required | Describe the video you want. AI will generate the script and visuals. |
| voice | string | required | Voice ID for narration. Get available voices from GET /voices |
| style | string | optional | Art style name. Get available styles from GET /styles. Defaults to Cinematic. |
| duration | string | optional | Video length range. Default: "30-60". See table below. |
| aspectRatio | string | optional | 9:16, 16:9, or 1:1. Default: 9:16. |
| language | string | optional | Language code. Default: "en". See table below. |
Duration Options & Credits
| Value | Length | Credits |
|---|---|---|
| 30-60 | 30 to 60 seconds | 10 |
| 60-90 | 1 to 1.5 minutes | 10 |
| 90-120 | 1.5 to 2 minutes | 20 |
| 120-150 | 2 to 2.5 minutes | 20 |
| 150-180 | 2.5 to 3 minutes | 30 |
| 180-210 | 3 to 3.5 minutes | 30 |
| 210-300 | 3.5 to 5 minutes | 60 |
| 300-420 | 5 to 7 minutes | 80 |
| 420-600 | 7 to 10 minutes | 120 |
| 600-720 | 10 to 12 minutes | 160 |
| 720-900 | 12 to 15 minutes | 200 |
Supported Languages
arbgzhhrcsdanlenfifilfrdeelhihuiditjakomsnoplptroruskessvtatrukviExample Request
curl -X POST https://app.blipix.pro/api/v1/videos/create \
-H "Authorization: Bearer blx_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Top 5 AI Tools in 2026",
"voice": "alloy",
"style": "Cinematic",
"duration": "30-60",
"aspectRatio": "9:16"
}'Response 201 Created
{
"id": "abc123",
"status": "processing",
"message": "Video generation started. Poll GET /api/v1/videos/:id to check status.",
"creditsCost": 10
}Polling for Completion
After creating a video, poll GET /videos/:id every 15-30 seconds. The video is fully ready when renderStatus is "completed" and videoUrl is present.
// Poll until video is fully rendered
async function waitForVideo(videoId) {
while (true) {
const res = await fetch(
`https://app.blipix.pro/api/v1/videos/${videoId}`,
{ headers: { "Authorization": "Bearer blx_your_api_key_here" } }
);
const video = await res.json();
if (video.renderStatus === "completed" && video.videoUrl) {
console.log("Video ready:", video.videoUrl);
return video;
}
if (video.status === "failed") {
throw new Error("Video generation failed");
}
// Log progress
console.log(`Status: ${video.status}, Render: ${video.renderStatus || 'pending'}, Progress: ${video.renderProgress ?? '-'}%`);
// Wait 20 seconds before next check
await new Promise(r => setTimeout(r, 20000));
}
}Typical generation time: 2-5 minutes for short videos, 5-15 minutes for longer ones. Rendering adds 1-3 minutes.
Additional endpoints on the way
We're building more endpoints for image creation, rendering, and more. Stay tuned, your existing API key will work with all future endpoints.