Openlayer Tests API

Define, evaluate, and read project tests.

Operations 5

GET /projects/{projectId}/tests List project tests #
POST /projects/{projectId}/tests Create a project test #
PUT /projects/{projectId}/tests Update project tests #
POST /tests/{testId}/evaluate Evaluate a test #
GET /tests/{testId}/results List results for a test #

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/openlayer-tests-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openlayer-tests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Openlayer Commits Tests 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: Tests
  description: Define, evaluate, and read project tests.
paths:
  /projects/{projectId}/tests:
    get:
      operationId: listTests
      tags:
      - Tests
      summary: List project tests
      description: List the tests defined within a project.
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - name: includeArchived
        in: query
        required: false
        schema:
          type: boolean
      - name: type
        in: query
        description: Filter by test type (integrity, consistency, performance).
        required: false
        schema:
          type: string
      responses:
        '200':
          description: A list of tests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createTest
      tags:
      - Tests
      summary: Create a project test
      description: Create a new test within a project.
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTestRequest'
      responses:
        '201':
          description: The created test.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Test'
        '401':
          $ref: '#/components/responses/Unauthorized'
    put:
      operationId: updateTests
      tags:
      - Tests
      summary: Update project tests
      description: Update one or more tests within a project.
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTestsRequest'
      responses:
        '200':
          description: The updated tests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /tests/{testId}/evaluate:
    post:
      operationId: evaluateTest
      tags:
      - Tests
      summary: Evaluate a test
      description: Trigger an evaluation of a test by its id.
      parameters:
      - $ref: '#/components/parameters/TestId'
      responses:
        '200':
          description: The evaluation result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestResult'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /tests/{testId}/results:
    get:
      operationId: listTestResults
      tags:
      - Tests
      summary: List results for a test
      parameters:
      - $ref: '#/components/parameters/TestId'
      responses:
        '200':
          description: A list of results for the test.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestResultList'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    ProjectId:
      name: projectId
      in: path
      required: true
      description: The unique identifier of the project.
      schema:
        type: string
        format: uuid
    TestId:
      name: testId
      in: path
      required: true
      description: The unique identifier of the test.
      schema:
        type: string
        format: uuid
  responses:
    Unauthorized:
      description: Authentication failed or the API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    TestResultList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/TestResult'
    UpdateTestsRequest:
      type: object
      properties:
        tests:
          type: array
          items:
            $ref: '#/components/schemas/Test'
      required:
      - tests
    Test:
      type: object
      properties:
        id:
          type: string
          format: uuid
        projectVersionId:
          type:
          - string
          - 'null'
          format: uuid
        name:
          type: string
        description:
          type:
          - string
          - 'null'
        type:
          type: string
          description: The test type (integrity, consistency, performance).
        subtype:
          type:
          - string
          - 'null'
        archived:
          type: boolean
        dateCreated:
          type: string
          format: date-time
        dateUpdated:
          type: string
          format: date-time
        creatorId:
          type:
          - string
          - 'null'
          format: uuid
        usesMlModel:
          type:
          - boolean
          - 'null'
        usesValidationDataset:
          type:
          - boolean
          - 'null'
        usesTrainingDataset:
          type:
          - boolean
          - 'null'
        usesProductionData:
          type:
          - boolean
          - 'null'
        thresholds:
          type: array
          items:
            type: object
            properties:
              measurement:
                type: string
              operator:
                type: string
              value:
                oneOf:
                - type: number
                - type: string
                - type: boolean
                - type: array
                  items: {}
      required:
      - id
      - name
      - type
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
      required:
      - message
    TestList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Test'
    TestResult:
      type: object
      properties:
        id:
          type: string
          format: uuid
        projectVersionId:
          type:
          - string
          - 'null'
          format: uuid
        inferencePipelineId:
          type:
          - string
          - 'null'
          format: uuid
        status:
          type: string
          description: Result status, e.g. running, passing, failing, skipped, error.
        statusMessage:
          type:
          - string
          - 'null'
        dateCreated:
          type: string
          format: date-time
        dateUpdated:
          type: string
          format: date-time
        dateDataStarts:
          type:
          - string
          - 'null'
          format: date-time
        dateDataEnds:
          type:
          - string
          - 'null'
          format: date-time
        goal:
          $ref: '#/components/schemas/Test'
        goalId:
          type:
          - string
          - 'null'
          format: uuid
      required:
      - id
      - status
    CreateTestRequest:
      type: object
      properties:
        name:
          type: string
        description:
          type:
          - string
          - 'null'
        type:
          type: string
        subtype:
          type: string
        thresholds:
          type: array
          items:
            type: object
            properties:
              measurement:
                type: string
              operator:
                type: string
              value:
                oneOf:
                - type: number
                - type: string
                - type: boolean
                - type: array
                  items: {}
      required:
      - name
      - type
      - thresholds
  securitySchemes:
    api_key:
      type: http
      scheme: bearer
      bearerFormat: apiKey
      description: Pass your Openlayer API key as a Bearer token in the Authorization header.