Kolbo.AIKolbo.AI Docs
Developer API

Stock Library

Search Kolbo's unified multi-source stock media library (photos, videos, illustrations, vectors, 3D models, music) and import assets into your media library.

The Stock Library is Kolbo's unified, multi-source catalog of ready-made media — photos, videos, illustrations, vectors, 3D models, and licensed music — aggregated behind one search. Use it to find b-roll, references, or project assets.

Library vs generation. These endpoints find existing assets and are free (no credits). To create new content, use image generation or video generation.

License. Your use of any asset is governed by the Asset Library License & Terms of Use. In short: Kolbo's own AI-generated music and sound effects are licensed for commercial use; third-party licensed assets (photos, videos, vectors, 3D) may be used only as original footage — not fed into AI generation/editing tools, and not used for AI training.

Sources today: Kolbo AI (our own AI-generated sound effects + music), Pexels (photos, videos), Unsplash (photos), Pixabay (photos, illustrations, vectors, videos), Coverr (videos, music), Sketchfab (3D models), Freesound (sound effects), and Music (licensed background tracks). Search reads are public-friendly; import/analyze require your X-API-Key.

Attribution. Every asset carries author, providerUrl, license, and a ready-to-render attribution string. When you display results you must credit the provider and the creator per their license.

Sources

List the enabled sources and which media types + filters each supports.

GET /api/v1/stock/sources
{
  "success": true,
  "mediaTypes": ["image", "illustration", "vector", "video", "3d", "music", "sfx"],
  "sources": [
    { "key": "kolbo-ai", "label": "Kolbo AI", "mediaTypes": ["sfx", "music"], "filters": { "sfx": ["query","category","subcategory","collectionId","packId","lengthBucket"], "music": ["query","genre","mood","theme","instrument","vocals","collectionId"] } },
    { "key": "pexels", "label": "Pexels", "mediaTypes": ["image", "video"], "filters": { "image": ["orientation","size","color","query"] }, "attribution": { "label": "Photos & videos provided by Pexels", "url": "https://www.pexels.com" } },
    { "key": "unsplash", "label": "Unsplash", "mediaTypes": ["image"], "attribution": { "label": "Photos provided by Unsplash", "url": "https://unsplash.com" } },
    { "key": "pixabay", "label": "Pixabay", "mediaTypes": ["image","illustration","vector","video"] },
    { "key": "coverr", "label": "Coverr", "mediaTypes": ["video","music"] },
    { "key": "sketchfab", "label": "Sketchfab", "mediaTypes": ["3d"] },
    { "key": "freesound", "label": "Freesound", "mediaTypes": ["sfx"] },
    { "key": "music", "label": "Music", "mediaTypes": ["music"] }
  ]
}

Categories

Dynamic category/topic chips per source. Pass the returned providerParam as the category filter on Search.

GET /api/v1/stock/categories?source=pixabay&mediaType=image
ParameterTypeDescription
sourcestringRestrict to one source (kolbo-ai, pexels, unsplash, pixabay, coverr, sketchfab).
mediaTypestringRestrict to one media type.
{
  "success": true,
  "count": 20,
  "categories": [
    { "source": "pixabay", "mediaType": "all", "key": "nature", "label": "Nature", "providerParam": "nature", "paramType": "category" }
  ]
}

For Kolbo SFX (source=kolbo-ai&mediaType=sfx), categories are 2-level: top-level groups (group: null) and their sub-filters (each carries a group pointing to its parent, and paramType: "subcategory"). Pass a group's providerParam as category and a sub-filter's as subcategory.

Collections

Kolbo's own SFX library is organized into category collections (one per taxonomy group, kind: "category", 77 of them) and curated themed packs (kind: "pack", 40 of them — e.g. Horror, Car Chase, In The Kitchen, Outer Space, Movie Trailer). Each has a cover image (and themed packs also a wide hero image).

GET /api/v1/stock/collections?mediaType=sfx&kind=pack
ParameterTypeDescription
mediaTypestringDefault sfx.
kindstringOptional: category or pack to filter.
{
  "success": true,
  "count": 40,
  "collections": [
    { "id": "6a3c...", "slug": "sfx-col-horror", "title": "Horror", "coverUrl": "https://media.kolbo.ai/...", "heroImageUrl": "https://media.kolbo.ai/...", "kind": "pack", "mediaType": "sfx" }
  ]
}

Use a collection/pack id as packId or collectionId in Search to browse just that set.

Unified search. With source=all (default) results from every provider that supports the media type are merged into one interleaved feed.

GET /api/v1/stock/search

Query Parameters

ParameterTypeDescription
querystringKeyword search. For Kolbo AI sound effects & music a natural-language vibe works (semantic search) — see below. Omit to browse. Max 200 chars.
sourcestringall (default), or kolbo-ai / pexels / unsplash / pixabay / coverr / sketchfab / freesound / music.
mediaTypestringimage (default), illustration, vector, video, 3d, music, sfx.
categorystringA providerParam from Categories. For Kolbo SFX these are the 77 Soundly-style groups (e.g. ambience, animals, vehicles, weapons, water, designed).
subcategorystringKolbo SFX sub-filter providerParam within a group (e.g. sword, splash, concrete, riser). 623 sub-filters across the 77 groups.
packIdstringFilter to one Kolbo themed pack id (from Collections).
collectionIdstringFilter to one Kolbo collection id.
orientationstringhorizontal / vertical (Pixabay) or landscape / portrait / square (Pexels).
colorstringColor filter (Pixabay named color, or Pexels named/hex).
orderstringpopular / latest (Pixabay).
cursorstringOpaque pagination cursor for Sketchfab single-source browse.
pagenumber1-based page (default 1; capped at 50 for kolbo-ai).
perPagenumberResults per page (default 24, max 80).
curl "https://api.kolbo.ai/api/v1/stock/search?query=ocean%20waves&source=all&mediaType=video&perPage=4" \
  -H "X-API-Key: kolbo_live_..."

Semantic "vibe" search (Kolbo AI sound effects & music)

The kolbo-ai source is Kolbo's own AI-generated library: thousands of sound effects (mediaType=sfx) and music (mediaType=music). For these, query is matched semantically — describe the feeling or use, not just keywords:

# Sound effects by vibe
curl "https://api.kolbo.ai/api/v1/stock/search?source=kolbo-ai&mediaType=sfx&query=tense%20ominous%20build-up%20for%20a%20horror%20reveal" \
  -H "X-API-Key: kolbo_live_..."

# Music by vibe
curl "https://api.kolbo.ai/api/v1/stock/search?source=kolbo-ai&mediaType=music&query=uplifting%20hopeful%20corporate%20background" \
  -H "X-API-Key: kolbo_live_..."

Each Kolbo SFX/music asset ships downloadVariants for both a WAV master and an MP3 preview. (External visual providers still use concrete keywords.)

Response

{
  "success": true,
  "assets": [
    {
      "source": "pexels",
      "sourceId": "12685044",
      "mediaType": "video",
      "title": "",
      "thumbnailUrl": "https://images.pexels.com/videos/.../poster.jpeg",
      "previewUrl": "https://images.pexels.com/videos/.../poster.jpeg",
      "width": 3840, "height": 2160, "durationSeconds": 20,
      "downloadVariants": [
        { "label": "uhd-2160p", "url": "https://...", "width": 3840, "height": 2160, "ext": "mp4", "fileSizeBytes": 12345678 }
      ],
      "author": { "name": "CityXcape", "url": "https://www.pexels.com/@cityxcape" },
      "providerUrl": "https://www.pexels.com/video/...",
      "license": { "name": "Pexels License", "attributionRequired": false, "url": "https://www.pexels.com/license/" },
      "tags": [],
      "attribution": "Video by CityXcape on Pexels"
    }
  ],
  "page": 1, "perPage": 4, "total": 8500, "hasMore": true,
  "sources": [ { "source": "pexels", "total": 8000, "hasMore": true }, { "source": "pixabay", "total": 500, "hasMore": true } ]
}

Paginate by incrementing page (the same page is requested from each provider, so the interleaved feed stays consistent).

Asset

Resolve a single normalized asset with all download variants.

GET /api/v1/stock/asset/:source/:id
ParameterTypeDescription
:sourcestringkolbo-ai, pexels, unsplash, pixabay, coverr, sketchfab, freesound, music.
:idstringThe provider asset id (sourceId).
mediaTypequeryMedia type hint (e.g. video) for sources that reuse ids across types.
curl "https://api.kolbo.ai/api/v1/stock/asset/pexels/12685044?mediaType=video" \
  -H "X-API-Key: kolbo_live_..."

Returns { "success": true, "asset": { ... } } with the same asset shape as Search.

Analyze Script (auto b-roll)

AI helper that turns a video/voiceover script into concrete stock b-roll search terms you can feed into Search.

POST /api/v1/stock/analyze-script
ParameterTypeDescription
scriptstringThe script / scene description to analyze (up to ~8000 chars). Required.
curl -X POST https://api.kolbo.ai/api/v1/stock/analyze-script \
  -H "X-API-Key: kolbo_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "script": "Aerial shots of a coastal city at sunrise, then a team collaborating in a modern office." }'
{
  "success": true,
  "queries": ["coastal city sunrise", "aerial drone ocean", "team collaborating office", "modern office interior"],
  "mediaType": "video",
  "keywords": ["coast", "sunrise", "drone", "office", "teamwork"]
}

Import

Copy a stock asset into your media library — downloaded to Kolbo's CDN with a stable URL so it can be used in projects and generations. Free. The licensed music (Synci) source is not importable here — use the Music Library for it. (Kolbo AI sound effects + the visual sources are importable.)

POST /api/v1/stock/import
ParameterTypeDescription
sourcestringkolbo-ai, pexels, unsplash, pixabay, coverr, freesound, or sketchfab. Required. (The licensed music source is not importable.)
idstringThe provider asset id. Required.
mediaTypestringMedia type hint (e.g. video, vector).
variantstringWhich download variant label to import (from Asset). Defaults to the best available.
project_idstringOptional project to associate the item with.
curl -X POST https://api.kolbo.ai/api/v1/stock/import \
  -H "X-API-Key: kolbo_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "source": "pexels", "id": "12685044", "mediaType": "video" }'
{
  "success": true,
  "alreadyImported": false,
  "libraryItem": { "_id": "...", "mediaType": "video", "url": "https://media.kolbo.ai/...", "filename": "..." }
}

Re-importing the same asset returns the existing item with alreadyImported: true.

Typical Flow

  1. From a scriptPOST /stock/analyze-script to get queries[] + mediaType.
  2. SearchGET /stock/search for each query (source=all). Show thumbnailUrl + attribution.
  3. ResolveGET /stock/asset/:source/:id for the full download variants.
  4. Use itPOST /stock/import to copy the asset into the media library (stable CDN URL), then reference it in a project or generation.

Notes

  • All Stock Library endpoints are free — they do not consume credits.
  • Always display the provider + creator credit (attribution) when you show results.
  • Pixabay vectors currently ship as a high-resolution raster (true SVG requires Pixabay full API access); meta.vectorRasterOnly flags these.
  • Errors return { "success": false, "error": "...", "code": "..." }. A 503 means a source is not configured on that environment.