Openlayer Inference Pipelines API

Production monitoring pipelines and their rows, sessions, and users.

Operations 10

GET /projects/{projectId}/inference-pipelines List inference pipelines #
POST /projects/{projectId}/inference-pipelines Create an inference pipeline #
GET /inference-pipelines/{inferencePipelineId} Retrieve an inference pipeline #
PUT /inference-pipelines/{inferencePipelineId} Update an inference pipeline #
DELETE /inference-pipelines/{inferencePipelineId} Delete an inference pipeline #
POST /inference-pipelines/{inferencePipelineId}/rows Create inference pipeline rows #
PUT /inference-pipelines/{inferencePipelineId}/rows Update an inference pipeline row #
GET /inference-pipelines/{inferencePipelineId}/rows/{inferenceId} Retrieve an inference pipeline row #
DELETE /inference-pipelines/{inferencePipelineId}/rows/{inferenceId} Delete an inference pipeline row #
GET /inference-pipelines/{inferencePipelineId}/results List inference pipeline test results #

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-inference-pipelines-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-inference-pipelines-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Openlayer Commits Inference Pipelines 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: Inference Pipelines
  description: Production monitoring pipelines and their rows, sessions, and users.
paths:
  /projects/{projectId}/inference-pipelines:
    get:
      operationId: listInferencePipelines
      tags:
      - Inference Pipelines
      summary: List inference pipelines
      description: List the inference pipelines in a project.
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - name: name
        in: query
        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 inference pipelines.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferencePipelineList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createInferencePipeline
      tags:
      - Inference Pipelines
      summary: Create an inference pipeline
      description: Create a new inference pipeline within a project.
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInferencePipelineRequest'
      responses:
        '201':
          description: The created inference pipeline.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferencePipeline'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /inference-pipelines/{inferencePipelineId}:
    get:
      operationId: retrieveInferencePipeline
      tags:
      - Inference Pipelines
      summary: Retrieve an inference pipeline
      parameters:
      - $ref: '#/components/parameters/InferencePipelineId'
      responses:
        '200':
          description: The requested inference pipeline.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferencePipeline'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateInferencePipeline
      tags:
      - Inference Pipelines
      summary: Update an inference pipeline
      parameters:
      - $ref: '#/components/parameters/InferencePipelineId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInferencePipelineRequest'
      responses:
        '200':
          description: The updated inference pipeline.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferencePipeline'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteInferencePipeline
      tags:
      - Inference Pipelines
      summary: Delete an inference pipeline
      parameters:
      - $ref: '#/components/parameters/InferencePipelineId'
      responses:
        '204':
          description: Inference pipeline deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /inference-pipelines/{inferencePipelineId}/rows:
    post:
      operationId: streamRows
      tags:
      - Inference Pipelines
      summary: Create inference pipeline rows
      parameters:
      - $ref: '#/components/parameters/InferencePipelineId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataStreamRequest'
      responses:
        '200':
          description: Rows created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataStreamResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    put:
      operationId: updateRow
      tags:
      - Inference Pipelines
      summary: Update an inference pipeline row
      description: Update a previously published row, for example to attach ground truth.
      parameters:
      - $ref: '#/components/parameters/InferencePipelineId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRowRequest'
      responses:
        '200':
          description: Row updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Row'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /inference-pipelines/{inferencePipelineId}/rows/{inferenceId}:
    get:
      operationId: retrieveRow
      tags:
      - Inference Pipelines
      summary: Retrieve an inference pipeline row
      parameters:
      - $ref: '#/components/parameters/InferencePipelineId'
      - $ref: '#/components/parameters/InferenceId'
      responses:
        '200':
          description: The requested row.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Row'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteRow
      tags:
      - Inference Pipelines
      summary: Delete an inference pipeline row
      parameters:
      - $ref: '#/components/parameters/InferencePipelineId'
      - $ref: '#/components/parameters/InferenceId'
      responses:
        '204':
          description: Row deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /inference-pipelines/{inferencePipelineId}/results:
    get:
      operationId: listInferencePipelineTestResults
      tags:
      - Inference Pipelines
      summary: List inference pipeline test results
      parameters:
      - $ref: '#/components/parameters/InferencePipelineId'
      - name: status
        in: query
        required: false
        schema:
          type: string
      - name: type
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: A list of test results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestResultList'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    UpdateRowRequest:
      type: object
      properties:
        inferenceId:
          type: string
        row:
          type: object
          additionalProperties: true
        config:
          $ref: '#/components/schemas/DataStreamConfig'
      required:
      - inferenceId
      - row
    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
    DataStreamConfig:
      type: object
      description: Maps the columns present in each streamed row to Openlayer concepts. The exact fields depend on the project task type (LLM vs tabular).
      properties:
        inputVariableNames:
          type: array
          items:
            type: string
          description: Names of the columns that are input variables to the model.
        outputColumnName:
          type:
          - string
          - 'null'
          description: Name of the column containing the model output.
        groundTruthColumnName:
          type:
          - string
          - 'null'
          description: Name of the column containing ground truth labels.
        numOfTokenColumnName:
          type:
          - string
          - 'null'
          description: Name of the column containing token counts.
        costColumnName:
          type:
          - string
          - 'null'
          description: Name of the column containing the request cost.
        latencyColumnName:
          type:
          - string
          - 'null'
          description: Name of the column containing latency in milliseconds.
        timestampColumnName:
          type:
          - string
          - 'null'
          description: Name of the column containing the UNIX timestamp.
        inferenceIdColumnName:
          type:
          - string
          - 'null'
          description: Name of the column containing a unique inference id for the row.
        contextColumnName:
          type:
          - string
          - 'null'
          description: Name of the column containing retrieved context (for RAG/LLM tasks).
        questionColumnName:
          type:
          - string
          - 'null'
        prompt:
          type:
          - array
          - 'null'
          items:
            type: object
            properties:
              role:
                type: string
              content:
                type: string
    Row:
      type: object
      properties:
        inferenceId:
          type: string
        row:
          type: object
          additionalProperties: true
    InferencePipelineList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/InferencePipeline'
    DataStreamResponse:
      type: object
      properties:
        success:
          type: string
          description: Indicates the data was accepted (e.g. "success").
    TestResultList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/TestResult'
    UpdateInferencePipelineRequest:
      type: object
      properties:
        name:
          type: string
        description:
          type:
          - string
          - 'null'
        referenceDatasetUri:
          type:
          - string
          - 'null'
    CreateInferencePipelineRequest:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
      required:
      - name
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
      required:
      - message
    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
    DataStreamRequest:
      type: object
      properties:
        config:
          $ref: '#/components/schemas/DataStreamConfig'
        rows:
          type: array
          description: The rows of production data being published.
          items:
            type: object
            additionalProperties: true
      required:
      - config
      - rows
    InferencePipeline:
      type: object
      properties:
        id:
          type: string
          format: uuid
        projectId:
          type:
          - string
          - 'null'
          format: uuid
        name:
          type: string
        description:
          type:
          - string
          - 'null'
        dateCreated:
          type: string
          format: date-time
        dateUpdated:
          type: string
          format: date-time
        dateLastSampleReceived:
          type:
          - string
          - 'null'
          format: date-time
        dateLastEvaluated:
          type:
          - string
          - 'null'
          format: date-time
        passingGoalCount:
          type:
          - integer
          - 'null'
        failingGoalCount:
          type:
          - integer
          - 'null'
        totalGoalCount:
          type:
          - integer
          - 'null'
        status:
          type:
          - string
          - 'null'
        statusMessage:
          type:
          - string
          - 'null'
        links:
          type: object
          properties:
            app:
              type: string
      required:
      - id
      - name
  parameters:
    InferencePipelineId:
      name: inferencePipelineId
      in: path
      required: true
      description: The unique identifier of the inference pipeline.
      schema:
        type: string
        format: uuid
    ProjectId:
      name: projectId
      in: path
      required: true
      description: The unique identifier of the project.
      schema:
        type: string
        format: uuid
    InferenceId:
      name: inferenceId
      in: path
      required: true
      description: The unique identifier of a streamed inference row.
      schema:
        type: string
  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'
  securitySchemes:
    api_key:
      type: http
      scheme: bearer
      bearerFormat: apiKey
      description: Pass your Openlayer API key as a Bearer token in the Authorization header.