API · v2

Your recordings, transcripts, and AI summaries — over HTTP.

Sync them to a warehouse. Feed them to a RAG pipeline. Hand them to an agent. They're your videos. Now they fit in a script.

1000 req/hrp95 < 400msJWT bearer authCursor pagination
curl https://api.komododecks.com/api/public/v2/recordings?limit=5 \
  -H "Authorization: Bearer $KOMMODO_TOKEN"
200 OK · returns { recordings, next_cursor }
What it is

A REST API for the recordings, transcripts, and AI metadata in your Kommodo workspace.

The Kommodo API is built for teams that capture video at scale — sales calls, customer onboarding sessions, internal training, recorded meetings, screen-shared product demos — and want that footage to live somewhere other than the dashboard. List endpoints return paginated recordings filtered by date, owner, folder, tag, or whether a published Page exists. Detail endpoints return the full AI envelope: summary, chapters with timestamps, action items, tags, suggested title, and detected language.

A separate transcript endpoint streams raw WebVTT or returns parsed JSON cues. PATCH and POST endpoints let you rename recordings, retag them, move them between folders, or publish a recording as a public Page — all without opening the dashboard. Authentication is a single JWT bearer token; pagination is opaque cursor-based; rate limits surface in headers.

Common builds: nightly transcript sync into a data warehouse, video knowledge bases backed by AI summaries, RAG pipelines that cite specific recording timestamps, agent workflows that curate recordings on a user's behalf, and automation that converts finished recordings into published Pages on a schedule.

Step one

A token in 30 seconds

Read scope by default. Toggle write to update titles or publish pages. Premium and Enterprise plans.

1

Open Account → API

Generate a token from your account settings. Read scope by default; toggle Write for PATCH and page creation.

2

Export it as $KOMMODO_TOKEN

Treat it like a password — never commit it. Tokens are scoped to your user; revoke and reissue anytime.

3

Send it as a Bearer header

Authorization: Bearer <token>. That’s the whole auth model. No OAuth dance, no refresh.

What people build

Common patterns

Each snippet uses live v2 endpoints. Replace $KOMMODO_TOKEN and run.

Nightly transcript sync

Watermark + cursor pagination. Pull every recording updated since your last run and ingest its VTT or JSON transcript into your data warehouse.

# Pull every recording updated since last run, then fetch transcripts.
since = read_watermark()  # ISO timestamp from your last sync
cursor = None
while True:
    r = session.get(BASE + "/recordings", params={
        "since": since, "cursor": cursor, "limit": 100,
    }).json()
    for rec in r["recordings"]:
        t = session.get(BASE + f"/recordings/{rec['id']}/transcript",
                        params={"format": "json"}).json()
        ingest(rec, t["cues"])
    cursor = r["next_cursor"]
    if not cursor: break
write_watermark(now_utc_iso())

Build a video knowledge base

Filter on tag, folder, or has_page; hydrate with AI summary, chapters, and action items. Feed an enterprise search index or RAG pipeline.

# 1. List recordings inside a specific folder
curl "$BASE/recordings?folder_id=<folder-id>&has_page=true" \
  -H "Authorization: Bearer $KOMMODO_TOKEN"

# 2. Pull the AI summary + chapters for each
curl "$BASE/recordings/<id>" \
  -H "Authorization: Bearer $KOMMODO_TOKEN"
# returns: ai.summary, ai.chapters, ai.action_items, ai.tags

Bulk rename & curate

PATCH titles, descriptions, and tags from a script or agent. Owner-or-folder-fullAccess enforced server-side.

# Rename a recording (write scope required)
curl -X PATCH "$BASE/recordings/<id>" \
  -H "Authorization: Bearer $KOMMODO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title": "Q2 onboarding — final"}'

Auto-publish a Page from a recording

Turn a finished recording into a public Page with one POST. Drop publish:false for a draft you can edit in the dashboard.

# Convert a recording into a published Page (write scope required)
curl -X POST "$BASE/recordings/<id>/pages" \
  -H "Authorization: Bearer $KOMMODO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"publish": true}'
For agents — Claude, Cursor, Codex

Or just hand it to your agent.

Install the Skill once, paste your token, and your agent can list, search, transcribe, rename, and publish. No client to maintain. No schemas to memorize.

Open source · MIT · Works in any agent that supports skills

~/your-project
$ claude --skill kommodo
Loaded 7 tools: find_recordings,
get_recording, get_transcript,
update_recording, create_page,
list_folders, list_team_members
> rename my last 5 recordings to
  "Onboarding — week 1"
Found 5 matching recordings.
Updating titles… ✓

Illustrative. Actual flow depends on your agent.

The fine print

Limits and SLAs

Every response carries an X-RateLimit-Remaining header so you can pace requests without polling.

Auth
JWT HS256, Bearer
Scopes
read · write
Rate limit
1000 req / hr
Concurrency
100 in-flight
List p95
< 400 ms
List p99
< 900 ms
Page size
Up to 100 / call
Pagination
Opaque cursor
Transcript cap
5 MB / file
CORS
Origin-restricted
Retries
Exponential on 429
Headers
X-RateLimit-Remaining
Reference

Endpoints

Full request and response shapes are in the quickstart.

GET
/v2/recordings
List with filters: q, since, until, folder_id, member_id, has_page, cursor.
read
GET
/v2/recordings/{id}
Full envelope including ai.summary, ai.chapters, ai.action_items.
read
PATCH
/v2/recordings/{id}
Update title, description, tags, folder_id.
write
GET
/v2/recordings/{id}/transcript
Stream as text/vtt or parsed JSON cues. 5 MB cap.
read
POST
/v2/recordings/{id}/pages
Convert recording to a Page. publish:true to go live.
write
GET
/v2/folders
Walk the folder tree. parent_id, member_id (team-owner only), and cursor supported.
read
GET
/v2/team/members
List teammates whose recordings the token can see.
read
Kommodo API FAQs

Common questions from developers

Open Account → API in your dashboard and generate a token. Read scope is enabled by default; toggle Write scope to update titles or publish pages. API access is included with Premium and Enterprise plans.

Read scope can list recordings, fetch transcripts, and read AI metadata. Write scope can also PATCH titles, descriptions, tags, and folders, and POST a recording to create a published Page. Tokens default to read scope; you must opt in to write scope at token creation.

Each token is limited to 1000 requests per hour and 100 concurrent in-flight requests. Every response carries an X-RateLimit-Remaining header so you can pace requests without polling. Exceed the limit and you receive a 429 with X-RateLimit-Reset indicating when to retry.

List endpoints return an opaque next_cursor. Pass it back as the cursor query parameter on the next call until next_cursor is null. Combine with since=<ISO timestamp> for incremental sync — keep a watermark of the last successful run and pass it on the next poll.

The transcript endpoint returns either WebVTT (format=vtt) or parsed JSON cues (format=json) with start_seconds, end_seconds, and text per cue. Files are capped at 5 MB; larger transcripts return a 413. The endpoint proxies the underlying file so you do not need to manage presigned URL TTLs.

List responses include ai.tags, ai.suggested_title, ai.detected_language, and ai.status. Detail responses (GET /recordings/{id}) additionally include ai.summary, ai.chapters (with timestamps), and ai.action_items. AI processing is asynchronous; check ai.status (ready, processing, pending, failed) before consuming.

Yes. We publish an open-source Skill at github.com/touchapp/kommodo-skill that wraps the v2 API as agent tools (find_recordings, get_transcript, update_recording, create_page, and more). Install once, paste your token, and your agent can curate recordings on your behalf.

API access is part of the Premium and Enterprise plans. Free and Starter accounts can preview the docs but cannot generate tokens. See pricing for current tiers.

Email support@kommodo.ai with the request URL, response status, and timestamp in UTC. We correlate from server logs and respond within one business day.

The complete request and response shapes live in the quickstart on GitHub, which includes a working Python sample for nightly transcript sync, the full endpoint table, and error codes.

Start building

Generate a token, paste it into the snippet, ship. Email support@kommodo.ai if anything breaks.