Amplitude · JSON Structure

Http V2 Api Upload Request Body Structure

UploadRequestBody schema from Amplitude HTTP V2 API

Type: object Properties: 3 Required: 2
A/B TestingAnalyticsExperimentationFeature FlagsProduct AnalyticsUser Behavior

UploadRequestBody is a JSON Structure definition published by Amplitude, describing 3 properties, of which 2 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

api_key events options

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amplitude/refs/heads/main/json-structure/http-v2-api-upload-request-body-structure.json",
  "name": "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": "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": "double",
            "description": "The price of the item purchased in a revenue event."
          },
          "quantity": {
            "type": "int32",
            "description": "The quantity of the item purchased in a revenue event."
          },
          "revenue": {
            "type": "double",
            "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": "double",
            "description": "The latitude of the user's location."
          },
          "location_lng": {
            "type": "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": "int32",
            "description": "An incrementing counter to distinguish events with identical user_id and timestamps."
          },
          "session_id": {
            "type": "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": "int32",
          "description": "Minimum length for user_id and device_id fields. Default is 5.",
          "minimum": 1
        }
      }
    }
  },
  "required": [
    "api_key",
    "events"
  ]
}