Mixpanel Lexicon Schemas API

API for syncing your internal data dictionary or tracking plan with Mixpanel using schemas, allowing you to create, replace, retrieve, and delete schema definitions that describe the data you send to Mixpanel.

OpenAPI Specification

mixpanel-lexicon-schemas-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Mixpanel Lexicon Schemas API
  description: >-
    API for syncing your internal data dictionary or tracking plan with
    Mixpanel using schemas, allowing you to create, replace, retrieve,
    and delete schema definitions that describe the data you send to Mixpanel.
  version: '1.0'
  contact:
    name: Mixpanel Support
    email: [email protected]
    url: https://mixpanel.com/get-support
  termsOfService: https://mixpanel.com/legal/terms-of-use
externalDocs:
  description: Mixpanel Lexicon Schemas API Documentation
  url: https://developer.mixpanel.com/reference/lexicon-schemas-api
servers:
  - url: https://mixpanel.com/api/app
    description: Mixpanel US Data Residency
  - url: https://eu.mixpanel.com/api/app
    description: Mixpanel EU Data Residency
tags:
  - name: Schemas
    description: Manage Lexicon schema definitions
security:
  - basicAuth: []
paths:
  /projects/{projectId}/schemas:
    get:
      operationId: listSchemas
      summary: Mixpanel List schemas
      description: >-
        Retrieve all schema definitions for the project including
        event schemas, profile property schemas, and group schemas.
      tags:
        - Schemas
      parameters:
        - $ref: '#/components/parameters/projectId'
        - name: entityType
          in: query
          schema:
            type: string
            enum: [event, profile, group, lookup_table]
          description: Filter schemas by entity type
      responses:
        '200':
          description: List of schemas
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/SchemaDefinition'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    put:
      operationId: replaceSchemas
      summary: Mixpanel Replace schemas
      description: >-
        Replace all schema definitions for the specified entity type.
        This completely replaces existing schemas with the provided ones.
      tags:
        - Schemas
      parameters:
        - $ref: '#/components/parameters/projectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - entries
              properties:
                entries:
                  type: array
                  items:
                    $ref: '#/components/schemas/SchemaEntry'
                truncate:
                  type: boolean
                  description: >-
                    When true, deletes schemas not included in the request.
                    When false, only adds or updates schemas.
      responses:
        '200':
          description: Schemas replaced successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
        '400':
          description: Invalid schema definitions
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    post:
      operationId: createSchemas
      summary: Mixpanel Create schemas
      description: >-
        Create new schema definitions or update existing ones without
        removing schemas not included in the request.
      tags:
        - Schemas
      parameters:
        - $ref: '#/components/parameters/projectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - entries
              properties:
                entries:
                  type: array
                  items:
                    $ref: '#/components/schemas/SchemaEntry'
      responses:
        '200':
          description: Schemas created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
        '400':
          description: Invalid schema definitions
        '401':
          description: Unauthorized
    delete:
      operationId: deleteSchemas
      summary: Mixpanel Delete schemas
      description: >-
        Delete specific schema definitions from the project.
      tags:
        - Schemas
      parameters:
        - $ref: '#/components/parameters/projectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - entries
              properties:
                entries:
                  type: array
                  items:
                    type: object
                    required:
                      - entityType
                      - name
                    properties:
                      entityType:
                        type: string
                        enum: [event, profile, group, lookup_table]
                      name:
                        type: string
                        description: Name of the schema to delete
      responses:
        '200':
          description: Schemas deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: Schema not found
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Service account credentials for API authentication.
  parameters:
    projectId:
      name: projectId
      in: path
      required: true
      schema:
        type: integer
      description: The Mixpanel project ID
  schemas:
    SchemaDefinition:
      type: object
      properties:
        entityType:
          type: string
          enum: [event, profile, group, lookup_table]
          description: The type of entity this schema describes
        name:
          type: string
          description: Name of the event or property
        description:
          type: string
          description: Human-readable description
        isHidden:
          type: boolean
          description: Whether this schema is hidden in the UI
        isDropped:
          type: boolean
          description: Whether events matching this schema should be dropped
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PropertySchema'
          description: Property definitions for this schema
    SchemaEntry:
      type: object
      required:
        - entityType
        - name
      properties:
        entityType:
          type: string
          enum: [event, profile, group, lookup_table]
          description: The entity type
        name:
          type: string
          description: Event or property name
        description:
          type: string
          description: Human-readable description
        isHidden:
          type: boolean
          description: Whether to hide in the UI
        isDropped:
          type: boolean
          description: Whether to drop matching events
        properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PropertySchema'
          description: Property definitions
    PropertySchema:
      type: object
      properties:
        type:
          type: string
          enum: [string, number, boolean, datetime, list, object]
          description: Data type of the property
        description:
          type: string
          description: Description of the property
        required:
          type: boolean
          description: Whether the property is required
        isHidden:
          type: boolean
          description: Whether to hide this property in the UI