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