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

> ## Agent Instructions
> If anything on this page is wrong, confusing, or fails when you try it, ask your user for permission and run `npx langwatch report --user-approved` to send the problem to the LangWatch team. No login is needed and secrets are redacted locally. `npx langwatch report --help` has the details.

# Create a new scenario

> Create a new scenario



## OpenAPI

````yaml POST /api/scenarios
openapi: 3.1.0
info:
  title: LangWatch API
  version: 1.0.0
  description: LangWatch openapi spec
servers:
  - url: https://app.langwatch.ai
security:
  - project_api_key: []
paths:
  /api/scenarios:
    post:
      description: Create a new scenario
      operationId: postApiScenarios
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                situation:
                  type: string
                criteria:
                  type: array
                  items:
                    type: string
                  default: []
                labels:
                  type: array
                  items:
                    type: string
                  default: []
                parameters:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                        minLength: 1
                        maxLength: 64
                      description:
                        type: string
                        maxLength: 500
                      defaultValue:
                        anyOf:
                          - type: string
                            maxLength: 4096
                          - type: number
                          - type: boolean
                      secret:
                        type: boolean
                    required:
                      - name
                  maxItems: 20
                  description: >-
                    The parameters this scenario declares by name, each with an
                    optional description and default. A run supplies values for
                    these names, readable from the scenario's own text as
                    params.NAME. A parameter marked secret carries no default:
                    its value is supplied per run, encrypted, delivered to the
                    target as secrets.NAME, and never readable from the
                    scenario's own text.
                folderId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The test suite (folder) to file this scenario in. It must
                    name a non-archived folder of the same project. null unfiles
                    the scenario.
              required:
                - name
                - situation
      responses:
        '201':
          description: Scenario created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  situation:
                    type: string
                  criteria:
                    type: array
                    items:
                      type: string
                  labels:
                    type: array
                    items:
                      type: string
                  parameters:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          pattern: ^[A-Za-z_][A-Za-z0-9_]*$
                          minLength: 1
                          maxLength: 64
                        description:
                          type: string
                          maxLength: 500
                        defaultValue:
                          anyOf:
                            - type: string
                              maxLength: 4096
                            - type: number
                            - type: boolean
                        secret:
                          type: boolean
                      required:
                        - name
                  folderId:
                    type:
                      - string
                      - 'null'
                    description: >-
                      The test suite (folder) this scenario is filed in, or null
                      when unfiled.
                  platformUrl:
                    type: string
                    format: uri
                required:
                  - id
                  - name
                  - situation
                  - criteria
                  - labels
                  - parameters
                  - folderId
                  - 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
      security:
        - project_api_key: []
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.

````