Amplitude · Schema

UploadRequestBody

UploadRequestBody schema from Amplitude HTTP V2 API

A/B TestingAnalyticsExperimentationFeature FlagsProduct AnalyticsUser Behavior

Properties

Name Type Description
api_key string The API key for the Amplitude project to which events will be sent.
events array An array of event objects to upload. Maximum of 10 events per batch is recommended.
options object
View JSON Schema on GitHub

JSON Schema

http-v2-api-upload-request-body-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amplitude/refs/heads/main/json-schema/http-v2-api-upload-request-body-schema.json",
  "title": "UploadRequestBody",
  "description": "UploadRequestBody schema from Amplitude HTTP V2 API",
  "type": "object",
  "properties": {
    "api_key": {
      "type": "string",
      "description": "The API key for the Amplitude project to which events will be sent."
    },
    "events": {
      "type": "array",
      "description": "An array of event objects to upload. Maximum of 10 events per batch is recommended.",
      "maxItems": 2000,
      "items": {
        "type": "object",
        "required": [
          "event_type"
        ],
        "properties": {
          "user_id": {
            "type": "string",
            "description": "A readable ID specified by you. Must have a minimum length of 5 characters unless overridden. Required unless device_id is present."
          },
          "device_id": {
            "type": "string",
            "description": "A device-specific identifier. Required unless user_id is present."
          },
          "event_type": {
            "type": "string",
            "description": "The name of the event being tracked."
          },
          "time": {
            "type": "integer",
            "format": "int64",
            "description": "The timestamp of the event in milliseconds since epoch. If not provided, Amplitude uses the upload time."
          },
          "event_properties": {
            "type": "object",
            "description": "A dictionary of key-value pairs representing properties of the event.",
            "additionalProperties": true
          },
          "user_properties": {
            "type": "object",
            "description": "A dictionary of key-value pairs representing properties of the user. Supports set, setOnce, add, append, prepend, unset, and remove operations.",
            "additionalProperties": true
          },
          "groups": {
            "type": "object",
            "description": "A dictionary of group type to group name mappings for this event.",
            "additionalProperties": true
          },
          "group_properties": {
            "type": "object",
            "description": "A dictionary of key-value pairs representing properties of the group.",
            "additionalProperties": true
          },
          "app_version": {
            "type": "string",
            "description": "The version of the application sending the event."
          },
          "platform": {
            "type": "string",
            "description": "The platform of the device sending the event."
          },
          "os_name": {
            "type": "string",
            "description": "The name of the operating system of the device."
          },
          "os_version": {
            "type": "string",
            "description": "The version of the operating system of the device."
          },
          "device_brand": {
            "type": "string",
            "description": "The brand of the device."
          },
          "device_manufacturer": {
            "type": "string",
            "description": "The manufacturer of the device."
          },
          "device_model": {
            "type": "string",
            "description": "The model of the device."
          },
          "carrier": {
            "type": "string",
            "description": "The carrier of the device."
          },
          "country": {
            "type": "string",
            "description": "The country of the user."
          },
          "region": {
            "type": "string",
            "description": "The region or state of the user."
          },
          "city": {
            "type": "string",
            "description": "The city of the user."
          },
          "dma": {
            "type": "string",
            "description": "The designated market area of the user."
          },
          "language": {
            "type": "string",
            "description": "The language setting of the user."
          },
          "price": {
            "type": "number",
            "description": "The price of the item purchased in a revenue event."
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the item purchased in a revenue event."
          },
          "revenue": {
            "type": "number",
            "description": "The revenue generated by the event. Use negative values for refunds."
          },
          "productId": {
            "type": "string",
            "description": "The identifier for the product in a revenue event."
          },
          "revenueType": {
            "type": "string",
            "description": "The type of revenue for the event, such as purchase or refund."
          },
          "location_lat": {
            "type": "number",
            "format": "double",
            "description": "The latitude of the user's location."
          },
          "location_lng": {
            "type": "number",
            "format": "double",
            "description": "The longitude of the user's location."
          },
          "ip": {
            "type": "string",
            "description": "The IP address of the user. Use $remote to use the IP address from the upload request."
          },
          "idfa": {
            "type": "string",
            "description": "The Identifier for Advertiser (iOS)."
          },
          "idfv": {
            "type": "string",
            "description": "The Identifier for Vendor (iOS)."
          },
          "adid": {
            "type": "string",
            "description": "The Google Play Services advertising ID (Android)."
          },
          "android_id": {
            "type": "string",
            "description": "The Android ID (Android)."
          },
          "event_id": {
            "type": "integer",
            "description": "An incrementing counter to distinguish events with identical user_id and timestamps."
          },
          "session_id": {
            "type": "integer",
            "format": "int64",
            "description": "The start time of the session in milliseconds since epoch. Use -1 for events outside a session."
          },
          "insert_id": {
            "type": "string",
            "description": "A unique identifier for the event used for deduplication. Amplitude deduplicates subsequent events sent with the same insert_id and device_id or user_id within the past 7 days."
          }
        }
      }
    },
    "options": {
      "type": "object",
      "properties": {
        "min_id_length": {
          "type": "integer",
          "description": "Minimum length for user_id and device_id fields. Default is 5.",
          "minimum": 1
        }
      }
    }
  },
  "required": [
    "api_key",
    "events"
  ]
}