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.