Openlayer Projects API

Create, list, and delete projects.

OpenAPI Specification

openlayer-projects-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Openlayer Commits Projects API
  description: The Openlayer REST API for AI evaluation, testing, and observability. Manage projects, commit model versions and datasets, run and evaluate tests, create inference pipelines for production monitoring, and stream production inference data into Openlayer. All requests are authenticated with a Bearer API key.
  termsOfService: https://www.openlayer.com/terms
  contact:
    name: Openlayer Support
    url: https://www.openlayer.com/docs
    email: support@openlayer.com
  version: '1.0'
servers:
- url: https://api.openlayer.com/v1
  description: Openlayer production API
security:
- api_key: []
tags:
- name: Projects
  description: Create, list, and delete projects.
paths:
  /projects:
    get:
      operationId: listProjects
      tags:
      - Projects
      summary: List projects
      description: List the projects in the authenticated user's workspace.
      parameters:
      - name: name
        in: query
        description: Filter projects by name.
        required: false
        schema:
          type: string
      - name: taskType
        in: query
        description: Filter by task type (e.g. llm-base, tabular-classification).
        required: false
        schema:
          type: string
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
      - name: perPage
        in: query
        required: false
        schema:
          type: integer
          default: 100
      responses:
        '200':
          description: A paginated list of projects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createProject
      tags:
      - Projects
      summary: Create a project
      description: Create a new project in the authenticated user's workspace.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectRequest'
      responses:
        '201':
          description: The created project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /projects/{projectId}:
    delete:
      operationId: deleteProject
      tags:
      - Projects
      summary: Delete a project
      description: Delete a project by its id.
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      responses:
        '204':
          description: Project deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: Authentication failed or the API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    ProjectId:
      name: projectId
      in: path
      required: true
      description: The unique identifier of the project.
      schema:
        type: string
        format: uuid
  schemas:
    CreateProjectRequest:
      type: object
      properties:
        name:
          type: string
        taskType:
          type: string
          description: The task type, e.g. llm-base, tabular-classification, text-classification.
        description:
          type: string
      required:
      - name
      - taskType
    ProjectList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Project'
    Project:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        description:
          type: string
          nullable: true
        taskType:
          type: string
          description: The task type, e.g. llm-base, tabular-classification, text-classification.
        creatorId:
          type: string
          format: uuid
          nullable: true
        workspaceId:
          type: string
          format: uuid
          nullable: true
        dateCreated:
          type: string
          format: date-time
        dateUpdated:
          type: string
          format: date-time
        source:
          type: string
          nullable: true
        versionCount:
          type: integer
          nullable: true
        inferencePipelineCount:
          type: integer
          nullable: true
        links:
          type: object
          properties:
            app:
              type: string
      required:
      - id
      - name
      - taskType
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
      required:
      - message
  securitySchemes:
    api_key:
      type: http
      scheme: bearer
      bearerFormat: apiKey
      description: Pass your Openlayer API key as a Bearer token in the Authorization header.