Linking Twelve Labs as a source

Let AI connect your sources for you

Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Learn more
PostHog Wizard hedgehog

Contents

Alpha release

This source is currently in alpha. The interface and available tables may change.

Sync your Twelve Labs video understanding library into PostHog. This connector imports your indexes, the videos in each index, the video indexing tasks that track the upload and indexing lifecycle, and the transcriptions of your video and audio assets, so you can analyze library growth, indexing throughput, indexing failures, and spoken content alongside the rest of your data.

Prerequisites

You need a Twelve Labs account and an API key. Any plan tier works, but free plans have daily request caps that can slow the sync of very large libraries.

Adding a data source

  1. In PostHog, go to the Sources tab of the data pipeline section.
  2. Click + New source and click Link next to this source.
  3. Enter your credentials (see Configuration below) and click Next.
  4. Select the tables you want to sync, choose a sync method and frequency, then click Import.

Once the syncs are complete, you can start querying this data in PostHog.

You need your Twelve Labs API key. You can create one from the API key page in your Twelve Labs dashboard. Paste it into the API key field when connecting the source.

Sync modes

Each table can be synced in one of several modes, depending on what the source supports:

  • Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
  • Incremental – only new or updated rows are synced on each run, using a cursor field (such as an updated_at timestamp). Cheaper than a full refresh, but deletes aren't captured.
  • Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
  • Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.

See sync methods for a full explanation of how each mode works and how to choose between them.

indexes and tasks support incremental sync (via the server-side updated_at filter) and are recommended for ongoing syncs. videos is nested per index and syncs by full refresh; it is disabled by default because fanning out one request per index can consume a meaningful share of a free plan's daily request quota. Enable it when you need per-video metadata.

asset_transcriptions works the same way: it makes one request per video or audio asset, syncs by full refresh, and is disabled by default. Each row holds the transcription status plus its sentences and speaker turns. Assets without a transcription are skipped.

Configuration

OptionTypeRequired
API keypasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
indexes

An index groups one or more uploaded videos stored as vectors, together with the models used to process them.

Incremental, Full refreshupdated_at, created_at—
tasks

A video indexing task tracks the upload and indexing lifecycle of a single video.

Incremental, Full refreshupdated_at, created_at—
videos

A video is an indexed asset within an index, searchable and available for analysis.

Full refresh——
asset_transcriptions

The speech transcription of a video or audio asset, with its status and timestamped segments.

Full refresh——

Troubleshooting

If the connection fails with an authorization error, confirm your API key is active in the Twelve Labs dashboard and has not been revoked. If a large library syncs slowly, it is most likely being throttled by your plan's daily request cap; syncing fewer tables or upgrading your plan will help.

If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.

Still have questions?

Was this page useful?