LangWatch Monitors API

The Monitors API from LangWatch — 3 operation(s) for monitors.

Documentation

Specifications

OpenAPI Specification

langwatch-monitors-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: LangWatch Agents Monitors API
  version: 1.0.0
  description: LangWatch openapi spec
servers:
- url: https://app.langwatch.ai
security:
- project_api_key: []
tags:
- name: Monitors
paths:
  /api/monitors:
    get:
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    slug:
                      type: string
                    checkType:
                      type: string
                    enabled:
                      type: boolean
                    executionMode:
                      type: string
                      enum:
                      - ON_MESSAGE
                      - AS_GUARDRAIL
                      - MANUALLY
                    sample:
                      type: number
                    level:
                      type: string
                    evaluatorId:
                      type:
                      - string
                      - 'null'
                    preconditions: {}
                    parameters: {}
                    mappings:
                      type: 'null'
                    threadIdleTimeout:
                      type:
                      - number
                      - 'null'
                    createdAt:
                      type: string
                    updatedAt:
                      type: string
                    platformUrl:
                      type: string
                      format: uri
                  required:
                  - id
                  - name
                  - slug
                  - checkType
                  - enabled
                  - executionMode
                  - sample
                  - level
                  - evaluatorId
                  - threadIdleTimeout
                  - createdAt
                  - updatedAt
                  - platformUrl
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
      operationId: getApiMonitors
      parameters: []
      description: List all online evaluation monitors for the project
      tags:
      - Monitors
    post:
      responses:
        '201':
          description: Monitor created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  slug:
                    type: string
                  checkType:
                    type: string
                  enabled:
                    type: boolean
                  executionMode:
                    type: string
                    enum:
                    - ON_MESSAGE
                    - AS_GUARDRAIL
                    - MANUALLY
                  sample:
                    type: number
                  level:
                    type: string
                  evaluatorId:
                    type:
                    - string
                    - 'null'
                  preconditions: {}
                  parameters: {}
                  mappings:
                    type: 'null'
                  threadIdleTimeout:
                    type:
                    - number
                    - 'null'
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  platformUrl:
                    type: string
                    format: uri
                required:
                - id
                - name
                - slug
                - checkType
                - enabled
                - executionMode
                - sample
                - level
                - evaluatorId
                - threadIdleTimeout
                - createdAt
                - updatedAt
                - platformUrl
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
      operationId: postApiMonitors
      parameters: []
      description: Create a new online evaluation monitor
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                checkType:
                  type: string
                  minLength: 1
                executionMode:
                  type: string
                  enum:
                  - ON_MESSAGE
                  - AS_GUARDRAIL
                  - MANUALLY
                  default: ON_MESSAGE
                preconditions:
                  type: array
                  items: {}
                  default: []
                parameters:
                  type: object
                  additionalProperties: {}
                  default: {}
                mappings:
                  type:
                  - object
                  - 'null'
                  properties:
                    mapping:
                      type: object
                      additionalProperties:
                        anyOf:
                        - type: object
                          properties:
                            source:
                              anyOf:
                              - type: string
                                enum:
                                - trace_id
                                - thread_id
                                - timestamp
                                - input
                                - output
                                - contexts
                                - contexts.string_list
                                - metrics.total_cost
                                - metrics.first_token_ms
                                - metrics.total_time_ms
                                - metrics.prompt_tokens
                                - metrics.completion_tokens
                                - metrics.total_tokens
                                - spans
                                - spans.llm.input
                                - spans.llm.output
                                - metadata
                                - evaluations
                                - annotations
                                - events
                                - threads
                                - threads_until_current
                                - formatted_trace
                              - type: string
                                const: ''
                            key:
                              type: string
                            subkey:
                              type: string
                            selectedFields:
                              type: array
                              items:
                                type: string
                            type:
                              type: string
                              const: trace
                          required:
                          - source
                        - type: object
                          properties:
                            source:
                              anyOf:
                              - type: string
                                enum:
                                - thread_id
                                - traces
                                - formatted_traces
                              - type: string
                                const: ''
                            key:
                              type: string
                            subkey:
                              type: string
                            selectedFields:
                              type: array
                              items:
                                type: string
                            type:
                              type: string
                              const: thread
                          required:
                          - source
                          - type
                    expansions:
                      type: array
                      items:
                        type: string
                        enum:
                        - spans.llm.span_id
                        - spans.all.span_id
                        - annotations.id
                        - events.event_id
                  required:
                  - mapping
                  - expansions
                sample:
                  type: number
                  minimum: 0
                  maximum: 1
                  default: 1
                evaluatorId:
                  type: string
                level:
                  type: string
                  enum:
                  - trace
                  - thread
                  default: trace
                threadIdleTimeout:
                  type:
                  - integer
                  - 'null'
                  exclusiveMinimum: 0
              required:
              - name
              - checkType
      tags:
      - Monitors
  /api/monitors/{id}:
    get:
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  slug:
                    type: string
                  checkType:
                    type: string
                  enabled:
                    type: boolean
                  executionMode:
                    type: string
                    enum:
                    - ON_MESSAGE
                    - AS_GUARDRAIL
                    - MANUALLY
                  sample:
                    type: number
                  level:
                    type: string
                  evaluatorId:
                    type:
                    - string
                    - 'null'
                  preconditions: {}
                  parameters: {}
                  mappings:
                    type: 'null'
                  threadIdleTimeout:
                    type:
                    - number
                    - 'null'
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  platformUrl:
                    type: string
                    format: uri
                required:
                - id
                - name
                - slug
                - checkType
                - enabled
                - executionMode
                - sample
                - level
                - evaluatorId
                - threadIdleTimeout
                - createdAt
                - updatedAt
                - platformUrl
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '404':
          description: Monitor not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
      operationId: getApiMonitorsById
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      description: Get a monitor by its ID
      tags:
      - Monitors
    patch:
      responses:
        '200':
          description: Monitor updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  slug:
                    type: string
                  checkType:
                    type: string
                  enabled:
                    type: boolean
                  executionMode:
                    type: string
                    enum:
                    - ON_MESSAGE
                    - AS_GUARDRAIL
                    - MANUALLY
                  sample:
                    type: number
                  level:
                    type: string
                  evaluatorId:
                    type:
                    - string
                    - 'null'
                  preconditions: {}
                  parameters: {}
                  mappings:
                    type: 'null'
                  threadIdleTimeout:
                    type:
                    - number
                    - 'null'
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  platformUrl:
                    type: string
                    format: uri
                required:
                - id
                - name
                - slug
                - checkType
                - enabled
                - executionMode
                - sample
                - level
                - evaluatorId
                - threadIdleTimeout
                - createdAt
                - updatedAt
                - platformUrl
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '404':
          description: Monitor not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
      operationId: patchApiMonitorsById
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      description: Update a monitor (name, enabled state, settings, etc.)
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                enabled:
                  type: boolean
                checkType:
                  type: string
                executionMode:
                  type: string
                  enum:
                  - ON_MESSAGE
                  - AS_GUARDRAIL
                  - MANUALLY
                preconditions:
                  type: array
                  items: {}
                parameters:
                  type: object
                  additionalProperties: {}
                mappings:
                  type:
                  - object
                  - 'null'
                  properties:
                    mapping:
                      type: object
                      additionalProperties:
                        anyOf:
                        - type: object
                          properties:
                            source:
                              anyOf:
                              - type: string
                                enum:
                                - trace_id
                                - thread_id
                                - timestamp
                                - input
                                - output
                                - contexts
                                - contexts.string_list
                                - metrics.total_cost
                                - metrics.first_token_ms
                                - metrics.total_time_ms
                                - metrics.prompt_tokens
                                - metrics.completion_tokens
                                - metrics.total_tokens
                                - spans
                                - spans.llm.input
                                - spans.llm.output
                                - metadata
                                - evaluations
                                - annotations
                                - events
                                - threads
                                - threads_until_current
                                - formatted_trace
                              - type: string
                                const: ''
                            key:
                              type: string
                            subkey:
                              type: string
                            selectedFields:
                              type: array
                              items:
                                type: string
                            type:
                              type: string
                              const: trace
                          required:
                          - source
                        - type: object
                          properties:
                            source:
                              anyOf:
                              - type: string
                                enum:
                                - thread_id
                                - traces
                                - formatted_traces
                              - type: string
                                const: ''
                            key:
                              type: string
                            subkey:
                              type: string
                            selectedFields:
                              type: array
                              items:
                                type: string
                            type:
                              type: string
                              const: thread
                          required:
                          - source
                          - type
                    expansions:
                      type: array
                      items:
                        type: string
                        enum:
                        - spans.llm.span_id
                        - spans.all.span_id
                        - annotations.id
                        - events.event_id
                  required:
                  - mapping
                  - expansions
                sample:
                  type: number
                  minimum: 0
                  maximum: 1
                evaluatorId:
                  type:
                  - string
                  - 'null'
                level:
                  type: string
                  enum:
                  - trace
                  - thread
                threadIdleTimeout:
                  type:
                  - integer
                  - 'null'
                  exclusiveMinimum: 0
      tags:
      - Monitors
    delete:
      responses:
        '200':
          description: Monitor deleted
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  deleted:
                    type: boolean
                required:
                - id
                - deleted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '404':
          description: Monitor not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
      operationId: deleteApiMonitorsById
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      description: Delete a monitor
      tags:
      - Monitors
  /api/monitors/{id}/toggle:
    post:
      responses:
        '200':
          description: Monitor toggled
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  enabled:
                    type: boolean
                required:
                - id
                - enabled
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '404':
          description: Monitor not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
      operationId: postApiMonitorsByIdToggle
      parameters:
      - schema:
          type: string
        in: path
        name: id
        required: true
      description: Enable or disable a monitor
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enabled:
                  type: boolean
              required:
              - enabled
      tags:
      - Monitors
components:
  securitySchemes:
    project_api_key:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: 'Project API key for sending traces and accessing project-scoped resources. Format: sk-lw-... (no underscore). Obtain one by creating a project via the Admin API or the LangWatch UI.'
    admin_api_key:
      type: http
      scheme: bearer
      description: 'Admin API key for organization-level operations (managing projects, API keys). Create one in Settings > API Keys or via POST /api/api-keys. Format: sk-lw-{id}_{secret}.'