Features

Everything you need to deliver events reliably

From ingestion to delivery to replay, a complete outbound event delivery platform.

End-to-end deliveryevt_8K2x · order.paid
  1. Validatedschema check · 12ms
  2. Routed2 destinations matched
  3. Transformedrename · add source
  4. Delivered to acme-prod202 · 38ms
  5. Retried bigquery429 → 200 · 156ms
  6. Logged + audited365d retention
2
destinations
100%
delivered
365d
replayable

Event Ingestion

Accept product events from any source via a simple REST API. Batch or single-event ingestion with sub-100ms acknowledgment.

  • Batch and single-event ingestion endpoints
  • Schema validation on every event
  • Canonical event model with correlation IDs
  • Idempotency support to prevent duplicates
  • Fast async acknowledgment, processing happens off the hot path
Event ingestioncurl
POST /v1/events
Authorization: Bearer pk_live_8K2x…
Content-Type: application/json
{
"eventType": "order.paid",
"occurredAt": "2026-05-15T12:34:56Z",
"source": "checkout-service",
"customerExternalId": "acme-corp",
"payload": {
"orderId": "ord_8K2x",
"amount": 4900
}
}
202 Accepted38ms · evt_2x9K7n…
Sub-100ms acknowledgmentAsync processing

Destination Management

Configure where your events go. 18 destination types across webhooks, object storage, warehouses, queues, streams, databases, and analytics, with encrypted credential storage and one-click testing.

  • Webhooks, S3, GCS, Azure Blob, BigQuery, Snowflake, ClickHouse, SQS, RabbitMQ, Azure Service Bus, Kafka, Kinesis, Pub/Sub, SNS, EventBridge, Postgres, MySQL, PostHog
  • Encrypted credential storage with masked display
  • Test event button to verify connectivity
  • Enable/disable destinations without deleting config
  • Per-destination delivery tracking and health
Destination catalog18 types
Webhooks
3 active
Amazon S3
2 active
BigQuery
1 active
Snowflake
1 active
Apache Kafka
2 active
PostgreSQL
1 active
Amazon Kinesis
available
PostHog
available
+ 10 more: Google Cloud Storage, Azure Blob Storage, ClickHouse, Amazon SQS, RabbitMQ, Azure Service Bus…
Encrypted credentialsOne-click test

Embedded Customer Portal

Let your customers configure their own destinations inside your product. Drop in a React component or JS snippet, themed to your brand, scoped to one customer, signed by short-lived session tokens.

  • React component (@pushrail/embed-react) or framework-agnostic JS snippet (@pushrail/embed-js)
  • Per-customer scoping, each end-customer sees only their own destinations and logs
  • Theme via CSS custom properties to match your product
  • Short-lived signed session tokens, no shared credentials in the browser
  • All portal changes flow into the same audit log as dashboard changes
Destination catalog18 types
Webhooks
3 active
Amazon S3
2 active
BigQuery
1 active
Snowflake
1 active
Apache Kafka
2 active
PostgreSQL
1 active
Amazon Kinesis
available
PostHog
available
+ 10 more: Google Cloud Storage, Azure Blob Storage, ClickHouse, Amazon SQS, RabbitMQ, Azure Service Bus…
Encrypted credentialsOne-click test

Routing & Filtering

Control exactly which events reach each destination. Subscribe by event type, filter by field values, and scope by environment.

  • Event type subscriptions per destination
  • Field-value filter expressions
  • Environment scoping (production, staging, etc.)
  • Include and exclude rule support
  • Preview which events match before saving
Routing rules
order.*
acme-prod (webhook)bigquery (orders)
user.signup
s3 (signups-archive)
subscription.*
snowflakeacme-finance

Delivery Engine

At-least-once delivery with intelligent retry logic. Every attempt is logged, every failure is classified, and nothing is silently dropped.

  • At-least-once delivery guarantee
  • Exponential backoff with jitter
  • Transient vs permanent failure classification
  • Dead-letter queue for exhausted retries
  • Per-attempt logging with response codes and latency
Live deliveries
order.paid→ acme-prod (webhook)202 · 38ms
user.signup→ bigquery (events)OK · 112ms
subscription.updated→ s3 (archive)queued
invoice.sent→ acme-prod (webhook)retry 2/5
order.refunded→ snowflakeOK · 89ms
Last hour14,827 delivered · 99.97% success

Replay & Recovery

Replay failed or missed deliveries by time range, destination, or event type. Preview the scope before executing and track progress independently.

  • Replay by time range, destination, or event type
  • Preview scope and count before executing
  • Independent progress tracking per replay job
  • Replayed deliveries appear in the same logs
  • No separate replay billing, counts as regular deliveries
Replay window145 failures selected
12:0013:0014:0015:0016:0017:0018:00

Observability

Full visibility into every event and delivery. Logs, health dashboards, and attempt history, so you always know what happened and why.

  • Per-delivery logs with attempt history
  • Destination health indicators
  • Response codes, latency, and error details
  • Transformed payload preview (sealed under Private Payload Mode)
  • Recent activity feed per destination
Last 12 hours
99.97%
Success rate
38ms
P50 latency

Transformations

Shape event payloads to match what each destination expects. Declarative transforms, no scripting, no surprises.

  • Rename, drop, and add fields
  • JSON path mapping
  • Select payload subsets
  • Wrap in destination-specific envelopes
  • Preview transformed output before saving
Transformationsrename · drop · add · map
Input
{
"user_id": "u_42K",
"email": "a@acme.com",
"_internal_token": "sk_…"
}
Output
{
"distinct_id": "u_42K",renamed
"email": "a@acme.com",
"source": "pushrail"added
}
Versioned per destinationPinned for replay

Security & Compliance

Enterprise-grade security built in. Tenant isolation, encrypted secrets, and a full audit trail for every configuration change. We already encrypt all data at rest, and Private Payload Mode goes a step further so even our own dashboard and APIs cannot read your event contents. Scale and above add granular role-based access control.

  • Secrets encrypted at rest (AES-256)
  • Private Payload Mode seals event contents with a key our dashboard and APIs cannot read, so only delivery workers can open them at the instant of sending (opt-in, per environment)
  • Strict tenant isolation at every layer
  • Invite teammates with roles (RBAC on Scale+)
  • Audit logs for all config and secret changes
  • Sensitive field redaction in delivery logs
Audit trail365-day retention
14:32alex@acmeupdated destination prod-webhookconfig
14:28sam@acmerotated secret wh-key-001secret
14:15alex@acmecreated destination s3-archiveconfig
13:50ops-botenabled routing rule #4rule
13:22sam@acmereplayed deliveries 8,210 → 10,044replay
Tenant-isolatedImmutable history

Frequently asked questions

What does Pushrail do end to end?

Pushrail ingests product events from your service, routes and filters them per destination, applies declarative transforms, delivers to customer-configured destinations, retries transient failures, and exposes delivery logs and replay, the full path from ingestion to recovery.

Can customers configure destinations themselves?

Yes. The embedded customer portal lets each customer configure their own destinations, routing rules, and credentials, and view their own delivery logs and replay, scoped to their tenant.

Does Pushrail support transforms?

Yes. Declarative transforms (renaming, dropping, adding, and wrapping fields per destination) are available with no code. Scripted transforms unlock on the Growth tier and above when you need them.

How does Pushrail handle failures?

Delivery is at-least-once. Transient failures retry with backoff, exhausted retries land in a dead-letter queue, and every attempt is recorded in the delivery log so failures can be inspected and replayed.

See it in action

Sign up free and send your first event in under 5 minutes.

Protected by reCAPTCHA, Google's Privacy Policy and Terms apply.

View Pricing