OpenPanel Track API

Track events and sessions

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openpanel-track-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openpanel-track-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: OpenPanel Event Track API
  version: 1.0.0
  description: Legacy event ingestion (deprecated, use /track)
tags:
- name: Track
  description: Track events and sessions
paths:
  /track/:
    post:
      tags:
      - Track
      description: Ingest a tracking event (track, identify, group, increment, decrement, replay).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                    - track
                  payload:
                    type: object
                    properties:
                      name:
                        type: string
                        minLength: 1
                      properties:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                      profileId:
                        anyOf:
                        - type: string
                          minLength: 1
                        - type: number
                      groups:
                        type: array
                        items:
                          type: string
                          minLength: 1
                    required:
                    - name
                required:
                - type
                - payload
                title: Track
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                    - identify
                  payload:
                    type: object
                    properties:
                      profileId:
                        anyOf:
                        - type: string
                          minLength: 1
                        - type: number
                      firstName:
                        type: string
                      lastName:
                        type: string
                      email:
                        type: string
                        format: email
                        pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                      avatar:
                        type: string
                        format: uri
                      properties:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                    - profileId
                required:
                - type
                - payload
                title: Identify
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                    - increment
                  payload:
                    type: object
                    properties:
                      profileId:
                        anyOf:
                        - type: string
                          minLength: 1
                        - type: number
                      property:
                        type: string
                        minLength: 1
                      value:
                        type: number
                        exclusiveMinimum: 0
                    required:
                    - profileId
                    - property
                required:
                - type
                - payload
                title: Increment
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                    - decrement
                  payload:
                    type: object
                    properties:
                      profileId:
                        anyOf:
                        - type: string
                          minLength: 1
                        - type: number
                      property:
                        type: string
                        minLength: 1
                      value:
                        type: number
                        exclusiveMinimum: 0
                    required:
                    - profileId
                    - property
                required:
                - type
                - payload
                title: Decrement
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                    - alias
                  payload:
                    type: object
                    properties:
                      profileId:
                        anyOf:
                        - type: string
                          minLength: 1
                        - type: number
                      alias:
                        type: string
                        minLength: 1
                    required:
                    - profileId
                    - alias
                required:
                - type
                - payload
                title: Alias
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                    - replay
                  payload:
                    type: object
                    properties:
                      chunk_index:
                        type: integer
                        minimum: 0
                        maximum: 65535
                      events_count:
                        type: integer
                        minimum: 1
                        maximum: 9007199254740991
                      is_full_snapshot:
                        type: boolean
                      started_at:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      ended_at:
                        type: string
                        format: date-time
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      payload:
                        type: string
                        maxLength: 2097152
                    required:
                    - chunk_index
                    - events_count
                    - is_full_snapshot
                    - started_at
                    - ended_at
                    - payload
                required:
                - type
                - payload
                title: Replay
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                    - group
                  payload:
                    type: object
                    properties:
                      id:
                        type: string
                        minLength: 1
                      type:
                        type: string
                        minLength: 1
                      name:
                        type: string
                        minLength: 1
                      properties:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties: {}
                    required:
                    - id
                    - type
                    - name
                required:
                - type
                - payload
                title: Group
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                    - assign_group
                  payload:
                    type: object
                    properties:
                      groupIds:
                        type: array
                        items:
                          type: string
                          minLength: 1
                      profileId:
                        anyOf:
                        - type: string
                          minLength: 1
                        - type: number
                    required:
                    - groupIds
                required:
                - type
                - payload
                title: Assign Group
              type: object
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  deviceId:
                    type: string
                  sessionId:
                    type: string
                required:
                - deviceId
                - sessionId
                additionalProperties: false
  /track/device-id:
    get:
      tags:
      - Track
      description: Get or generate a stable device ID and session ID for the current visitor.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  deviceId:
                    type: string
                  sessionId:
                    type: string
                  message:
                    type: string
                required:
                - deviceId
                - sessionId
                additionalProperties: false