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

# Create Evaluator from Transcript

> Create a test scenario from a call transcript in the background



## OpenAPI

````yaml post /test_framework/v1/scenarios/create-from-transcript-bg/
openapi: 3.1.0
info:
  title: Cekura API
  version: v1
  description: >-
    Complete API documentation for the Cekura platform. This API provides
    endpoints for testing, observing, and evaluating AI voice agents — including
    managing agents, running evaluators, defining metrics, and analyzing call
    quality.
servers:
  - url: https://api.cekura.ai
security: []
paths:
  /test_framework/v1/scenarios/create-from-transcript-bg/:
    post:
      tags:
        - test_framework
      summary: Create a scenario from a transcript
      description: >-
        Create a new evaluator from a call transcript. Analyzes the transcript
        to extract caller behavior, expected outcomes, and conversation flow.


        **`transcript_json` format:** array of message objects. Each object
        requires:

        - `role` — must be one of: `"Main Agent"`, `"Testing Agent"`, `"Function
        Call"`, `"Function Call Result"`

        - `content` — the message text

        - `start_time` (optional) — seconds from call start as a float


        Note: this endpoint accepts only the above role names. The role names
        used in the observability transcript ingestion API ("agent", "user",
        etc.) are not valid here.


        Example `transcript_json`:

        ```json

        [
          {"role": "Main Agent", "content": "Hello, how can I help?", "start_time": 0.0},
          {"role": "Testing Agent", "content": "I need to reschedule.", "start_time": 2.1},
          {"role": "Main Agent", "content": "Sure, what date works?", "start_time": 3.5}
        ]

        ```


        **Agent lookup:** the `agent` field looks up agents scoped to the
        project associated with your API key. If the agent belongs to a
        different project, use `assistant_id` instead, Returns a
        `progress_id`immediately; poll GET
        /scenarios/create-from-transcript-progress/?progress_id={id} until
      operationId: scenarios-create-from-transcript-bg_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemaPostSimulateScenario'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SchemaPostSimulateScenario'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SchemaPostSimulateScenario'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  progress_id:
                    type: string
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                properties:
                  field_name:
                    type: array
                    items:
                      type: string
          description: ''
      security:
        - oauth2: []
        - supabase_session: []
        - api_key: []
components:
  schemas:
    SchemaPostSimulateScenario:
      type: object
      properties:
        personality:
          type: integer
          description: ID of the personality to use in the simulation
        agent:
          type: integer
          description: ID of the agent to use in the simulation
        assistant_id:
          type: string
          description: Assistant ID to use in the simulation
        transcript_json:
          type: array
          items:
            $ref: '#/components/schemas/SimulateScenarioTranscriptMessage'
          description: JSON representation of the conversation transcript
        name:
          type: string
          description: Name for the simulated scenario
        expected_outcome_prompt:
          type: string
          description: Prompt describing the expected outcome of the scenario
        folder_path:
          type:
            - string
            - 'null'
          description: >-
            Folder path to assign the scenario to (e.g. 'folder_name' or
            'parent.child')
      required:
        - transcript_json
    SimulateScenarioTranscriptMessage:
      type: object
      properties:
        role:
          enum:
            - Main Agent
            - Testing Agent
            - Function Call
            - Function Call Result
          type: string
          description: |-
            * `Main Agent` - Main Agent
            * `Testing Agent` - Testing Agent
            * `Function Call` - Function Call
            * `Function Call Result` - Function Call Result
          x-spec-enum-id: b888e3924515fb52
        time:
          type: string
          readOnly: true
        content:
          type: string
        end_time:
          type: number
          format: double
        start_time:
          type: number
          format: double
        data:
          $ref: '#/components/schemas/TranscriptFunctionCallData'
      required:
        - role
    TranscriptFunctionCallData:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        arguments:
          oneOf:
            - {}
            - type: 'null'
        result:
          oneOf:
            - {}
            - type: 'null'
  securitySchemes:
    oauth2:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth access token issued by Cekura for connected apps.
    supabase_session:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Cekura dashboard session token. Not a customer API credential.
    api_key:
      type: apiKey
      in: header
      name: X-CEKURA-API-KEY
      description: >-
        API Key Authentication. It should be included in the header of each
        request.

````