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

# Ingest an OTLP export for a signal



## OpenAPI

````yaml https://api.interfere.com/openapi.json post /drain/v1/{signal}
openapi: 3.0.0
info:
  title: Interfere API
  termsOfService: https://interfere.com/legal/terms-of-service
  contact:
    email: support@interfere.com
    name: Interfere Support
    url: https://interfere.com/~/*/settings/support
  license:
    name: All Rights Reserved
  description: >-
    Interfere empowers engineers, product managers and designers with real-time
    understanding of previously unseen bugs and issues.
  version: 3.0.0
servers:
  - url: https://api.interfere.com
    description: Production
security: []
tags:
  - name: Drain
    description: Drain API
externalDocs:
  url: https://interfere.com/docs
  description: Interfere Documentation
paths:
  /drain/v1/{signal}:
    post:
      summary: Ingest an OTLP export for a signal
      operationId: drainOtlpExport
      parameters:
        - schema:
            type: string
            enum:
              - traces
              - logs
              - metrics
            description: OTLP signal
          required: true
          description: OTLP signal
          name: signal
          in: path
      requestBody:
        required: true
        content:
          application/x-protobuf:
            schema:
              nullable: true
              description: OTLP protobuf payload
          application/json:
            schema:
              nullable: true
              description: OTLP JSON payload
      responses:
        '200':
          description: >-
            OTLP export response in the request's content type; an empty message
            signals full success
          content:
            application/x-protobuf:
              schema:
                nullable: true
                description: OTLP protobuf response
            application/json:
              schema:
                nullable: true
                description: OTLP JSON response
        '401':
          description: Missing or invalid public key
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - AUTH_MISSING
                      - AUTH_PK_INVALID
                  message:
                    type: string
                  service:
                    type: string
                    enum:
                      - collector
                      - operation
                      - intelligence
                required:
                  - code
        '503':
          description: >-
            A dependency failed while accepting the request; retry with backoff
            after the Retry-After delay
          headers:
            Retry-After:
              schema:
                type: string
                description: Seconds to wait before retrying
              required: true
              description: Seconds to wait before retrying
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - INGEST_INFRA_UNAVAILABLE
                  message:
                    type: string
                  service:
                    type: string
                    enum:
                      - collector
                      - operation
                      - intelligence
                required:
                  - code
      security:
        - publicKeyHeader: []
        - publicKey: []
components:
  securitySchemes:
    publicKeyHeader:
      type: apiKey
      in: header
      name: x-interfere-public-key
      description: >-
        Public key of the receiving surface; preferred for OTel Collector
        exporters, whose endpoint config cannot carry query strings
    publicKey:
      type: apiKey
      in: query
      name: public_key
      description: Public key of the receiving surface

````