RudderStack event specification

Learn the fields and properties associated with the standard RudderStack API methods.

The RudderStack Event Spec helps you plan your event data and provides various options for tracking your events across all RudderStack SDKs and APIs.

RudderStack has a unified event semantic for different destination platforms. You can easily translate your event data to different downstream tools by following this spec.

Supported API calls

The RudderStack API Spec supports the following calls, each answering a pertinent question about the user:

API callDescription
IdentifyCaptures the visiting user’s details.
PageCaptures the details related to the web page that the user is currently on.
ScreenCaptures the details related to the app screen that the user is currently viewing.
TrackCaptures information related to the user’s actions.
GroupCaptures details about the group or organization that the user is a part of.
AliasLets you merge different identities of a known user.
MergeLets you perform identity resolution by associating different identifiers to a given customer profile in the warehouse.
ResetResets the information related to the previously identified user.

How the API calls work

Here’s a quick overview of how the API calls mentioned above work:

  1. When the user makes the API calls, the event data is sent to the RudderStack backend.
  2. RudderStack transforms this event data into a destination-specific format.
  3. The transformed data is then forwarded to the required destination.

Event data format

The event data collected by RudderStack has a JSON structure, which has the Common fields and an API-specific payload.


It is strongly recommended to pass large integer values in your events as strings. This is to ensure that the values are correctly transmitted to all systems (including various downstream destinations) without any issues.

RudderStack follows the RFC 7159 standard which has an upper limit of 253 for integers. If the values you pass in your events exceed this number, they may lose precision. Furthermore, certain downstream destinations might have their own limitations on parsing such integer values.

Questions? Contact us by email or on Slack