Linking Checkly 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.

This source is currently in alpha. The interface and available tables may change.
The Checkly connector syncs your synthetic monitoring data – checks, check groups, alert channels, check statuses, and check results – into PostHog, so you can analyze uptime, performance, and alerting alongside your product data.
Prerequisites
You need a Checkly account with an API key and your account ID.
- API key – create one in User Settings → API Keys.
- Account ID – find it in Account Settings → General. It's a UUID.
Adding a data source
- In PostHog, go to the Sources tab of the data pipeline section.
- Click + New source and click Link next to this source.
- Enter your credentials (see Configuration below) and click Next.
- 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.
When linking Checkly, you'll need:
- API key – the key you created in your Checkly user settings.
- Account ID – the UUID from your Checkly account settings.
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_attimestamp). 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.
Most Checkly tables use full refresh. check_results supports incremental sync using the created_at timestamp.
Check results
The check_results table syncs individual check runs – including final results and retry attempts – for all currently listed checks. A few things to note:
- 30-day history – Checkly retains results for up to 30 days, so each sync covers that window at most.
- Incremental sync – when enabled, subsequent syncs fetch only results newer than the last watermark, reducing the amount of data transferred.
- Deleted checks – results for checks that have been deleted from Checkly are not discovered.
- Excluded fields – raw logs, request payloads, and result assets are not synced. Only run metrics and status fields are included.
Data sanitization
For security, the connector excludes sensitive fields before data reaches PostHog. This includes inline authentication, request bodies, environment variables, executable scripts, URLs, and secret-bearing alert channel configuration. Only explicitly approved safe fields are synced for checks, check_groups, and alert_channels.
Configuration
| Option | Type | Required |
|---|---|---|
API key | password | Yes |
Account ID | text | Yes |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
checks | Monitoring checks in the Checkly account. Inline authentication, request details, environment variables, executable scripts, and URLs are excluded. | Full refresh | — | — |
check_groups | Groups that share settings across monitoring checks. Inline authentication, request details, environment variables, executable scripts, and URLs are excluded. | Full refresh | — | — |
alert_channels | Configured alert channels and their subscribed checks. Secret-bearing channel configuration is excluded. | Full refresh | — | — |
check_statuses | Current status of each check, updated as results arrive. | Full refresh | — | — |
check_results | Individual check runs, including final results and retry attempts, within the available 30-day history. | Incremental, Full refresh | created_at | — |
Troubleshooting
- If the connection fails with an API key error, your key may be invalid or revoked. Create a new one in Checkly user settings and reconnect.
- If the connection fails with an account access error, double-check that the account ID matches the account the API key belongs to.
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.