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| Parameter | Type | Description |
|---|---|---|
source | string | Restrict to one source (kolbo-ai, pexels, unsplash, pixabay, coverr, sketchfab). |
mediaType | string | Restrict 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| Parameter | Type | Description |
|---|---|---|
mediaType | string | Default sfx. |
kind | string | Optional: 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.
Search
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/searchQuery Parameters
| Parameter | Type | Description |
|---|---|---|
query | string | Keyword search. For Kolbo AI sound effects & music a natural-language vibe works (semantic search) — see below. Omit to browse. Max 200 chars. |
source | string | all (default), or kolbo-ai / pexels / unsplash / pixabay / coverr / sketchfab / freesound / music. |
mediaType | string | image (default), illustration, vector, video, 3d, music, sfx. |
category | string | A providerParam from Categories. For Kolbo SFX these are the 77 Soundly-style groups (e.g. ambience, animals, vehicles, weapons, water, designed). |
subcategory | string | Kolbo SFX sub-filter providerParam within a group (e.g. sword, splash, concrete, riser). 623 sub-filters across the 77 groups. |
packId | string | Filter to one Kolbo themed pack id (from Collections). |
collectionId | string | Filter to one Kolbo collection id. |
orientation | string | horizontal / vertical (Pixabay) or landscape / portrait / square (Pexels). |
color | string | Color filter (Pixabay named color, or Pexels named/hex). |
order | string | popular / latest (Pixabay). |
cursor | string | Opaque pagination cursor for Sketchfab single-source browse. |
page | number | 1-based page (default 1; capped at 50 for kolbo-ai). |
perPage | number | Results 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| Parameter | Type | Description |
|---|---|---|
:source | string | kolbo-ai, pexels, unsplash, pixabay, coverr, sketchfab, freesound, music. |
:id | string | The provider asset id (sourceId). |
mediaType | query | Media 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| Parameter | Type | Description |
|---|---|---|
script | string | The 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| Parameter | Type | Description |
|---|---|---|
source | string | kolbo-ai, pexels, unsplash, pixabay, coverr, freesound, or sketchfab. Required. (The licensed music source is not importable.) |
id | string | The provider asset id. Required. |
mediaType | string | Media type hint (e.g. video, vector). |
variant | string | Which download variant label to import (from Asset). Defaults to the best available. |
project_id | string | Optional 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
- From a script →
POST /stock/analyze-scriptto getqueries[]+mediaType. - Search →
GET /stock/searchfor each query (source=all). ShowthumbnailUrl+attribution. - Resolve →
GET /stock/asset/:source/:idfor the full download variants. - Use it →
POST /stock/importto 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.vectorRasterOnlyflags these. - Errors return
{ "success": false, "error": "...", "code": "..." }. A503means a source is not configured on that environment.
Music Library
Search Kolbo's catalog of licensed stock / production music and resolve downloadable track URLs.
Asset Library License & Terms of Use
The license and terms of use governing assets (AI-generated music and SFX, and third-party licensed photos, videos, vectors, and 3D models) obtained from the Kolbo.AI Asset Library.