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

# Read a scenario

> One scenario: its turns, assertions and version.



## OpenAPI

````yaml openapi/en/cell.json GET /v1/scenarios/{scenario_id}
openapi: 3.1.0
info:
  title: Niadra data API
  version: '1'
  description: >-
    Writing, context, history, objects, identity, privacy and governance of one
    space. Every space has a stable address, with the space and the region in
    its name.
servers:
  - url: https://{space}.{region}.api.niadra.com
    variables:
      space:
        default: acme-prod
        description: The space, which comes in the source key.
      region:
        default: us-east-2
        description: The region of the space, which also comes in the key.
security: []
paths:
  /v1/scenarios/{scenario_id}:
    get:
      tags:
        - turns
      summary: Read a scenario
      description: >-
        One scenario: its turns, its assertions and its version.


        **Authentication.** Source key with the `replay` scope, or a Console
        person token with the `integration`, `security` role (or admin). It
        answers only in a space with the `turns` feature on (the `features`
        document); in a space without it, 404.
      operationId: read_scenario_v1_scenarios__scenario_id__get
      parameters:
        - in: path
          name: scenario_id
          required: true
          schema:
            title: Scenario Id
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Scenario'
          description: The scenario.
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The request does not match the contract.
      security:
        - sourceKey: []
        - personToken: []
components:
  schemas:
    Scenario:
      additionalProperties: false
      properties:
        assertions:
          items:
            $ref: '#/components/schemas/ReplayAssertion'
          title: Assertions
          type: array
        created_at:
          format: date-time
          title: Created At
          type: string
        name:
          title: Name
          type: string
        origin:
          enum:
            - manual
            - report
          title: Origin
          type: string
        scenario_id:
          maxLength: 512
          minLength: 1
          title: Scenario Id
          type: string
        status:
          enum:
            - active
            - retired
          title: Status
          type: string
        turn_ids:
          items:
            pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$
            type: string
          title: Turn Ids
          type: array
        updated_at:
          format: date-time
          title: Updated At
          type: string
        version:
          description: Grows with every change of the name, the assertions or the status.
          title: Version
          type: integer
      required:
        - scenario_id
        - name
        - origin
        - turn_ids
        - assertions
        - status
        - version
        - created_at
        - updated_at
      title: Scenario
      type: object
    Problem:
      additionalProperties: false
      description: RFC 9457 problem details; `code` comes from the versioned error catalog.
      properties:
        code:
          title: Code
          type: string
        detail:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Detail
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Request Id
        status:
          title: Status
          type: integer
        title:
          title: Title
          type: string
        type:
          default: about:blank
          title: Type
          type: string
      required:
        - title
        - status
        - code
      title: Problem
      type: object
    ReplayAssertion:
      additionalProperties: false
      description: >-
        A structural check on the replayed turn's record, evaluated by the
        runner. The replay spec fixes each

        kind's `args` and how it is evaluated; a kind the runner cannot evaluate
        yields `not_checked`.
      properties:
        args:
          additionalProperties: true
          maxProperties: 20
          propertyNames:
            maxLength: 256
            minLength: 1
          title: Args
          type: object
        id:
          pattern: ^[a-z0-9][a-z0-9_.-]{0,63}$
          title: Id
          type: string
        kind:
          enum:
            - tool_called
            - tool_not_called
            - hard_respected
            - no_denial_with_results
            - claims_traced
            - claims_match_state
            - no_promise_without_action
            - expected_in_topk
            - handoff_when
            - effect_once
            - budget
            - lexicon
            - tools_offered_match
          title: Kind
          type: string
        suggested:
          default: false
          description: Suggested by rule from the recorded turn.
          title: Suggested
          type: boolean
        turn_id:
          anyOf:
            - pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$
              type: string
            - type: 'null'
          description: The one turn of the scenario it applies to; every turn when absent.
          title: Turn Id
      required:
        - id
        - kind
      title: ReplayAssertion
      type: object
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...
    personToken:
      type: http
      scheme: bearer
      bearerFormat: JWT

````