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

# Search transcriptions

> Searches call transcriptions for the given keywords or phrases and returns the matching CDRs with their transcriptions.



## OpenAPI

````yaml https://wavix.github.io/wavix-openapi/wavix-api.yaml post /v1/cdrs
openapi: 3.1.0
info:
  title: Wavix APIs
  description: >-
    Wavix provides robust APIs that let you integrate voice and text messaging
    features directly into your app. Send text, place calls, and access detailed
    reports  programmatically.
  termsOfService: https://wavix.com/terms-and-conditions
  license:
    name: MIT
    identifier: MIT
  contact:
    name: Wavix
    url: https://wavix.com
    email: support@wavix.com
  version: '1.0'
servers:
  - url: https://api.wavix.com
    description: https://api.wavix.com
    variables: {}
security:
  - bearerAuth: []
tags:
  - name: SIP trunks
    description: SIP trunks
  - name: Buy
    description: Numbers
  - name: Cart
    description: Numbers
  - name: My numbers
    description: Numbers
  - name: Billing
    description: Billing, transactions, and invoices
  - name: Profile
    description: Account profile and customer information
  - name: CDRs
    description: Call detail records and call history
  - name: Speech Analytics
    description: Call transcription and speech analytics
  - name: SMS and MMS
    description: Messaging
  - name: Number Validator
    description: Phone number validation
  - name: Link shortener
    description: Short link and click metrics
  - name: 2FA
    description: Two-factor authentication
  - name: 10DLC
    description: 10DLC Campaigns and Brands
  - name: API Keys
    description: API key management
  - name: Call webhooks
    description: Webhook configuration for call events
  - name: Call control
    description: Programmable Voice
  - name: Call streaming
    description: Real-time call audio streaming over WebSocket
  - name: Call recording
    description: Call recording
  - name: Sub-accounts
    description: Sub-account management
  - name: Voice campaigns
    description: Outbound voice campaigns
  - name: Wavix Embeddable
    description: WebRTC embeddable widget
paths:
  /v1/cdrs:
    post:
      tags:
        - CDRs
      summary: Search transcriptions
      description: >-
        Searches call transcriptions for the given keywords or phrases and
        returns the matching CDRs with their transcriptions.
      operationId: cdrs_search
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CDRSearchRequest'
        required: true
      responses:
        '200':
          description: Returns a paginated list of matching CDRs with their transcriptions.
          headers: {}
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CDRTranscriptionSearchResponse'
              examples:
                success:
                  summary: Successful response
                  value:
                    items:
                      - answered_by: human
                        date: '2023-08-21T06:43:36.000Z'
                        from: '14302287001'
                        to: '33170363950'
                        disposition: answered
                        duration: 6
                        destination: France
                        per_minute: '0.027'
                        charge: example
                        sip_trunk: '32882'
                        forward_fee: '0.0'
                        uuid: 99df5ffd-962a-410f-bcce-d08f1f7f328c
                        call_id: 99df5ffd-962a-410f-bcce-d08f1f7f328c
                        parent_uuid: 99df5ffd-962a-410f-bcce-d08f1f7f328c
                        transcription:
                          uuid: 40d6f322-048d-490b-95c7-4fc5c76a74db
                          url: >-
                            https://api.wavix.com/v1/cdrs/40d6f322-048d-490b-95c7-4fc5c76a74db/transcription?appid=secret
                    pagination:
                      current_page: 2
                      per_page: 25
                      total: 101
                      total_pages: 5
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '422':
          $ref: '#/components/responses/ValidationErrorResponse'
      deprecated: false
      security:
        - bearerAuth:
            - calls:read
components:
  schemas:
    CDRSearchRequest:
      title: CDRSearchRequest
      required:
        - type
        - from
        - to
        - page
        - per_page
      type: object
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
            - placed
            - received
          description: >-
            Filters by call type. One of `placed` (outbound calls dialed by the
            account) or `received` (inbound calls answered by the account).
          example: placed
        from:
          type: string
          format: date
          description: Start date for call search in `YYYY-MM-DD` format.
          example: '2023-08-01'
        to:
          type: string
          format: date
          description: End date for call search in `YYYY-MM-DD` format.
          example: '2023-08-31'
        from_search:
          type: string
          description: >-
            Originating phone number to filter results. Accepts full or partial
            number.
          example: '4478012'
        to_search:
          type: string
          description: >-
            Destination phone number to filter results. Accepts full or partial
            number.
          example: '44206723'
        sip_trunk:
          type: string
          description: SIP trunk login to filter outbound calls. Ignored for inbound calls.
          example: '87095'
        min_duration:
          type: integer
          format: int32
          description: Minimum call duration in seconds.
          example: 10
        transcription:
          $ref: '#/components/schemas/TranscriptionFilter'
        uuid:
          type: string
          description: Call ID.
          example: 99df5ffd-962a-410f-bcce-d08f1f7f328c
        disposition:
          allOf:
            - $ref: '#/components/schemas/CallDisposition'
            - description: >
                Call disposition to filter results.  If omitted, returns only
                answered
                 calls. Allowed values: `answered`, `busy`, `rejected`,
                  `failed`, `all`. Use `all` to return calls
                   regardless of their disposition.
        page:
          type: integer
          format: int32
          description: Page number to retrieve.
          example: 1
        per_page:
          type: integer
          format: int32
          description: Number of records per page.
          example: 50
    CDRTranscriptionSearchResponse:
      title: CDRTranscriptionSearchResponse
      required:
        - items
        - pagination
      type: object
      additionalProperties: false
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/CDRWithTranscription'
          description: List of CDRs with transcription links.
        pagination:
          $ref: '#/components/schemas/Pagination'
    TranscriptionFilter:
      title: TranscriptionFilter
      required:
        - agent
        - client
        - any
      type: object
      additionalProperties: false
      properties:
        agent:
          type: object
          description: Search in an agent's spoken words and phrases
          properties:
            must:
              type: array
              items:
                type: string
                example: Hello
              description: >-
                Only calls with transcription that includes all of the specified
                keywords and phrases are returned. The listed keywords and
                phrases are combined using logical AND
              example:
                - Hello
                - Thank you
            match:
              type: array
              items:
                type: string
                example: Nope
              description: >-
                Only calls with transcription that includes any of the specified
                keywords and phrases are returned. The listed keywords and
                phrases are combined using logical OR
              example:
                - Nope
                - Maybe
            exclude:
              type: array
              items:
                type: string
                example: Richard
              description: >-
                Only calls with transcription that does not include any of the
                specified keywords and phrases are returned. The listed keywords
                and phrases are combined using logical OR
              example:
                - Richard
                - Issue resolved
        client:
          type: object
          description: Search in an customer's spoken words and phrases
          properties:
            must:
              type: array
              items:
                type: string
                example: Hello
              description: >-
                Only calls with transcription that includes all of the specified
                keywords and phrases are returned. The listed keywords and
                phrases are combined using logical AND
              example:
                - Hello
                - Thank you
            match:
              type: array
              items:
                type: string
                example: Nope
              description: >-
                Only calls with transcription that includes any of the specified
                keywords and phrases are returned. The listed keywords and
                phrases are combined using logical OR
              example:
                - Nope
                - Maybe
            exclude:
              type: array
              items:
                type: string
                example: Richard
              description: >-
                Only calls with transcription that does not include any of the
                specified keywords and phrases are returned. The listed keywords
                and phrases are combined using logical OR
              example:
                - Richard
                - Issue resolved
        any:
          type: object
          description: Search in both speakers' spoken words and phrases
          properties:
            must:
              type: array
              items:
                type: string
                example: Hello
              description: >-
                Only calls with transcription that includes all of the specified
                keywords and phrases are returned. The listed keywords and
                phrases are combined using logical AND
              example:
                - Hello
                - Thank you
            match:
              type: array
              items:
                type: string
                example: Nope
              description: >-
                Only calls with transcription that includes any of the specified
                keywords and phrases are returned. The listed keywords and
                phrases are combined using logical OR
              example:
                - Nope
                - Maybe
            exclude:
              type: array
              items:
                type: string
                example: Richard
              description: >-
                Only calls with transcription that does not include any of the
                specified keywords and phrases are returned. The listed keywords
                and phrases are combined using logical OR
              example:
                - Richard
                - Issue resolved
    CallDisposition:
      title: CallDisposition
      enum:
        - answered
        - noanswer
        - busy
        - failed
        - all
      type: string
      description: >-
        Final disposition of the call. One of `answered` (the called party
        answered), `noanswer` (no answer within the ring timeout), `busy` (the
        called party was busy), `failed` (the call could not be routed), or
        `all` (matches any disposition when used as a filter).
    CDRWithTranscription:
      title: CDRWithTranscription
      required:
        - date
        - from
        - to
        - disposition
        - duration
        - destination
        - per_minute
        - charge
        - uuid
        - call_id
        - transcription
      type: object
      additionalProperties: false
      properties:
        answered_by:
          type:
            - string
            - 'null'
          description: Who answered the call. Allowed values are `human`, `machine`.
          example: human
        date:
          type: string
          description: Date and time of the call
          format: date-time
          example: '2023-08-21T06:43:36.000Z'
        from:
          type: string
          description: ANI/From attribute of the call
          example: '14302287001'
        to:
          type: string
          description: DNIS/To attribute of the call
          example: '33170363950'
        disposition:
          $ref: '#/components/schemas/CallDisposition'
        duration:
          type: integer
          description: Duration of the call, in seconds
          format: int32
          example: 6
        destination:
          type: string
          description: >-
            Destination of the call. For outbound calls, it contains the country
            name and, optionally, a mobile carrier or city name. For inbound
            calls, the destination includes the user-defined SIP trunk name, SIP
            URI, or PSTN number that the call is forwarded to.
          example: France
        per_minute:
          type: string
          description: Price per minute, in USD
          example: '0.027'
        charge:
          type: string
          description: Total charge for the call, in USD
        sip_trunk:
          type:
            - string
            - 'null'
          description: System-generated login of a SIP trunk. For `placed` calls only.
          example: '32882'
        forward_fee:
          type: string
          description: >-
            PSTN forwarding price, in USD. For `received` calls only when
            forwarded to PSTN.
          example: '0.0'
        uuid:
          type: string
          deprecated: true
          description: Call ID. Deprecated — use `call_id` instead.
          example: 99df5ffd-962a-410f-bcce-d08f1f7f328c
        call_id:
          type: string
          description: Call ID. Alias of `uuid`.
          example: 99df5ffd-962a-410f-bcce-d08f1f7f328c
        parent_uuid:
          type:
            - string
            - 'null'
          deprecated: true
          description: Parent call ID. Deprecated — use `parent_call_id` instead.
          example: 99df5ffd-962a-410f-bcce-d08f1f7f328c
        parent_call_id:
          type:
            - string
            - 'null'
          description: Parent call ID. Alias of `parent_uuid`.
          example: 99df5ffd-962a-410f-bcce-d08f1f7f328c
        transcription:
          $ref: '#/components/schemas/TranscriptionReference'
      description: A CDR of a single call with call transcription
    Pagination:
      title: Pagination
      required:
        - current_page
        - per_page
        - total
        - total_pages
      type: object
      additionalProperties: false
      properties:
        current_page:
          type: integer
          description: Current page number.
          format: int32
          example: 2
        per_page:
          type: integer
          description: Number of records per page.
          format: int32
          example: 25
        total:
          type: integer
          description: Total number of records.
          format: int32
          example: 101
        total_pages:
          type: integer
          description: Total number of pages.
          format: int32
          example: 5
    ForbiddenErrorResponse:
      title: ForbiddenErrorResponse
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: Human-readable description of why access is forbidden.
          example: The service is not provisioned for your account.
    ValidationErrorResponse:
      title: ValidationErrorResponse
      type: object
      properties:
        success:
          type: boolean
          description: >-
            Indicates whether the request was successful. Always `false` for
            this error.
          example: false
        message:
          type: string
          description: >-
            Human-readable description naming the missing or invalid request
            parameter.
          example: Missing or invalid parameter <param_name>
    TranscriptionReference:
      title: TranscriptionReference
      required:
        - uuid
        - url
      type:
        - object
        - 'null'
      additionalProperties: false
      properties:
        uuid:
          type: string
          description: Unique identifier of the call transcription.
          example: 40d6f322-048d-490b-95c7-4fc5c76a74db
        url:
          type: string
          description: URL for retrieving the full call transcription.
          example: >-
            https://api.wavix.com/v1/cdrs/40d6f322-048d-490b-95c7-4fc5c76a74db/transcription?appid=secret
  responses:
    ForbiddenErrorResponse:
      description: Request failed. The feature is disabled for your account.
      headers: {}
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenErrorResponse'
    ValidationErrorResponse:
      description: Validation error
      headers: {}
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Wavix API key. Pass as `Authorization: Bearer <api_key>`. Keys support
        per-resource scopes (none / read / write). See [Restricted keys and
        scopes](https://docs.wavix.com/api-reference/authentication#restricted-keys-and-scopes).

````