Linking Cloudinary 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

Alpha release

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

The Cloudinary connector syncs your media library metadata into the PostHog data warehouse: images, videos, raw files, folders, transformations, and upload presets. Media files themselves are never downloaded.

Prerequisites

A Cloudinary account, and the cloud name, API key, and API secret from its console. Read access is enough.

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.

Find all three values in your Cloudinary console under Settings, then API Keys.

You'll be asked for:

  • Cloud name: shown at the top of your Cloudinary console.
  • API key and API secret: from the API Keys page.
  • Region: match the API host your account uses. Most accounts are on the global host.

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.

All Cloudinary tables are full refresh. Cloudinary's only time filter on the asset lists selects on update time while the list is ordered by creation time, so a watermark built on it would skip rows.

Cloudinary limits Admin API calls per hour, 500 on free plans, so a first sync of a large media library can take a while. PostHog requests the largest page Cloudinary allows to keep the call count down.

Configuration

OptionDescription
Cloud name
Type: text
Required: True

Shown at the top of your Cloudinary console.

API key
Type: text
Required: True
API secret
Type: password
Required: True
Region
Type: select
Required: True

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
images

An image in the Cloudinary media library, with its delivery URLs, size, and metadata.

Full refresh——
videos

A video in the Cloudinary media library, with its delivery URLs, size, and metadata.

Full refresh——
raw_files

A raw file in the Cloudinary media library, meaning one stored without image or video processing.

Full refresh——
folders

A folder in the Cloudinary media library.

Full refresh——
transformations

A stored transformation, meaning a named recipe Cloudinary applies when delivering an asset.

Full refresh——
upload_presets

An upload preset, meaning a saved set of upload options that clients can apply by name.

Full refresh——

Troubleshooting

  • If the connection fails with an authorization error, check the API key and secret in your Cloudinary console under Settings, then API Keys.
  • If Cloudinary does not recognize the cloud name, copy it from the top of the console rather than from a delivery URL.
  • If a sync stops partway, the account may have hit its hourly Admin API limit. The sync picks up where it left off on the next run.

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?