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

# Search transcripts

> Search for transcripts matching the specified criteria with pagination.



## OpenAPI

````yaml /specs/analytics/openapi.public.json post /v1/transcript/project/{projectID}
openapi: 3.0.0
info:
  title: Analytics
  description: Voiceflow analytics service
  version: 1.0.0
  contact: {}
servers:
  - url: https://analytics-api.voiceflow.com
security: []
paths:
  /v1/transcript/project/{projectID}:
    post:
      tags:
        - Transcript
        - Public-Docs
      summary: Search transcripts
      description: Search for transcripts matching the specified criteria with pagination.
      operationId: TranscriptPublicController_searchByProjectID_v1
      parameters:
        - name: projectID
          required: true
          in: path
          description: ID of the target Voiceflow project.
          schema:
            type: string
            description: ID of the target Voiceflow project.
        - name: take
          required: false
          in: query
          schema:
            default: 25
            description: The maximum number of results to return, used for pagination
            type: integer
            minimum: 1
            maximum: 100
        - name: skip
          required: false
          in: query
          schema:
            default: 0
            description: The number of results to skip, used for pagination.
            type: integer
            minimum: 0
            maximum: 9007199254740991
        - name: order
          required: false
          in: query
          schema:
            default: DESC
            description: Used to control the order of the results returned.
            type: string
            enum:
              - ASC
              - DESC
            x-enumNames:
              - ASC
              - DESC
        - name: encode
          required: false
          in: query
          schema:
            description: Escape HTML special characters that appear in transcripts.
            type: boolean
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchTranscriptsRequest'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  transcripts:
                    type: array
                    items:
                      $ref: '#/components/schemas/TranscriptWithMetadataResponse'
                required:
                  - transcripts
                additionalProperties: false
      security:
        - auth: []
components:
  schemas:
    SearchTranscriptsRequest:
      type: object
      properties:
        filters:
          description: Filter transcripts based on properties and evaluation results.
          maxItems: 50
          allOf:
            - $ref: '#/components/schemas/TranscriptFilterArray'
        endDate:
          description: Select transcripts that were started before a specific date.
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        sessionID:
          description: Select transcripts by sessionID.
          type: string
        startDate:
          description: Select transcripts that were started after a specific date.
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        updatedAfter:
          description: >-
            Select transcripts that were last updated at or after a specific
            date.
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        updatedBefore:
          description: >-
            Select transcripts that were last updated at or before a specific
            date.
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        environmentID:
          deprecated: true
          description: '@deprecated use versionID and projectEnvironmentIDOrAlias instead'
          anyOf:
            - type: string
            - minItems: 1
              maxItems: 2
              type: array
              items:
                $ref: '#/components/schemas/VersionTag'
        versionID:
          type: string
        projectEnvironmentIDOrAlias:
          type: string
      additionalProperties: false
    TranscriptWithMetadataResponse:
      type: object
      properties:
        id:
          type: string
        userID:
          type: string
        sessionID:
          type: string
        projectID:
          type: string
        environmentID:
          type: string
        createdAt:
          type: string
          format: date
        updatedAt:
          type: string
          format: date
        expiresAt:
          nullable: true
          type: string
          format: date
        endedAt:
          nullable: true
          type: string
          format: date
        recordingURL:
          nullable: true
          type: string
        properties:
          type: array
          items:
            $ref: '#/components/schemas/TranscriptPropertyWithValue'
        evaluations:
          type: array
          items:
            $ref: '#/components/schemas/TranscriptEvaluationWithResult'
      required:
        - id
        - userID
        - sessionID
        - projectID
        - environmentID
        - createdAt
        - updatedAt
        - expiresAt
        - endedAt
        - recordingURL
        - properties
        - evaluations
      additionalProperties: false
    TranscriptFilterArray:
      type: array
      items:
        $ref: '#/components/schemas/TranscriptFilter'
    VersionTag:
      type: string
      enum:
        - development
        - staging
        - production
      deprecated: true
      description: '@deprecated use versionID instead'
      x-enumNames:
        - DEVELOPMENT
        - STAGING
        - PRODUCTION
    TranscriptPropertyWithValue:
      type: object
      properties:
        value:
          type: string
        metadata:
          nullable: true
          type: object
          additionalProperties: {}
        createdAt:
          type: string
          format: date
        updatedAt:
          type: string
          format: date
        id:
          type: string
        name:
          type: string
        type:
          type: string
        default:
          type: boolean
      required:
        - value
        - metadata
        - createdAt
        - updatedAt
        - id
        - name
        - type
        - default
    TranscriptEvaluationWithResult:
      oneOf:
        - $ref: '#/components/schemas/BooleanTranscriptEvaluationWithResult'
        - $ref: '#/components/schemas/NumberTranscriptEvaluationWithResult'
        - $ref: '#/components/schemas/StringTranscriptEvaluationWithResult'
        - $ref: '#/components/schemas/OptionTranscriptEvaluationWithResult'
    TranscriptFilter:
      oneOf:
        - type: object
          properties:
            id:
              type: string
            op:
              type: string
              enum:
                - gt
                - gte
                - lt
                - lte
              x-enumNames:
                - GREATER_THAN
                - GREATER_THAN_OR_EQUAL
                - LESS_THAN
                - LESS_THAN_OR_EQUAL
            value:
              type: number
          required:
            - id
            - op
            - value
        - type: object
          properties:
            id:
              type: string
            op:
              type: string
              enum:
                - eq
                - neq
              x-enumNames:
                - EQUALS
                - NOT_EQUALS
            value:
              anyOf:
                - anyOf:
                    - type: string
                    - type: number
                - type: boolean
          required:
            - id
            - op
            - value
        - type: object
          properties:
            id:
              type: string
            op:
              type: string
              enum:
                - between
              x-enumNames:
                - BETWEEN
            value:
              type: array
              items:
                anyOf:
                  - type: number
                  - type: number
              minItems: 2
              maxItems: 2
          required:
            - id
            - op
            - value
        - type: object
          properties:
            id:
              type: string
            op:
              type: string
              enum:
                - in
                - nin
              x-enumNames:
                - IN
                - NOT_IN
            value:
              type: array
              items:
                anyOf:
                  - type: string
                  - type: number
          required:
            - id
            - op
            - value
        - type: object
          properties:
            id:
              type: string
            op:
              type: string
              enum:
                - contains
              x-enumNames:
                - CONTAINS
            value:
              type: string
          required:
            - id
            - op
            - value
        - type: object
          properties:
            id:
              type: string
            op:
              type: string
              enum:
                - exists
                - not_exists
              x-enumNames:
                - EXISTS
                - NOT_EXISTS
          required:
            - id
            - op
        - type: object
          properties:
            id:
              type: string
            op:
              type: string
              enum:
                - json_contains
              x-enumNames:
                - JSONB_ARRAY_CONTAINS
            value:
              type: array
              items:
                type: object
                additionalProperties: {}
          required:
            - id
            - op
            - value
    BooleanTranscriptEvaluationWithResult:
      type: object
      properties:
        value:
          anyOf:
            - type: number
            - type: string
            - type: boolean
        reason:
          type: string
        cost:
          type: number
        createdAt:
          type: string
          format: date
        updatedAt:
          type: string
          format: date
        id:
          type: string
        name:
          type: string
        description:
          nullable: true
          type: string
        default:
          type: boolean
        type:
          type: string
          enum:
            - boolean
          x-enumNames:
            - BOOLEAN
      required:
        - value
        - reason
        - cost
        - createdAt
        - updatedAt
        - id
        - name
        - description
        - default
        - type
      additionalProperties: false
    NumberTranscriptEvaluationWithResult:
      type: object
      properties:
        value:
          anyOf:
            - type: number
            - type: string
            - type: boolean
        reason:
          type: string
        cost:
          type: number
        createdAt:
          type: string
          format: date
        updatedAt:
          type: string
          format: date
        id:
          type: string
        name:
          type: string
        description:
          nullable: true
          type: string
        default:
          type: boolean
        type:
          type: string
          enum:
            - number
          x-enumNames:
            - NUMBER
        maximumValue:
          type: number
        minimumValue:
          type: number
      required:
        - value
        - reason
        - cost
        - createdAt
        - updatedAt
        - id
        - name
        - description
        - default
        - type
        - maximumValue
        - minimumValue
      additionalProperties: false
    StringTranscriptEvaluationWithResult:
      type: object
      properties:
        value:
          anyOf:
            - type: number
            - type: string
            - type: boolean
        reason:
          type: string
        cost:
          type: number
        createdAt:
          type: string
          format: date
        updatedAt:
          type: string
          format: date
        id:
          type: string
        name:
          type: string
        description:
          nullable: true
          type: string
        default:
          type: boolean
        type:
          type: string
          enum:
            - string
          x-enumNames:
            - STRING
      required:
        - value
        - reason
        - cost
        - createdAt
        - updatedAt
        - id
        - name
        - description
        - default
        - type
      additionalProperties: false
    OptionTranscriptEvaluationWithResult:
      type: object
      properties:
        value:
          anyOf:
            - type: number
            - type: string
            - type: boolean
        reason:
          type: string
        cost:
          type: number
        createdAt:
          type: string
          format: date
        updatedAt:
          type: string
          format: date
        id:
          type: string
        name:
          type: string
        description:
          nullable: true
          type: string
        default:
          type: boolean
        type:
          type: string
          enum:
            - option
          x-enumNames:
            - OPTION
        options:
          type: array
          items:
            $ref: '#/components/schemas/TranscriptEvaluationOptionSchema'
      required:
        - value
        - reason
        - cost
        - createdAt
        - updatedAt
        - id
        - name
        - description
        - default
        - type
        - options
      additionalProperties: false
    TranscriptEvaluationOptionSchema:
      type: object
      properties:
        value:
          type: string
          minLength: 1
          maxLength: 100
        prompt:
          type: string
          minLength: 1
          maxLength: 10000
        included:
          type: boolean
        color:
          type: string
      required:
        - value
        - prompt
        - included
        - color
      additionalProperties: false
  securitySchemes:
    auth:
      type: apiKey
      in: header
      name: authorization
      description: Voiceflow API key

````