Blipix API

Generate and publish Faceless videos automatically. The Blipix API lets you create videos, poll for completion, and publish directly to TikTok, YouTube and Instagram.

Authentication

All API requests require your API key sent as a Bearer token in the Authorization header.

Authorization: Bearer blx_your_api_key_here

You can find your API key in Settings.

Rate Limiting

API requests are rate limited to ensure fair usage and platform stability.

ScopeLimitWindow
Per API key60 requests1 minute
Per IP (failed auth)20 attempts15 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

https://app.blipix.pro/api/v1
GET/me

Returns 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
  }
}
GET/styles

Returns 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://..."
    }
  ]
}
GET/voices

Returns 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://..."
    }
  ]
}
GET/videos

Returns a list of your videos, sorted by newest first.

Query Parameters

ParameterTypeDescription
limitintegerNumber of videos to return (1–100, default 20)
statusstringFilter 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"
    }
  ]
}
GET/videos/:id

Returns 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"
}
POST/videos/create

Generate 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

processingready(generated, rendering MP4)renderStatus: completed(videoUrl available)

Rendering starts automatically after generation completes. Track progress with renderStatus (queuedcompleted) and renderProgress (0-100%). Once renderStatus is "completed", the videoUrl field contains the final MP4 download link.

Request Body

FieldTypeRequiredDescription
promptstringrequiredDescribe the video you want. AI will generate the script and visuals.
voicestringrequiredVoice ID for narration. Get available voices from GET /voices
stylestringoptionalArt style name. Get available styles from GET /styles. Defaults to Cinematic.
durationstringoptionalVideo length range. Default: "30-60". See table below.
aspectRatiostringoptional9:16, 16:9, or 1:1. Default: 9:16.
languagestringoptionalLanguage code. Default: "en". See table below.

Duration Options & Credits

ValueLengthCredits
30-6030 to 60 seconds10
60-901 to 1.5 minutes10
90-1201.5 to 2 minutes20
120-1502 to 2.5 minutes20
150-1802.5 to 3 minutes30
180-2103 to 3.5 minutes30
210-3003.5 to 5 minutes60
300-4205 to 7 minutes80
420-6007 to 10 minutes120
600-72010 to 12 minutes160
720-90012 to 15 minutes200

Supported Languages

Arabicar
Bulgarianbg
Chinesezh
Croatianhr
Czechcs
Danishda
Dutchnl
Englishen
Finnishfi
Filipinofil
Frenchfr
Germande
Greekel
Hindihi
Hungarianhu
Indonesianid
Italianit
Japaneseja
Koreanko
Malayms
Norwegianno
Polishpl
Portuguesept
Romanianro
Russianru
Slovaksk
Spanishes
Swedishsv
Tamilta
Turkishtr
Ukrainianuk
Vietnamesevi

Example 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.

More Coming Soon

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.