Get data into PostHog

PostHog provides multiple ways to ingest data from various sources, making it easy to centralize all your customer and product data in one place.

1. PostHog libraries / event pipelines

Our SDKs and event pipelines are the primary way to track user behavior and product usage in real-time.

  • JavaScript SDK*: Track events from web applications with autocapture and custom events
  • Server-side SDKs: Python, Node.js, Ruby, PHP, Go, and more for backend tracking
  • Mobile SDKs*: iOS, Android, React Native, Flutter for mobile app analytics

*Supports autocapture: Automatically track clicks, form submissions, and pageviews without code changes

View all PostHog libraries →|View frameworks guides →

2. Warehouse sources

Connect your existing data warehouses and databases to sync data into PostHog for analysis alongside your product data.

  • Cloud warehouses: Snowflake, BigQuery, Redshift, Databricks
  • Databases: PostgreSQL, MySQL, MongoDB, MS SQL Server
  • SaaS tools: Salesforce, HubSpot, Stripe, Zendesk, and more
  • Custom sources: S3, GCS, or any data source via custom connectors

Learn about warehouse sources →

3. Incoming webhooks

Send events to PostHog from external services using webhooks. This allows you to track events that happen outside your application.

  • Payment events: Track transactions, subscriptions, and refunds from Stripe
  • Marketing events: Import email opens, clicks, and conversions from HubSpot
  • Support tickets: Monitor customer issues from Zendesk or Intercom
  • Custom webhooks: Send any event data using our webhook endpoint

Browse webhook integrations →

4. Capture API

Our direct API endpoints let you send events from any system that can make HTTP requests.

  • Batch API: Send multiple events in a single request for efficiency
  • Real-time API: Send events as they happen for immediate processing
  • Historical import: Backfill historical data with custom timestamps
  • Server-to-server: Direct integration without client libraries

Features

Capture events from your backend, frontend, mobile apps, or IoT devices. No rate limits, automatic retries, and batch support.

  • No rate limits: Send as many events as you need without throttling or quotas
  • Batch endpoint: Send up to 1000 events in a single request for efficiency
  • Backend attribution: Associate server-side events with frontend sessions
  • Automatic retries: Built-in retry logic for failed requests
  • 20MB payloads: Send large payloads with complex properties

Read the Capture API documentation →


Getting started

The best way to get started depends on your use case:

  • For product analytics: Start with our JavaScript SDK for web apps or mobile SDKs for native apps
  • For business data: Connect your CRM, payment processor, or support tools via warehouse sources
  • For custom events: Use the Capture API or incoming webhooks for maximum flexibility

Community questions

Questions about this page? or post a community question.