Linking Railway as a source

Alpha release

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

The Railway connector syncs your Railway projects, services, environments, deployments, project members, and volumes into PostHog. This is useful for analyzing deployment activity and failure rates alongside your product data.

Prerequisites

You need a Railway account with access to the projects you want to sync, and permission to create an API token for your account or workspace.

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 a Railway API token:

  1. Go to your Railway account settings.
  2. Create a new token. To sync projects from a specific workspace, select that workspace when creating the token. A token created without a workspace is an account token and syncs all projects your account can access.
  3. Back in PostHog, paste the token into the API token field and click Next.

Project tokens are not supported. They are scoped to a single environment and can't list your projects.

Railway rate limits API requests per plan (as low as 100 requests/hour on the Free plan), so a large initial sync can take a while.

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.

The deployments table supports incremental syncs: each run pulls deployments created since the last sync, and also re-syncs the previous day of deployments so recent status changes (for example a deployment moving from DEPLOYING to SUCCESS) are picked up. Status changes on older deployments are only reflected on a full refresh. All other tables are small and sync as full refreshes.

Configuration

OptionTypeRequired
API tokenpasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
projects

A Railway project — the top-level container that groups services, environments, deployments, and volumes.

Full refresh
services

A service within a Railway project — a deployable unit such as an app, database, or worker.

Full refresh
environments

An environment within a Railway project (e.g. production, staging, or an ephemeral PR environment).

Full refresh
deployments

Incremental syncs page newest-first and stop at the last-seen createdAt. A 24h lookback re-pulls recent deployments so late status changes are picked up; older status changes only refresh on a full refresh.

Incremental, Full refreshcreatedAt
project_members

A member of a Railway project and their role.

Full refresh
volumes

A persistent storage volume attached to a Railway project.

Full refresh

Troubleshooting

"Your Railway API token is invalid, revoked, or lacks access": create a new account or workspace token in your Railway account settings and reconnect. Make sure you didn't paste a project token.

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.

Community questions

Was this page useful?