Comet Projects API

Project related resources

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/comet-projects-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

comet-projects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Opik REST Projects API
  description: "The Opik REST API is currently in beta and subject to change. If you have any questions or feedback about the APIs, please reach out on GitHub: https://github.com/comet-ml/opik.\n\nAll of the methods listed in this documentation are used by either the SDK or the UI to interact with the Opik server. As a result,\nthe methods have been optimized for these use-cases in mind. If you are looking for a method that is not listed above, please create\nand issue on GitHub or raise a PR!\n\nOpik includes two main deployment options that results in slightly different API usage:\n\n- **Self-hosted Opik instance:** You will simply need to specify the URL as `http://localhost:5173/api/<endpoint_path>` or similar. This is the default option for the docs.\n- **Opik Cloud:** You will need to specify the Opik API Key and Opik Workspace in the header. The format of the header should be:\n\n  ```\n  {\n    \"Comet-Workspace\": \"your-workspace-name\",\n    \"authorization\": \"your-api-key\"\n  }\n  ```\n\n  The full payload would therefore look like:\n  \n  ```\n  curl -X GET 'https://www.comet.com/opik/api/v1/private/projects' \\\n  -H 'Accept: application/json' \\\n  -H 'Comet-Workspace: <your-workspace-name>' \\\n  -H 'authorization: <your-api-key>'\n  ```\n\n  Do take note here that the authorization header value does not include the `Bearer ` prefix. To switch to using the Opik Cloud in the documentation, you can\n  click on the edit button displayed when hovering over the `Base URL` displayed on the right hand side of the docs.\n"
  contact:
    name: Github Repository
    url: https://github.com/comet-ml/opik
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.0
servers:
- url: http://localhost:5173/api
  description: Local server
- url: https://www.comet.com/opik/api
  description: Opik Cloud
tags:
- name: Projects
  description: Project related resources
paths:
  /v1/private/projects/{projectId}/alerts:
    get:
      tags:
      - Projects
      summary: Find alerts by project
      description: Find alerts scoped to a project
      operationId: findAlertsByProject
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: sorting
        in: query
        schema:
          type: string
      - name: filters
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Alerts page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlertPage_Public'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Public'
  /v1/private/projects/{projectId}/dashboards:
    get:
      tags:
      - Projects
      summary: Find dashboards by project
      description: Find dashboards scoped to a project
      operationId: findDashboardsByProject
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: name
        in: query
        schema:
          type: string
          description: Filter dashboards by name (partial match, case insensitive)
      - name: sorting
        in: query
        schema:
          type: string
      - name: filters
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Dashboard page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardPage_Public'
  /v1/private/projects/{projectId}/datasets:
    get:
      tags:
      - Projects
      summary: Find datasets by project
      description: Find datasets scoped to a project
      operationId: findDatasetsByProject
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: with_experiments_only
        in: query
        schema:
          type: boolean
      - name: with_optimizations_only
        in: query
        schema:
          type: boolean
      - name: name
        in: query
        schema:
          type: string
          description: Filter datasets by name (partial match, case insensitive)
      - name: sorting
        in: query
        schema:
          type: string
      - name: filters
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Dataset page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatasetPage_Public'
  /v1/private/projects/{projectId}/experiments:
    get:
      tags:
      - Projects
      summary: Find experiments by project
      description: Find experiments scoped to a project
      operationId: findExperimentsByProject
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: datasetId
        in: query
        schema:
          type: string
          format: uuid
      - name: optimization_id
        in: query
        schema:
          type: string
          format: uuid
      - name: types
        in: query
        schema:
          type: string
      - name: name
        in: query
        schema:
          type: string
          description: Filter experiments by name (partial match, case insensitive)
      - name: dataset_deleted
        in: query
        schema:
          type: boolean
      - name: sorting
        in: query
        schema:
          type: string
      - name: filters
        in: query
        schema:
          type: string
      - name: experiment_ids
        in: query
        schema:
          type: string
          description: Filter experiments by a list of experiment IDs
      - name: force_sorting
        in: query
        schema:
          type: boolean
          description: Force sorting even when exceeding the endpoint result set limit. May result in slower queries
          default: false
      responses:
        '200':
          description: Experiments page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExperimentPage_Public'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Public'
  /v1/private/projects/{projectId}/optimizations:
    get:
      tags:
      - Projects
      summary: Find optimizations by project
      description: Find optimizations scoped to a project
      operationId: findOptimizationsByProject
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: dataset_id
        in: query
        schema:
          type: string
          format: uuid
      - name: dataset_name
        in: query
        schema:
          type: string
      - name: name
        in: query
        schema:
          type: string
          description: Filter optimizations by name (partial match, case insensitive)
      - name: dataset_deleted
        in: query
        schema:
          type: boolean
      - name: filters
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Optimizations page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OptimizationPage_Public'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Public'
  /v1/private/projects/{projectId}/prompts:
    get:
      tags:
      - Projects
      summary: Get prompts by project
      description: Get prompts scoped to a project
      operationId: getPromptsByProject
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: name
        in: query
        schema:
          type: string
          description: Filter prompts by name (partial match, case insensitive)
      - name: sorting
        in: query
        schema:
          type: string
      - name: filters
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromptPage_Public'
  /v1/private/projects:
    get:
      tags:
      - Projects
      summary: Find projects
      description: Find projects
      operationId: findProjects
      parameters:
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: name
        in: query
        schema:
          type: string
          description: Filter projects by name (partial match, case insensitive)
      - name: sorting
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Project resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectPage_Public'
    post:
      tags:
      - Projects
      summary: Create project
      description: Create project
      operationId: createProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project_Write'
      responses:
        '201':
          description: Created
          headers:
            Location:
              required: true
              style: simple
              schema:
                type: string
              example: ${basePath}/v1/private/projects/{projectId}
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /v1/private/projects/{id}:
    get:
      tags:
      - Projects
      summary: Get project by id
      description: Get project by id
      operationId: getProjectById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Project resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project_Public'
    delete:
      tags:
      - Projects
      summary: Delete project by id
      description: Delete project by id
      operationId: deleteProjectById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No Content
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    patch:
      tags:
      - Projects
      summary: Update project by id
      description: Update project by id
      operationId: updateProject
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectUpdate'
      responses:
        '204':
          description: No Content
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /v1/private/projects/delete:
    post:
      tags:
      - Projects
      summary: Delete projects
      description: Delete projects batch
      operationId: deleteProjectsBatch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchDelete'
      responses:
        '204':
          description: No Content
  /v1/private/projects/feedback-scores/names:
    get:
      tags:
      - Projects
      summary: Find Feedback Score names By Project Ids
      description: Find Feedback Score names By Project Ids
      operationId: findFeedbackScoreNamesByProjectIds
      parameters:
      - name: project_ids
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Feedback Scores resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedbackScoreNames'
  /v1/private/projects/{id}/token-usage/names:
    get:
      tags:
      - Projects
      summary: Find Token Usage names
      description: Find Token Usage names
      operationId: findTokenUsageNames
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Token Usage names resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenUsageNames'
  /v1/private/projects/{id}/kpi-cards:
    post:
      tags:
      - Projects
      summary: Get Project KPI Cards
      description: Gets KPI card metrics for a project
      operationId: getProjectKpiCards
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KpiCardRequest'
      responses:
        '200':
          description: KPI Card Metrics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KpiCardResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /v1/private/projects/{id}/metrics:
    post:
      tags:
      - Projects
      summary: Get Project Metrics
      description: Gets specified metrics for a project
      operationId: getProjectMetrics
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectMetricRequest_Public'
      responses:
        '200':
          description: Project Metrics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectMetricResponse_Public'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Public'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Public'
  /v1/private/projects/stats:
    get:
      tags:
      - Projects
      summary: Get Project Stats
      description: Get Project Stats
      operationId: getProjectStats
      parameters:
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 10
      - name: name
        in: query
        schema:
          type: string
          description: Filter projects by name (partial match, case insensitive)
      - name: filters
        in: query
        schema:
          type: string
      - name: sorting
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Project Stats
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectStatsSummary'
  /v1/private/projects/retrieve:
    post:
      tags:
      - Projects
      summary: Retrieve project
      description: Retrieve project
      operationId: retrieveProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRetrieve_Detailed'
      responses:
        '200':
          description: Project resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project_Detailed'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Detailed'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Detailed'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Detailed'
  /v1/private/projects/{projectId}/activities:
    get:
      tags:
      - Projects
      summary: Get recent activity for a project
      description: Returns the most recent activity items across all entity types for a project, sorted by date descending.
      operationId: getRecentActivity
      parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: page
        in: query
        schema:
          minimum: 1
          type: integer
          format: int32
          default: 1
      - name: size
        in: query
        schema:
          maximum: 100
          minimum: 1
          type: integer
          format: int32
          default: 10
      responses:
        '200':
          description: Recent activity page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecentActivityPage_Public'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Public'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage_Public'
components:
  schemas:
    Comment_Public:
      required:
      - text
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        text:
          minLength: 1
          type: string
        source_queue_id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
          readOnly: true
        last_updated_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
      readOnly: true
    TraceFilter_Public:
      type: object
      properties:
        field:
          type: string
        operator:
          type: string
          enum:
          - contains
          - not_contains
          - starts_with
          - ends_with
          - '='
          - '!='
          - '>'
          - '>='
          - <
          - <=
          - is_empty
          - is_not_empty
          - in
          - not_in
        key:
          type: string
        value:
          type: string
    ErrorCountWithDeviation:
      type: object
      properties:
        count:
          type: integer
          format: int64
        deviation:
          type: integer
          format: int64
        deviation_percentage:
          type: integer
          format: int64
    ExperimentScore_Public:
      required:
      - name
      - value
      type: object
      properties:
        name:
          minLength: 1
          type: string
        value:
          type: number
    ProjectRetrieve_Detailed:
      required:
      - name
      type: object
      properties:
        name:
          minLength: 1
          type: string
        includeStats:
          type: boolean
    KpiCardRequest:
      required:
      - entity_type
      - interval_start
      type: object
      properties:
        entity_type:
          type: string
          enum:
          - traces
          - spans
          - threads
        filters:
          type: string
        interval_start:
          type: string
          format: date-time
        interval_end:
          type: string
          format: date-time
    JsonNode_Public:
      type: object
    PromptVersionLink_Public:
      type: object
      properties:
        prompt_version_id:
          type: string
          format: uuid
        commit:
          type: string
        prompt_id:
          type: string
          format: uuid
        prompt_name:
          type: string
    Project_Write:
      required:
      - name
      type: object
      properties:
        name:
          minLength: 1
          type: string
        visibility:
          type: string
          enum:
          - private
          - public
        description:
          maxLength: 255
          minLength: 0
          type: string
    TokenUsageNames:
      type: object
      properties:
        names:
          type: array
          items:
            type: string
    ProjectUpdate:
      type: object
      properties:
        name:
          pattern: (?s)^\s*(\S.*\S|\S)\s*$
          type: string
        description:
          maxLength: 255
          minLength: 0
          type: string
        visibility:
          type: string
          enum:
          - private
          - public
    PercentageValues_Public:
      type: object
      properties:
        p50:
          type: number
        p90:
          type: number
        p99:
          type: number
    BatchDelete:
      required:
      - ids
      type: object
      properties:
        ids:
          maxItems: 1000
          minItems: 1
          uniqueItems: true
          type: array
          items:
            type: string
            format: uuid
    PromptPage_Public:
      type: object
      properties:
        page:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
        total:
          type: integer
          format: int64
        content:
          type: array
          items:
            $ref: '#/components/schemas/Prompt_Public'
        sortableBy:
          type: array
          items:
            type: string
    Alert_Public:
      required:
      - webhook
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          maxLength: 255
          minLength: 0
          type: string
        enabled:
          type: boolean
        alert_type:
          type: string
          enum:
          - general
          - slack
          - pagerduty
        metadata:
          type: object
          additionalProperties:
            type: string
        webhook:
          $ref: '#/components/schemas/Webhook_Public'
        triggers:
          type: array
          items:
            $ref: '#/components/schemas/AlertTrigger_Public'
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        last_updated_at:
          type: string
          format: date-time
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
        project_id:
          type: string
          description: Optional project scope for this alert. When set, the alert is scoped to the specified project. Do NOT also provide a 'scope:project' trigger config — the system will create it automatically from this field. Sending both project_id and a scope:project trigger config will result in an error.
          format: uuid
    ErrorMessage_Public:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: string
    AlertPage_Public:
      type: object
      properties:
        page:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
        total:
          type: integer
          format: int64
        content:
          type: array
          items:
            $ref: '#/components/schemas/Alert_Public'
        sortable_by:
          type: array
          items:
            type: string
    RecentActivityItem_Public:
      type: object
      properties:
        type:
          type: string
          enum:
          - trace_daily
          - experiment
          - dataset_version
          - test_suite_version
          - alert_event
          - optimization
          - prompt_version
        id:
          type: string
          format: uuid
        name:
          type: string
        resource_id:
          type: string
          format: uuid
        created_by:
          type: string
        created_at:
          type: string
          format: date-time
    ErrorMessage_Detailed:
      type: object
      properties:
        errors:
          type: array
          items:
            type: string
    BreakdownConfig_Public:
      type: object
      properties:
        field:
          type: string
          enum:
          - none
          - tags
          - metadata
          - name
          - error_info
          - error_type
          - model
          - provider
          - type
        metadata_key:
          type: string
        sub_metric:
          type: string
    OptimizationPage_Public:
      type: object
      properties:
        page:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
        total:
          type: integer
          format: int64
        content:
          type: array
          items:
            $ref: '#/components/schemas/Optimization_Public'
        sortableBy:
          type: array
          items:
            type: string
    StudioPrompt_Public:
      required:
      - messages
      type: object
      properties:
        messages:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/StudioMessage_Public'
    Project_Detailed:
      required:
      - name
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          minLength: 1
          type: string
        visibility:
          type: string
          enum:
          - private
          - public
        description:
          maxLength: 255
          minLength: 0
          type: string
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        last_updated_at:
          type: string
          format: date-time
          readOnly: true
        last_updated_by:
          type: string
          readOnly: true
        last_updated_trace_at:
          type: string
          format: date-time
          readOnly: true
        feedback_scores:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/FeedbackScoreAverage_Detailed'
        duration:
          $ref: '#/components/schemas/PercentageValues_Detailed'
        total_estimated_cost:
          type: number
          format: double
          readOnly: true
        total_estimated_cost_sum:
          type: number
          format: double
          readOnly: true
        usage:
          type: object
          additionalProperties:
            type: number
            format: double
            readOnly: true
          readOnly: true
        trace_count:
          type: integer
          format: int64
          readOnly: true
        thread_count:
          type: integer
          format: int64
          readOnly: true
        guardrails_failed_count:
          type: integer
          format: int64
          readOnly: true
        error_count:
          $ref: '#/components/schemas/ErrorCountWithDeviation_Detailed'
    ProjectPage_Public:
      type: object
      properties:
        page:
          type: integer
          format: int32
        size:
          type: integer
          format: int32
        total:
          type: integer
          format: int64
        content:
          type: array
          items:
            $ref: '#/components/schemas/Project_Public'
        sortableBy:
          type: array
          items:
            type: string
    AlertTrigger_Public:
      required:
      - event_type
      type: object
      properties:
        id:
          type: string
          format: uuid
        alert_id:
          type: string
          format: uuid
          readOnly: true
        event_type:
          type: string
          enum:
          - trace:errors
          - trace:feedback_score
          - trace_thread:feedback_score
          - prompt:created
          - prompt:committed
          - trace:guardrails_triggered
          - prompt:deleted
          - experiment:finished
          - trace:cost
          - trace:latency
        trigger_configs:
          type: array
          items:
            $ref: '#/components/schemas/AlertTriggerConfig_Public'
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
    Prompt_Public:
      required:
      - name
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          minLength: 1
   

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/comet/refs/heads/main/openapi/comet-projects-api-openapi.yml