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

Contents
This source is currently in alpha. The interface and available tables may change.
The pretix connector syncs your event ticketing data – events, orders, invoices, customers, gift cards, products, vouchers, check-in lists, and more – into the PostHog data warehouse. Use it to combine ticket sales and attendee data with your product analytics.
Prerequisites
- A pretix organizer account on pretix.eu or a self-hosted pretix installation reachable over HTTPS.
- A team API token with read permissions for the resources you want to sync. For example, Can view orders for orders and invoices, Can view vouchers for vouchers.
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 pretix, you'll need:
Organizer short name – the slug that appears in your pretix URLs (for example
my-organizerinhttps://pretix.eu/my-organizer/).API token – go to your organizer's control panel, open Organizer settings → Teams, select or create a team with the read permissions you need, then create an API token for it.
API URL (self-hosted only) – set this to your own pretix host (for example
https://tickets.example.com). Leave it blank to use hosted pretix athttps://pretix.eu.
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.
The orders table supports incremental sync using pretix's modified_since filter on the last_modified field, so re-syncs only fetch changed orders. All other tables are full refresh.
Configuration
| Option | Type | Required |
|---|---|---|
Organizer short name | text | Yes |
API token | password | Yes |
API URL (self-hosted only) | text | No |
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
events | An event or event series run by the organizer, such as a conference or a concert. | Full refresh | — | — |
orders | A ticket order placed in one of the organizer's events, including its positions (individual tickets), fees, payments, and refunds. | Incremental, Full refresh | last_modified | — |
invoices | An invoice or invoice cancellation issued for an order in one of the organizer's events. | Full refresh | — | — |
customers | A customer account registered with the organizer, which orders can be attached to. | Full refresh | — | — |
gift_cards | A gift card issued by the organizer that can be used to pay for orders. | Full refresh | — | — |
subevents | A date in an event series, carrying its own schedule, prices, and quotas. | Full refresh | — | — |
items | A product that can be sold for an event, such as a ticket type or merchandise, including its variations. | Full refresh | — | — |
categories | A product category used to group an event's items in the shop. | Full refresh | — | — |
questions | A question asked of ticket buyers during checkout, such as dietary requirements or T-shirt size. | Full refresh | — | — |
quotas | A quota limiting how many of an event's items can be sold. | Full refresh | — | — |
vouchers | A voucher granting discounted or reserved access to an event's items. | Full refresh | — | — |
checkin_lists | A check-in list used to admit attendees at the door, with its position and check-in counters. | Full refresh | — | — |
waiting_list_entries | A waiting list entry from a customer waiting for an event's sold-out item to become available. | Full refresh | — | — |
tax_rules | A tax rule defining how taxes are calculated for an event's products. | Full refresh | — | — |
Event-scoped tables (such as items, quotas, and vouchers) include an event_slug column added during sync so rows from different events stay distinct.
Troubleshooting
"Your pretix API token does not have access to this organizer" – check that the organizer short name matches your pretix URLs exactly and that the token belongs to a team of that organizer.
Permission errors on specific tables – pretix team tokens carry per-resource permissions. Grant the team the matching read permission (for example Can view orders) or deselect the table.
API URL must use HTTPS – self-hosted pretix URLs must use
https://. Update the API URL and try again.
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.