LogoLogo
  • Contributing to RudderStack
  • Destination_Name
  • LICENSE
  • RudderStack Docs
  • docs
    • FAQ
    • Identity Resolution
    • Home
    • cloud-extract-sources
      • ActiveCampaign Source
      • Bing Ads
      • Chargebee
      • Common Settings
      • Facebook Ads
      • Freshdesk
      • Google Ads Source
      • Google Analytics
      • Google Search Console
      • Google Sheets
      • Cloud Extract Sources
      • Intercom v2
      • Intercom
      • Mailchimp
      • Marketo
      • Mixpanel
      • NetSuite
      • Pipedrive
      • QuickBooks
      • Salesforce Pardot
      • Sendgrid Source
      • Stripe Source
      • Xero
      • Zendesk Chat
      • Zendesk
      • hubspot
        • HubSpot Data Model and Schema Information
        • HubSpot
      • salesforce
        • Salesforce
        • Schema Comparison: RudderStack vs. Segment
    • connections
      • Connection Modes: Cloud Mode vs. Device Mode
    • data-governance
      • Data Governance
      • RudderTyper
      • Data Governance API
      • RudderTyper
      • tracking-plans
        • Tracking Plans
        • Tracking Plan Spreadsheet
    • data-warehouse-integrations
      • Amazon Redshift
      • Azure Data Lake
      • Azure Synapse
      • ClickHouse
      • Databricks Delta Lake
      • Google Cloud Storage Data Lake
      • Google BigQuery
      • Identity Resolution
      • Warehouse Destinations
      • Microsoft SQL Server
      • PostgreSQL
      • Amazon S3 Data Lake
      • Snowflake
      • FAQ
      • Warehouse Schema
    • destinations
      • Destinations
      • Webhooks
      • advertising
        • Bing Ads
        • Criteo
        • DCM Floodlight
        • Facebook App Events
        • Facebook Custom Audience
        • Facebook Pixel
        • Google Ads (gtag.js)
        • Google AdWords Enhanced Conversions
        • Google Adwords Remarketing Lists (Customer Match)
        • Advertising
        • LinkedIn Insight Tag
        • Lotame
        • Pinterest Tag
        • Reddit Pixel
        • Snap Pixel
        • TikTok Ads
      • analytics
        • Amplitude
        • AWS Personalize
        • Chartbeat
        • Firebase
        • FullStory
        • Google Analytics 360
        • Google Analytics
        • Heap.io
        • Hotjar
        • Analytics
        • Indicative
        • Keen
        • Kissmetrics
        • Kubit
        • Lytics
        • Mixpanel
        • Pendo
        • PostHog
        • Quantum Metric
        • Singular
        • adobe-analytics
          • Adobe Analytics Heartbeat Measurement
          • Mobile Device Mode Settings
          • Web Device Mode Settings
          • E-commerce Events
          • Adobe Analytics
          • Setting Up Adobe Analytics in RudderStack
        • google-analytics-4
          • Cloud Mode
          • Device Mode
          • Google Analytics 4
          • Setting up Google Analytics 4
        • profitwell
          • ProfitWell
          • Cloud Mode
          • Device Mode
      • attribution
        • Adjust
        • AppsFlyer
        • Branch
        • Attribution
        • Kochava
        • TVSquared
      • business-messaging
        • Business Messaging
        • Intercom
        • Kustomer
        • Slack
        • Trengo
      • continuous-integration
        • Visual Studio App Center
        • Continuous Integration
      • crm
        • Delighted
        • HubSpot
        • CRM
        • Salesforce
        • Variance
        • Zendesk
      • customer-data-platform
        • Customer Data Platform
        • Segment
      • error-reporting
        • Bugsnag
        • Error Reporting
        • Sentry
      • marketing
        • ActiveCampaign
        • AdRoll
        • Airship
        • Appcues
        • Autopilot
        • Blueshift
        • Braze
        • CleverTap
        • Customer.io
        • Gainsight PX
        • Gainsight
        • Marketing
        • Iterable
        • Klaviyo
        • Leanplum
        • Mailchimp
        • Marketo Lead Import
        • Marketo
        • MoEngage
        • Ometria
        • Pardot
        • Post Affiliate Pro
        • Qualtrics
        • SendGrid
        • Salesforce Marketing Cloud
        • Userlist
        • drip
          • Cloud Mode
          • Device Mode
          • Drip
          • Setting Up Drip in RudderStack
      • productivity
        • Google Sheets
        • Productivity
      • storage-platforms
        • Amazon S3
        • DigitalOcean Spaces
        • Google Cloud Storage
        • Storage Platforms
        • Azure Blob Storage
        • MinIO
        • Redis
      • streaming-platforms
        • Amazon EventBridge
        • Amazon Kinesis Firehose
        • Amazon Kinesis
        • Azure Event Hubs
        • BigQuery Stream
        • Confluent Cloud
        • Google Pub/Sub
        • Streaming Platforms
        • Apache Kafka
      • tag-managers
        • Google Tag Manager
        • Tag Managers
      • testing-and-personalization
        • Algolia Insights
        • Candu
        • Google Optimize
        • A/B Testing & Personalization
        • LaunchDarkly
        • Monetate
        • Optimizely Full Stack
        • Optimizely Web
        • Split.io
        • Statsig
        • VWO (Visual Website Optimizer)
    • get-started
      • RudderStack Cloud vs. RudderStack Open Source
      • Glossary
      • Get Started
      • RudderStack Architecture
    • reverse-etl
      • Amazon Redshift
      • Amazon S3
      • ClickHouse
      • FAQ
      • Google BigQuery
      • Reverse ETL
      • PostgreSQL
      • Snowflake
      • common-settings
        • Importing Data using Models
        • Importing Data using Tables
        • Common Settings
        • Sync Modes
        • Sync Schedule
      • features
        • Airflow Provider
        • Features
        • Models
        • Visual Data Mapper
    • rudderstack-api
      • Data Regulation API
      • HTTP API
      • RudderStack API
      • Personal Access Tokens
      • Pixel API
      • Test API
      • api-specification
        • Application Lifecycle Events Specification
        • API Specification
        • Video Events Specification
        • rudderstack-ecommerce-events-specification
          • Browsing
          • Coupons
          • E-Commerce Events Specification
          • Ordering
          • Promotions
          • Reviewing
          • Sharing
          • Wishlist
        • rudderstack-spec
          • Alias
          • Common Fields
          • Group
          • Identify
          • RudderStack Event Specification
          • Page
          • Screen
          • Track
    • rudderstack-cloud
      • Audit Logs
      • Dashboard Overview
      • Destinations
      • RudderStack Cloud
      • Live Events
      • Connection Modes: Cloud Mode vs. Device Mode
      • Sources
      • Teammates (User Management)
      • connections
        • Adding a Destination
        • Connections
    • rudderstack-open-source
      • Control Plane Setup
      • RudderStack Open Source
      • installing-and-setting-up-rudderstack
        • Developer Machine Setup
        • Docker
        • Data Plane Setup
        • Kubernetes
        • Sending Test Events
    • stream-sources
      • App Center
      • AppsFlyer
      • Auth0
      • Braze
      • Customer.io
      • Extole
      • Event Stream Sources
      • Iterable
      • Looker
      • PostHog
      • Segment
      • Shopify
      • Webhook Source
      • rudderstack-sdk-integration-guides
        • Client-side Event Filtering
        • SDKs
        • AMP Analytics
        • Cordova
        • .NET
        • Go
        • Java
        • Node.js
        • PHP
        • Python
        • React Native
        • Ruby
        • Rust
        • Unity
        • SDK FAQs
        • rudderstack-android-sdk
          • Adding Application Class
          • Flushing Events Periodically
          • Android
        • rudderstack-flutter-sdk
          • Flutter SDK v1
          • Flutter v2
          • Flutter
        • rudderstack-ios-sdk
          • iOS
          • tvOS
          • watchOS
        • rudderstack-javascript-sdk
          • Data Storage in Cookies
          • Detecting Ad-blocked Pages
          • JavaScript
          • JavaScript SDK Enhancements
          • JavaScript SDK FAQs
          • Querystring API
          • Quick Start Guide
          • Version Migration Guide
          • consent-managers
            • Consent Managers
            • OneTrust
    • transformations
      • Access Token
      • FAQ
      • Transformations
      • Transformations API
    • user-guides
      • User Guides
      • administrators-guide
        • Troubleshooting Guide
        • Alerting Guide
        • Bucket Configuration Settings for Event Backups
        • Configuration Parameters
        • Event Replay
        • High Availability
        • Horizontal Scaling
        • Administrator's Guides
        • Infrastructure Provisioning
        • Monitoring and Metrics
        • Okta SSO Setup
        • OneLogin SSO Setup
        • RudderStack Grafana Dashboard
        • Software Releases
      • how-to-guides
        • How to Use Custom Domains
        • How to Develop Integrations for RudderStack
        • How to Configure a Destination via the Event Payload
        • How to Filter Events using Different Methods
        • How to Filter Selective Destinations
        • How to Submit a Pull Request for a New Integration
        • How-to Guides
        • How to Debug Live Destination Events
        • How to Use AWS Lambda Functions with RudderStack
        • create-a-new-destination-transformer-for-rudder
          • Best Practices for Coding Transformation Functions in JavaScript
          • How to Create a New Destination Transformation for RudderStack
        • implement-native-js-sdk-integration
          • How to Add a Device Mode SDK to RudderStack JavaScript SDK
          • How to Implement a Native JavaScript SDK Integration
        • rudderstack-jamstack-integration
          • How to Integrate RudderStack with Your JAMstack Site
          • How to Integrate Rudderstack with Your Angular App
          • How to Integrate Rudderstack with Your Astro Site
          • How to Integrate Rudderstack with Your Eleventy Site
          • How to Integrate Rudderstack with Your Ember.js App
          • How to Integrate Rudderstack with a Gatsby Website
          • How to Integrate Rudderstack with a Hugo Site
          • How to Integrate Rudderstack with Your Jekyll Site
          • How to Integrate Rudderstack with Your Next.js App
          • How to Integrate Rudderstack with Your Nuxt.js App
          • How to Integrate Rudderstack with Your Svelte App
          • How to Integrate Rudderstack with Your Vue App
      • migration-guides
        • Migrating from Blendo to RudderStack
        • Migrating Your Warehouse Destination from Segment to RudderStack
        • Migration Guides
        • Migrating from Segment to RudderStack
  • src
    • @rocketseat
      • gatsby-theme-docs
        • text
          • Home
Powered by GitBook
On this page
  • 1. Prerequisites
  • 2. API Authorization
  • 3. HTTP Responses
  • 4. Maximum Allowed Request Size
  • 5. Identify
  • 5.1. Sample Payload
  • 5.2. Usage
  • 5.3. Accepted Fields
  • 6. Track
  • 6.1. Sample Payload
  • 6.2. Usage
  • 6.3. Accepted fields
  • 7. Page
  • 7.1. Sample Payload
  • 7.2. Usage
  • 7.3. Accepted Fields
  • 8. Screen
  • 8.1. Sample Payload
  • 8.2. Usage
  • 8.3. Accepted Fields
  • 9. Group
  • 9.1. Sample Payload
  • 9.2. Usage
  • 9.3. Accepted Fields
  • 10. Alias
  • 10.1. Sample Payload
  • 10.2. Usage
  • 10.3. Accepted Fields
  • 11. Batch
  • 11.1. Sample Payload
  • 11.2. Usage
  • 11.3. Accepted Fields
  • 12. Historical Imports
  • Contact Us

Was this helpful?

  1. docs
  2. rudderstack-api

HTTP API

Detailed technical description of the RudderStack HTTP API for sending your event data from your sources to the specified destinations.

PreviousData Regulation APINextRudderStack API

Last updated 3 years ago

Was this helpful?

We recommend using the for tracking and routing user events from your sources. The SDKs also offer automatic tagging of user context, event batching, and a retry functionality during delivery failure.

RudderStack offers an easy-to-use HTTP API that you can use to send your events if you cannot use the SDKs.

The RudderStack HTTP API is fully Segment-compatible.

This document details various aspects of the HTTP API.

1. Prerequisites

The following prerequisites must be met to send events via the HTTP API:

  • The RudderStack HTTP server must be accessible from your HTTP client. Refer to to install and set up RudderStack in your preferred environment.

  • Set up a source and destination in RudderStack by following the steps from and guides.

  • Import the Postman collection using using this and edit the variables source_write_key and data_plane_urlwith the and the .

If you are using RudderStack Cloud, set the Data Plane URL to .

2. API Authorization

RudderStack uses Basic Authentication for authenticating all the HTTP requests.

All the popular HTTP clients (e.g. CURL, Postman, HTTPie) have default support for Basic Authentication.

The Basic Authentication for this API requires a username and password where:

  • The username is the source write key

  • The password is an empty string ("")

For example, if the source write key is 1Xk5DChfJAol3xtW7qNnK1apo5p, your HTTP request must have the following HTTP header Authorization: Basic MVhrNURDaGZKQW9sM3h0VzdxTm5LMWFwbzVwOg==

Important: To send the events via the RudderStack HTTP API, the Content-Type header must be set to application/json.

3. HTTP Responses

  • The HTTP API returns a 200 response for successful API requests.

  • The API returns a 400 response for invalid requests with an appropriate error message in the response. Some possible invalid requests include:

    • Request size too large

    • Invalid JSON

    • Missing Authorization Header

    • Invalid Authorization Header

In case of the Invalid Authorization Header error, verify if the source write key and the Basic Auth Header is valid.

4. Maximum Allowed Request Size

5. Identify

The identify call lets you associate a visiting user to their actions and record any associated traits.

  • Request Type: POST

  • Request Format**:**

<DATA_PLANE_URL>/v1/identify

5.1. Sample Payload

{
  "userId": "identified user id",
  "anonymousId":"anon-id-new",
  "context": {
    "traits": {
       "trait1": "new-val"  
    },
    "ip": "14.5.67.21",
    "library": {
        "name": "http"
    }
  },
  "timestamp": "2020-02-02T00:23:09.544Z"
}

5.2. Usage

CURL HTTPie

curl -u <source_write_key>: -X POST <DATA_PLANE_URL>/v1/identify \
-d @identify.json \
--header "Content-Type: application/json" 
http -a <source_write_key>: <DATA_PLANE_URL>/v1/identify < identify.json

5.3. Accepted Fields

Field

Type

Presence

Description

anonymousId

String

Optional

Sets the user ID for cases where there is no unique identifier for the user. Either userId or anonymousId is required.

userId

String

Required, if anonymousId is not present.

Unique identifier for a particular user in your database.

context

Object

Optional

Dictionary of information that provides context about a message. However, it is not directly related to the API call.

integrations

Object

Optional

A dictionary containing the destinations to be either enabled or disabled.

timestamp

DateTime

Optional

The timestamp of the message's arrival. If you are passing the timestamp in the event, make sure it conforms to the ISO 8601 date format yyyy-MM-ddTHH:mm:ss.SSSZ. For example: 2022-02-01T19:14:18.381Z

traits

Object

Optional

Dictionary of the traits associated with the user, such as nameor email

6. Track

The track call lets you record the customer events, i.e. the actions that they perform, along with any properties associated with them.

  • Request Type: POST

  • Request Format**:**

<DATA_PLANE_URL>/v1/track

6.1. Sample Payload

{
  "userId": "identified user id",
  "anonymousId":"anon-id-new",
  "event": "Product Purchased new",
  "properties": {
    "name": "Shirt",
    "revenue": 4.99
  },
  "context": {
    "ip": "14.5.67.21",
    "library": {
        "name": "http"
    }
  },
  "timestamp": "2020-02-02T00:23:09.544Z"
}

6.2. Usage

CURL HTTPie

curl -u <source_write_key>: -X POST <DATA_PLANE_URL>/v1/track \
-d @track.json \
--header "Content-Type: application/json" 
http -a <source_write_key>: <DATA_PLANE_URL>/v1/track < track.json

6.3. Accepted fields

Field

Type

Presence

Description

anonymousId

String

Optional

Sets the user ID for cases where there is no unique identifier for the user. Either userId or anonymousId is required.

userId

String

Required, if anonymousId is not present.

Unique identifier for a particular user in your database.

context

Object

Optional

Dictionary of information that provides context about a message. However, it is not directly related to the API call.

event

String

Required

Name of the event being performed by the user

properties

Object

Optional

Dictionary of the properties associated with a particular event.

integrations

Object

Optional

A dictionary containing the destinations to be either enabled or disabled.

timestamp

DateTime

Optional

The timestamp of the message's arrival. If you are passing the timestamp in the event, make sure it conforms to the ISO 8601 date format yyyy-MM-ddTHH:mm:ss.SSSZ. For example: 2022-02-01T19:14:18.381Z

7. Page

The page call lets you record your website's page views with any additional relevant information about the viewed page.

  • Request Type: POST

  • Request Format**:**

<DATA_PLANE_URL>/v1/page

7.1. Sample Payload

{
  "userId": "identified user id",
  "anonymousId":"anon-id-new",
  "name": "Page View",
  "properties": {
    "title": "Home",
    "path": "/"
  },
  "context": {
    "ip": "14.5.67.21",
    "library": {
        "name": "http"
    }
  },
  "timestamp": "2020-02-02T00:23:09.544Z"
}

7.2. Usage

CURL HTTPie

curl -u <source_write_key>: -X POST <DATA_PLANE_URL>/v1/page \
-d @page.json \
--header "Content-Type: application/json" 
http -a <your_write_key>: <DATA_PLANE_URL>/v1/page < page.json

7.3. Accepted Fields

Field

Type

Presence

Description

anonymousId

String

Optional

Sets the user ID for cases where there is no unique identifier for the user. Either userId or anonymousId is required.

userId

String

Required, if anonymousId is not present.

Unique identifier for a particular user in your database.

context

Object

Optional

Dictionary of information that provides context about a message. However, it is not directly related to the API call.

integrations

Object

Optional

A dictionary containing the destinations to be either enabled or disabled.

name

String

Required

Name of the page being viewed.

properties

Object

Optional

Dictionary of the properties associated with the page being viewed, such as url and referrer

timestamp

DateTime

Optional

The timestamp of the message's arrival. If you are passing the timestamp in the event, make sure it conforms to the ISO 8601 date format yyyy-MM-ddTHH:mm:ss.SSSZ. For example: 2022-02-01T19:14:18.381Z

8. Screen

The screen call lets you record whenever your user views their mobile screen with any additional relevant information about the screen.

The screen call is the mobile equivalent of the page call.

  • Request Type: POST

  • Request Format**:**

<DATA_PLANE_URL>/v1/screen

8.1. Sample Payload

{
  "userId": "identified user id",
  "anonymousId":"anon-id-new",
  "name": "Screen View",
  "properties": {
    "prop1": "5"
  },
  "context": {
    "ip": "14.5.67.21",
    "library": {
        "name": "http"
    }
  },
  "timestamp": "2020-02-02T00:23:09.544Z"
}

8.2. Usage

CURL HTTPie

curl -u <source_write_key>: -X POST <DATA_PLANE_URL>/v1/screen \
-d @screen.json \
--header "Content-Type: application/json" 
http -a <source_write_key>: <DATA_PLANE_URL>/v1/screen < screen.json

8.3. Accepted Fields

Field

Type

Presence

Description

anonymousId

String

Optional

Sets the user ID for cases where there is no unique identifier for the user. Either userId or anonymousId is required.

userId

String

Required, if anonymousId is not present.

Unique identifier for a particular user in your database.

context

Object

Optional

Dictionary of information that provides context about a message. However, it is not directly related to the API call.

integrations

Object

Optional

A dictionary containing the destinations to be either enabled or disabled.

name

String

Required

Name of the screen being viewed.

properties

Object

Optional

Dictionary of the properties associated with the page being viewed, such as url and referrer

timestamp

DateTime

Optional

The timestamp of the message's arrival. If you are passing the timestamp in the event, make sure it conforms to the ISO 8601 date format yyyy-MM-ddTHH:mm:ss.SSSZ. For example: 2022-02-01T19:14:18.381Z

9. Group

The group call lets you link an identified user with a group such as a company, organization, or an account. It also lets you record any custom traits associated with that group, like the name of the company, the number of employees, etc.

  • Request Type: POST

  • Request Format**:**

<DATA_PLANE_URL>/v1/group

9.1. Sample Payload

{
  "userId": "user123",
  "groupId": "group1",
  "traits": {
    "name": "Company",
    "industry": "Industry",
    "employees": 123
  },
  "context": {
    "traits": {
       "trait1": "new-val"  
    },
    "ip": "14.5.67.21",
    "library": {
        "name": "http"
    }
  },
  "timestamp": "2020-01-21T00:21:34.208Z"
}

9.2. Usage

CURL HTTPie

curl -u <source_write_key>: -X POST <DATA_PLANE_URL>/v1/group \
-d @group.json \
--header "Content-Type: application/json" 
http -a <source_write_key>: <DATA_PLANE_URL>/v1/group < group.json

9.3. Accepted Fields

Field

Type

Presence

Description

anonymousId

String

Optional

Sets the user ID for cases where there is no unique identifier for the user. Either userId or anonymousId is required.

userId

String

Required, if anonymousId is not present.

Unique identifier for a particular user in your database.

context

Object

Optional

Dictionary of information that provides context about a message. However, it is not directly related to the API call.

integrations

Object

Optional

A dictionary containing the destinations to be either enabled or disabled.

groupId

String

Required

Unique identifier of the group, as present in your database.

traits

Object

Optional

Dictionary of the properties or traits associated with the group, such as email or name.

timestamp

DateTime

Optional

The timestamp of the message's arrival. If you are passing the timestamp in the event, make sure it conforms to the ISO 8601 date format yyyy-MM-ddTHH:mm:ss.SSSZ. For example: 2022-02-01T19:14:18.381Z

10. Alias

The alias call lets you merge different identities of a known user.

alias is an advanced method that lets you change the tracked user's ID explicitly. This method is useful when managing identities for some of the downstream destinations.

The following destinations support the alias call:

  • Request Type: POST

  • Request Format**:**

<DATA_PLANE_URL>/v1/alias

10.1. Sample Payload

{
  "userId": "user123",
  "previousId": "previd1",
  "context": {
    "traits": {
       "trait1": "new-val"  
    },
    "ip": "14.5.67.21",
    "library": {
        "name": "http"
    }
  },
  "timestamp": "2020-01-21T00:21:34.208Z"
}

10.2. Usage

CURL HTTPie

curl -u <source_write_key>: -X POST <DATA_PLANE_URL>/v1/alias \
-d @alias.json \
--header "Content-Type: application/json" 
http -a <source_write_key>: <DATA_PLANE_URL>/v1/alias < alias.json

10.3. Accepted Fields

Field

Type

Presence

Description

userId

String

Required, if anonymousId is not present.

Unique identifier for a particular user in your database.

context

Object

Optional

Dictionary of information that provides context about a message. However, it is not directly related to the API call.

integrations

Object

Optional

A dictionary containing the destinations to be either enabled or disabled.

previousId

String

Required

The previous unique identifier of the user.

traits

Object

Optional

Dictionary of the properties or traits associated with the group, such as email or name.

timestamp

DateTime

Optional

The timestamp of the message's arrival. If you are passing the timestamp in the event, make sure it conforms to the ISO 8601 date format yyyy-MM-ddTHH:mm:ss.SSSZ. For example: 2022-02-01T19:14:18.381Z

11. Batch

The batch call allows you to send a series of identify, track, page, group and screen requests in a single batch. This call helps you minimize the number of outbound requests, thus enabling better performance.

As mentioned earlier, RudderStack sets a maximum limit of 4 MB per batch request and 32 KB per call.

  • Request Type: POST

  • Request Format**:**

<DATA_PLANE_URL>/v1/batch

11.1. Sample Payload

{
    "batch": [{
            "userId": "identified user id",
            "anonymousId": "anon-id-new",
            "type": "identify",
            "context": {
                "traits": {
                    "trait1": "new-val"
                },
                "ip": "14.5.67.21",
                "library": {
                    "name": "http"
                }
            },
            "timestamp": "2020-02-02T00:23:09.544Z"
        },
        {
            "userId": "identified user id",
            "anonymousId": "anon-id-new",
            "event": "Product Purchased new",
            "type": "track",
            "properties": {
                "name": "Shirt",
                "revenue": 4.99
            },
            "context": {
                "ip": "14.5.67.21",
                "library": {
                    "name": "http"
                }
            },
            "timestamp": "2020-02-02T00:23:09.544Z"
        },
        {
            "userId": "identified user id",
            "anonymousId": "anon-id-new",
            "name": "Page View",
            "type": "page",
            "properties": {
                "title": "Home",
                "path": "/"
            },
            "context": {
                "ip": "14.5.67.21",
                "library": {
                    "name": "http"
                }
            },
            "timestamp": "2020-02-02T00:23:09.544Z"
        },
        {
            "userId": "identified user id",
            "anonymousId": "anon-id-new",
            "name": "Screen View",
            "type": "screen",
            "properties": {
                "prop1": "5"
            },
            "context": {
                "ip": "14.5.67.21",
                "library": {
                    "name": "http"
                }
            },
            "timestamp": "2020-02-02T00:23:09.544Z"
        },
        {
            "userId": "user123",
            "type": "group",
            "groupId": "group1",
            "traits": {
                "name": "Company",
                "industry": "Industry",
                "employees": 123
            },
            "context": {
                "traits": {
                    "trait1": "new-val"
                },
                "ip": "14.5.67.21",
                "library": {
                    "name": "http"
                }
            },
            "timestamp": "2020-01-21T00:21:34.208Z"
        },
        {
            "userId": "user123",
            "previousId": "previd1",
            "type":"alias",
            "context": {
                "traits": {
                    "trait1": "new-val"
                },
                "ip": "14.5.67.21",
                "library": {
                    "name": "http"
                }
            },
            "timestamp": "2020-01-21T00:21:34.208Z"
        }

    ]
}

11.2. Usage

CURL HTTPie

curl -u <source_write_key>: -X POST <DATA_PLANE_URL>/v1/batch \
-d @batch.json \
--header "Content-Type: application/json" 
http -a <source_write_key>: <DATA_PLANE_URL>/v1/batch < batch.json

11.3. Accepted Fields

Field

Type

Presence

Description

batch

Array

Required

An array of identify, track, page, group and screen calls. Each call must have a type property and a valid method name.

12. Historical Imports

RudderStack lets you import any historical data by simply adding the timestamp argument to any of your API calls. However, this can be done only for the destinations that accept historical time-stamped data, like Amplitude, Mixpanel, etc.

If you are tracking current events, leave out the timestamp field. RudderStack will automatically add the timestamps to the event requests.

Contact Us

You can use this to generate the HTTP header.

RudderStack allows messages with a maximum size of 32 KB per call. The endpoint accepts a maximum call size of 4 MB per batch, and 32 KB per call. RudderStack responds with a 400 Bad Request if these limits are exceeded.

For more details on the identify call, refer to the .

For more details on the track call, refer to the .

For more details on the page call, refer to the .

For more details on the screen call, refer to the .

For more details on the group call, refer to the .

(only supported by the via )

For more details on the alias call, refer to the .

For more information on the HTTP API, you can or start a conversation in our community.

RudderStack SDKs
this guide
Adding a Source
Adding a Destination
URL
source write key
Data Plane URL
https://hosted.rudderlabs.com
Basic Authentication Header Generator
batch
RudderStack Events Specification
RudderStack Events Specification
RudderStack Events Specification
RudderStack Events Specification
RudderStack Events Specification
MoEngage
Kissmetrics
Amplitude
JavaScript SDK
Cloud Mode
RudderStack Events Specification
contact us
Slack