Kolbo.AIKolbo.AI Docs
Developer API

Developer API Overview

Programmatically generate images, videos, music, speech, and sound effects with the Kolbo API.

The Kolbo Developer API lets you programmatically access 100+ AI models for generating images, videos, music, speech, and sound effects. Use it from any language, or integrate directly into Claude Code via our MCP server.

Quick Start

1. Get an API Key

Create a key from the Developer Console or via the API:

curl -X POST https://api.kolbo.ai/api/api-keys \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "My App"}'

Save the fullKey from the response -- it is only shown once.

2. Generate an Image

When you omit the model field, Kolbo uses Smart Select to automatically pick the best model for your prompt. This is the recommended approach for most use cases.

curl -X POST https://api.kolbo.ai/api/v1/generate/image \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A sunset over mountains", "aspect_ratio": "16:9"}'

Response:

{
  "success": true,
  "generation_id": "abc123",
  "type": "image",
  "poll_url": "/api/v1/generate/abc123/status",
  "poll_interval_hint": 3
}

3. Poll for Results

Replace abc123 with the generation_id from step 2:

curl https://api.kolbo.ai/api/v1/generate/abc123/status \
  -H "X-API-Key: YOUR_API_KEY"

When complete:

{
  "success": true,
  "generation_id": "abc123",
  "state": "completed",
  "progress": 100,
  "result": {
    "urls": ["https://cdn.kolbo.ai/..."],
    "model": "auto",
    "prompt_used": "A breathtaking sunset..."
  }
}

Full Example (JavaScript)

const API_KEY = "YOUR_API_KEY";
const BASE = "https://api.kolbo.ai/api/v1";

async function generateImage(prompt) {
  const res = await fetch(`${BASE}/generate/image`, {
    method: "POST",
    headers: {
      "X-API-Key": API_KEY,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ prompt, aspect_ratio: "16:9" })
  });
  const { generation_id } = await res.json();

  while (true) {
    await new Promise((r) => setTimeout(r, 3000));
    const status = await fetch(`${BASE}/generate/${generation_id}/status`, {
      headers: { "X-API-Key": API_KEY }
    }).then((r) => r.json());

    if (status.state === "completed") return status.result.urls;
    if (status.state === "failed") throw new Error(status.error);
  }
}

generateImage("A sunset over mountains").then(console.log);

Full Example (Python)

import requests
import time

API_KEY = "YOUR_API_KEY"
BASE = "https://api.kolbo.ai/api/v1"

def generate_image(prompt):
    res = requests.post(
        f"{BASE}/generate/image",
        headers={"X-API-Key": API_KEY, "Content-Type": "application/json"},
        json={"prompt": prompt, "aspect_ratio": "16:9"}
    )
    generation_id = res.json()["generation_id"]

    while True:
        time.sleep(3)
        status = requests.get(
            f"{BASE}/generate/{generation_id}/status",
            headers={"X-API-Key": API_KEY}
        ).json()

        if status["state"] == "completed":
            return status["result"]["urls"]
        if status["state"] == "failed":
            raise Exception(status["error"])

urls = generate_image("A sunset over mountains")
print(urls)

Generation Types

TypeEndpointTypical Time
ChatPOST /v1/chat2-30s
ImagePOST /v1/generate/image10-30s
Image EditPOST /v1/generate/image-edit10-30s
Video (text)POST /v1/generate/video1-5 min
Video (from image)POST /v1/generate/video/from-image1-5 min
Video (from video)POST /v1/generate/video-from-video2-8 min
Elements (ref → video)POST /v1/generate/elements2-10 min
First-Last FramePOST /v1/generate/first-last-frame1-5 min
LipsyncPOST /v1/generate/lipsync1-10 min
MusicPOST /v1/generate/music30s-2 min
SpeechPOST /v1/generate/speech5-30s
Sound EffectsPOST /v1/generate/sound5-30s
Creative DirectorPOST /v1/generate/creative-director30s-3 min
3D ModelPOST /v1/generate/3d2-15 min
TranscriptionPOST /v1/transcribe30s-5 min

Visual DNA

Create reusable visual identities for characters, products, or styles, then attach them to any generation for consistency.

EndpointDescription
POST /v1/visual-dnaCreate a Visual DNA from reference images
GET /v1/visual-dnaList your Visual DNAs
GET /v1/visual-dna/:idGet Visual DNA details
DELETE /v1/visual-dna/:idDelete a Visual DNA

See Visual DNA for details.

Moodboards

Discover and apply style templates (moodboards) to guide the visual direction of your generations.

EndpointDescription
GET /v1/moodboardsList available moodboards (personal + presets)
GET /v1/moodboards/:idGet moodboard details

Pass moodboard_id to image generation, image editing, or Creative Director requests. See Moodboards for details.

Chat

Send messages to 20+ AI models with multi-turn conversation support.

EndpointDescription
POST /v1/chatSend a chat message (requires polling)
GET /v1/chat/conversationsList your conversations
GET /v1/chat/conversations/:id/messagesGet conversation messages

See Chat for details.

Media Library

Upload local files to the user's Kolbo library and get back a stable CDN URL for reuse across generations.

EndpointDescription
POST /v1/media/uploadUpload a file (multipart) and receive a stable URL
GET /v1/mediaList uploaded media (filter by type, page, pageSize, searchTerm)

Presets Discovery

EndpointDescription
GET /v1/presetsList generation presets across image/video/music/text-to-video catalogs (filter with type)

Other Endpoints

EndpointDescription
GET /v1/modelsList available models
GET /v1/voicesList TTS voices
GET /v1/account/creditsCheck credit balance
GET /v1/generate/:id/statusPoll generation status
GET /v1/generate/creative-director/:id/statusPoll Creative Director status (per-scene)

Authentication

All requests require the X-API-Key header with your API key:

X-API-Key: YOUR_API_KEY

See Authentication for details on creating and managing keys.

Claude Code Integration

Use Kolbo as native tools in Claude Code via our MCP server. See Claude Code Setup.