OpenPanel Manage API

Manage projects and clients

OpenAPI Specification

openpanel-manage-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: OpenPanel Event Manage API
  version: 1.0.0
  description: Legacy event ingestion (deprecated, use /track)
tags:
- name: Manage
  description: Manage projects and clients
paths:
  /manage/projects:
    get:
      tags:
      - Manage
      description: List all projects for the organization.
      responses:
        '200':
          description: Default Response
    post:
      tags:
      - Manage
      description: Create a new project and its first write client.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                domain:
                  anyOf:
                  - anyOf:
                    - type: string
                      format: uri
                    - type: string
                      const: ''
                  - type: 'null'
                cors:
                  default: []
                  type: array
                  items:
                    type: string
                crossDomain:
                  default: false
                  type: boolean
                types:
                  default: []
                  type: array
                  items:
                    type: string
                    enum:
                    - website
                    - app
                    - backend
              required:
              - name
      responses:
        '200':
          description: Default Response
  /manage/projects/{id}:
    get:
      tags:
      - Manage
      description: Get a single project by ID.
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
    patch:
      tags:
      - Manage
      description: Update project settings (name, domain, CORS, tracking options).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                domain:
                  anyOf:
                  - anyOf:
                    - type: string
                      format: uri
                    - type: string
                      const: ''
                  - type: 'null'
                cors:
                  type: array
                  items:
                    type: string
                crossDomain:
                  type: boolean
                allowUnsafeRevenueTracking:
                  type: boolean
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
    delete:
      tags:
      - Manage
      description: Soft-delete a project (scheduled for removal in 24 hours).
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
  /manage/clients:
    get:
      tags:
      - Manage
      description: List all API clients for the organization, optionally filtered by project.
      responses:
        '200':
          description: Default Response
    post:
      tags:
      - Manage
      description: Create a new API client (read, write, or root type) and return its generated secret.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                projectId:
                  type: string
                type:
                  default: write
                  type: string
                  enum:
                  - read
                  - write
                  - root
              required:
              - name
      responses:
        '200':
          description: Default Response
  /manage/clients/{id}:
    get:
      tags:
      - Manage
      description: Get a single API client by ID.
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
    patch:
      tags:
      - Manage
      description: Update an API client name.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
    delete:
      tags:
      - Manage
      description: Delete an API client.
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
  /manage/references:
    get:
      tags:
      - Manage
      description: List annotation references for a project.
      responses:
        '200':
          description: Default Response
    post:
      tags:
      - Manage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                projectId:
                  type: string
                title:
                  type: string
                  minLength: 1
                description:
                  type: string
                datetime:
                  type: string
              required:
              - projectId
              - title
              - datetime
      responses:
        '200':
          description: Default Response
  /manage/references/{id}:
    get:
      tags:
      - Manage
      description: Get a single annotation reference by ID.
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
    patch:
      tags:
      - Manage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  minLength: 1
                description:
                  type: string
                datetime:
                  type: string
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
    delete:
      tags:
      - Manage
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
  /manage/projects/{projectId}/dashboards:
    get:
      tags:
      - Manage
      description: List all dashboards for a project.
      parameters:
      - schema:
          type: string
        in: path
        name: projectId
        required: true
      responses:
        '200':
          description: Default Response
  /manage/projects/{projectId}/dashboards/{dashboardId}/reports:
    get:
      tags:
      - Manage
      description: List all reports in a dashboard.
      parameters:
      - schema:
          type: string
        in: path
        name: projectId
        required: true
      - schema:
          type: string
        in: path
        name: dashboardId
        required: true
      responses:
        '200':
          description: Default Response