openapi: 3.0.1 info: title: Openlayer Commits Data Stream 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: Data Stream description: Publish production inference data to a pipeline. paths: /inference-pipelines/{inferencePipelineId}/data-stream: post: operationId: streamData tags: - Data Stream summary: Stream production data description: Publish production inference data (rows) to an inference pipeline. The config object maps the columns in each row to Openlayer concepts such as input variables, output, ground truth, latency, cost, and token counts. parameters: - $ref: '#/components/parameters/InferencePipelineId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DataStreamRequest' responses: '200': description: Data accepted for ingestion. content: application/json: schema: $ref: '#/components/schemas/DataStreamResponse' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' components: responses: ValidationError: description: The request body failed validation. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication failed or the API key is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: 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 DataStreamResponse: type: object properties: success: type: string description: Indicates the data was accepted (e.g. "success"). 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 nullable: true description: Name of the column containing the model output. groundTruthColumnName: type: string nullable: true description: Name of the column containing ground truth labels. numOfTokenColumnName: type: string nullable: true description: Name of the column containing token counts. costColumnName: type: string nullable: true description: Name of the column containing the request cost. latencyColumnName: type: string nullable: true description: Name of the column containing latency in milliseconds. timestampColumnName: type: string nullable: true description: Name of the column containing the UNIX timestamp. inferenceIdColumnName: type: string nullable: true description: Name of the column containing a unique inference id for the row. contextColumnName: type: string nullable: true description: Name of the column containing retrieved context (for RAG/LLM tasks). questionColumnName: type: string nullable: true prompt: type: array nullable: true items: type: object properties: role: type: string content: type: string Error: type: object properties: code: type: string message: type: string required: - message parameters: InferencePipelineId: name: inferencePipelineId in: path required: true description: The unique identifier of the inference pipeline. schema: type: string format: uuid securitySchemes: api_key: type: http scheme: bearer bearerFormat: apiKey description: Pass your Openlayer API key as a Bearer token in the Authorization header.