> ## Documentation Index
> Fetch the complete documentation index at: https://laminar.sh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Ingest OpenTelemetry traces

> Accepts an OTLP ExportTraceServiceRequest encoded as protobuf or OTLP JSON.



## OpenAPI

````yaml /openapi/openapi.yaml post /v1/traces
openapi: 3.1.0
info:
  title: Laminar API
  version: 1.0.0
  description: Public HTTP API for ingesting and managing data in a Laminar project.
  license:
    name: Apache 2.0
    identifier: Apache-2.0
servers:
  - url: https://api.lmnr.ai
    description: Laminar Cloud
security:
  - projectApiKey: []
tags:
  - name: Ingestion
    description: Send telemetry data to Laminar.
  - name: Traces
    description: Update trace data after ingestion.
  - name: SQL
    description: Query project data with read-only SQL.
  - name: Projects
    description: Resolve project information.
  - name: Datasets
    description: Read datasets and add datapoints.
  - name: Evaluations
    description: Create evaluation runs and record their results.
  - name: Labeling queues
    description: Add items to labeling queues.
  - name: Signals
    description: Manage automated evaluations of project traces.
  - name: LLM profiles
    description: Configure workspace LLM credentials and models for self-hosted Signals.
paths:
  /v1/traces:
    post:
      tags:
        - Ingestion
      summary: Ingest OpenTelemetry traces
      description: >-
        Accepts an OTLP ExportTraceServiceRequest encoded as protobuf or OTLP
        JSON.
      operationId: ingestTraces
      requestBody:
        required: true
        content:
          application/x-protobuf:
            schema:
              type: string
              contentMediaType: application/x-protobuf
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '200':
          description: Trace batch accepted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '413':
          $ref: '#/components/responses/PayloadTooLarge'
        '429':
          description: Ingestion rate limit exceeded.
      security:
        - projectApiKey: []
        - ingestApiKey: []
components:
  responses:
    BadRequest:
      description: Invalid request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid API key.
    PayloadTooLarge:
      description: The request exceeds the configured HTTP payload limit.
  schemas:
    Error:
      oneOf:
        - type: object
          properties:
            error:
              type: string
          required:
            - error
        - type: string
  securitySchemes:
    projectApiKey:
      type: http
      scheme: bearer
      bearerFormat: Project API key
      description: A Laminar project API key.
    ingestApiKey:
      type: http
      scheme: bearer
      bearerFormat: Ingest-only API key
      description: A project API key restricted to ingestion operations.

````