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

# Get recordings

> Get recordings with optional filtering and pagination

Returns a paginated list of recordings visible to the authenticated user. Admins and coaches see recordings across their organization and teams; regular users see their own recordings.

## Pagination

Use `limit` (default 100, max 100) and the `cursor` from the previous response to walk pages. The cursor is opaque — pass it back unchanged.

## Common filters

| Parameter                           | Use                                                         |
| ----------------------------------- | ----------------------------------------------------------- |
| `organizationId`                    | Scope to one organization                                   |
| `teamId`                            | One or more team IDs (comma-separated)                      |
| `conversationType`                  | Filter by conversation type name(s), comma-separated        |
| `result`                            | `closed`, `not closed`, or `in progress`                    |
| `dateCreated:gt` / `dateCreated:lt` | ISO 8601 UTC window on recording creation                   |
| `crmLinkStatus`                     | `unlinked` — recordings with no confirmed CRM customer link |
| `orderBy` / `orderDirection`        | Sort by any filterable field (`asc` or `desc`)              |

## Optional enrichments

| Flag                       | Adds                              |
| -------------------------- | --------------------------------- |
| `showCrmCustomer=true`     | `crmCustomer` block per recording |
| `showFollowups=true`       | `followups` array per recording   |
| `showEvaluationScore=true` | Evaluation score per recording    |

## Related endpoints

For full recording payloads (summary, entity extractions, signed video URL), use [Get recording details](/api-references/get-recording-details). For org-wide bulk sync with CRM link IDs, see the org-scoped [Get recordings](/api-references/get-recordings) endpoint. To list followups across recordings, see [Get followups](/api-references/get-followups).


## OpenAPI

````yaml specs/openapi-internalApi.json get /v1/core/recordings
openapi: 3.0.0
info:
  version: 1.0.0
  title: Swagger API
servers:
  - url: https://api.siro.ai/
    description: Siro API Gateway
security: []
externalDocs:
  description: View the raw OpenAPI Specification in JSON format
  url: /swagger.json
paths:
  /v1/core/recordings:
    get:
      summary: Get recordings
      description: Get recordings with optional filtering and pagination
      parameters:
        - schema:
            type: string
            description: Number of results to return per page (default is 100, max is 100)
          required: false
          description: Number of results to return per page (default is 100, max is 100)
          name: limit
          in: query
        - schema:
            type: string
            description: >-
              Filter by conversation type name(s), e.g. "My Best Convo".
              Multiple types can be specified as comma-separated values
          required: false
          description: >-
            Filter by conversation type name(s), e.g. "My Best Convo". Multiple
            types can be specified as comma-separated values
          name: conversationType
          in: query
        - schema:
            anyOf:
              - type: string
              - type: string
                enum:
                  - closed
                  - not closed
                  - in progress
            description: Result of the recording (e.g., closed, not closed).
          required: false
          description: Result of the recording (e.g., closed, not closed).
          name: result
          in: query
        - schema:
            type: string
            description: Filter by organization ID
          required: false
          description: Filter by organization ID
          name: organizationId
          in: query
        - schema:
            type: string
            description: >-
              Filter by team ID(s). Multiple teams can be specified as
              comma-separated values
          required: false
          description: >-
            Filter by team ID(s). Multiple teams can be specified as
            comma-separated values
          name: teamId
          in: query
        - schema:
            type: string
            description: >-
              Return results created after the given date. Format: ISO 8601
              timestamp (YYYY-MM-DDTHH:mm:ss.sssZ)
          required: false
          description: >-
            Return results created after the given date. Format: ISO 8601
            timestamp (YYYY-MM-DDTHH:mm:ss.sssZ)
          name: dateCreated:gt
          in: query
        - schema:
            type: string
            description: >-
              Return results created before the given date. Format: ISO 8601
              timestamp (YYYY-MM-DDTHH:mm:ss.sssZ)
          required: false
          description: >-
            Return results created before the given date. Format: ISO 8601
            timestamp (YYYY-MM-DDTHH:mm:ss.sssZ)
          name: dateCreated:lt
          in: query
        - schema:
            type: string
            description: >-
              Field to order results by. It is possible to order by any
              filterable field.
          required: false
          description: >-
            Field to order results by. It is possible to order by any filterable
            field.
          name: orderBy
          in: query
        - schema:
            type: string
            enum:
              - asc
              - desc
            description: 'Order direction: "asc" or "desc"'
          required: false
          description: 'Order direction: "asc" or "desc"'
          name: orderDirection
          in: query
        - schema:
            type: string
            description: Cursor for pagination
          required: false
          description: Cursor for pagination
          name: cursor
          in: query
        - schema:
            type: string
            enum:
              - unlinked
            description: >-
              Filter by CRM link status: "unlinked" finds recordings with no
              definitively linked opportunity or engagement that is linked to a
              customer (account/contact/lead)
          required: false
          description: >-
            Filter by CRM link status: "unlinked" finds recordings with no
            definitively linked opportunity or engagement that is linked to a
            customer (account/contact/lead)
          name: crmLinkStatus
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: Whether to include CRM customer data for each recording
          required: false
          description: Whether to include CRM customer data for each recording
          name: showCrmCustomer
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: Whether to include evaluationScore for each recording (true/false)
          required: false
          description: Whether to include evaluationScore for each recording (true/false)
          name: showEvaluationScore
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: Whether to include followups for each recording
          required: false
          description: Whether to include followups for each recording
          name: showFollowups
          in: query
      responses:
        '200':
          description: Get recordings
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Unique identifier for the recording.
                        repFirstName:
                          type: string
                          description: First name of the representative.
                        repLastName:
                          type: string
                          description: Last name of the representative.
                        dateCreated:
                          type: string
                          description: When the recording was created.
                        durationInMilliseconds:
                          type: number
                          description: Duration of the recording in milliseconds.
                        result:
                          anyOf:
                            - type: string
                            - type: string
                              enum:
                                - closed
                                - not closed
                                - in progress
                          description: Result of the recording (e.g., closed, not closed).
                        title:
                          type: string
                          description: Title of the recording.
                        isPrivate:
                          type: boolean
                          description: Whether the recording is private.
                        userId:
                          type: string
                          description: ID of the user who created the recording.
                        discoverable:
                          type: boolean
                          description: Whether the recording is discoverable.
                        isVideo:
                          type: boolean
                          description: Whether the recording is a video.
                        trigger:
                          type: string
                          description: Recording trigger
                          enum:
                            - button-press
                            - deeplink
                            - modern-deeplink
                            - mobile-sdk
                        followups:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              score:
                                type: number
                        crmCustomer:
                          type: object
                          properties:
                            id:
                              type: string
                              description: Customer ID
                            name:
                              type: string
                              nullable: true
                              description: Customer name
                            crmUrl:
                              type: string
                              description: URL to this customer in the linked CRM
                            customerType:
                              type: string
                              enum:
                                - ACCOUNT
                                - LEAD
                                - OPPORTUNITY
                                - ENGAGEMENT
                                - CONTACT
                                - DMS_OPPORTUNITY
                            lastActivityAt:
                              type: string
                              nullable: true
                              description: Last activity date
                            createdAt:
                              type: string
                              format: date-time
                              description: Date the Customer record was created in Siro
                            updatedAt:
                              type: string
                              format: date-time
                              description: >-
                                Date the Customer record was last updated in
                                Siro
                            closedAt:
                              type: string
                              nullable: true
                              format: date-time
                              description: >-
                                Date the Customer was closed (applicable to
                                Opportunities)
                            emailAddress:
                              type: string
                              nullable: true
                              description: Customer email addresses
                            phoneNumber:
                              type: string
                              nullable: true
                              description: Customer phone numbers
                            externalId:
                              type: string
                              nullable: true
                              description: Customer external ID
                            amount:
                              type: number
                              nullable: true
                              description: Dollar amount associated with a Customer deal
                            disposition:
                              type: string
                              nullable: true
                              description: >-
                                Disposition for the Customer deal: "WON" |
                                "LOST" | "OPEN"
                            recordingId:
                              type: string
                              nullable: true
                              description: >-
                                ID of the most recent recording linked to this
                                customer
                            lastRecordingDate:
                              type: string
                              nullable: true
                              format: date-time
                              description: >-
                                Datetime of the most recent recording linked to
                                this customer
                            numRecordings:
                              type: number
                              nullable: true
                              description: >-
                                Total number of recordings linked to this
                                customer
                            matchingSource:
                              type: string
                              nullable: true
                              enum:
                                - DIRECT
                                - FUZZY
                                - NOT_FOUND
                              description: Source of matching
                            accountId:
                              type: string
                              nullable: true
                              description: Account ID
                            opportunityAccountName:
                              type: string
                              nullable: true
                              description: Account Name associated with the Opportunity
                            contactId:
                              type: string
                              nullable: true
                              description: Contact ID
                            opportunityContactName:
                              type: string
                              nullable: true
                              description: Contact Name associated with the Opportunity
                            opportunityId:
                              type: string
                              nullable: true
                              description: Opportunity ID
                            engagementId:
                              type: string
                              nullable: true
                              description: Engagement ID
                            opportunity:
                              type: object
                              nullable: true
                              properties:
                                id:
                                  type: string
                                externalId:
                                  type: string
                                  description: >-
                                    The ID of the opportunity in the external
                                    system (e.g. Salesforce)
                                name:
                                  type: string
                                  nullable: true
                                  description: The name of the opportunity
                                amount:
                                  type: number
                                  description: The dollar amount of the opportunity
                                closedAt:
                                  type: string
                                  description: The closure date of the opportunity
                                disposition:
                                  type: string
                                  description: '"WON" | "LOST" | "OPEN"'
                                createdAt:
                                  type: string
                                  description: The date the opportunity was created
                                updatedAt:
                                  type: string
                                  description: The date the opportunity was last updated
                                recordingId:
                                  type: string
                                  description: >-
                                    The ID of the recording associated to the
                                    opportunity
                                accountId:
                                  type: string
                                organizationId:
                                  type: string
                                account:
                                  nullable: true
                                opportunityUsers:
                                  type: array
                                  items:
                                    nullable: true
                              required:
                                - id
                                - externalId
                                - createdAt
                                - updatedAt
                                - organizationId
                              description: Opportunity
                            opportunities:
                              type: object
                              nullable: true
                              properties:
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        type: string
                                      externalId:
                                        type: string
                                        description: >-
                                          The ID of the opportunity in the
                                          external system (e.g. Salesforce)
                                      name:
                                        type: string
                                        nullable: true
                                        description: The name of the opportunity
                                      amount:
                                        type: number
                                        description: The dollar amount of the opportunity
                                      closedAt:
                                        type: string
                                        description: The closure date of the opportunity
                                      disposition:
                                        type: string
                                        description: '"WON" | "LOST" | "OPEN"'
                                      createdAt:
                                        type: string
                                        description: The date the opportunity was created
                                      updatedAt:
                                        type: string
                                        description: >-
                                          The date the opportunity was last
                                          updated
                                      recordingId:
                                        type: string
                                        description: >-
                                          The ID of the recording associated to
                                          the opportunity
                                      accountId:
                                        type: string
                                      organizationId:
                                        type: string
                                      account:
                                        nullable: true
                                      opportunityUsers:
                                        type: array
                                        items:
                                          nullable: true
                                    required:
                                      - id
                                      - externalId
                                      - createdAt
                                      - updatedAt
                                      - organizationId
                                cursor:
                                  type: string
                                  nullable: true
                              required:
                                - data
                              description: >-
                                Optional first page of related opportunities for
                                Accounts or Contacts
                            opportunityUsers:
                              type: array
                              nullable: true
                              items:
                                nullable: true
                              description: Users associated with the opportunity
                            contactAccount:
                              type: object
                              nullable: true
                              properties:
                                id:
                                  type: string
                                name:
                                  type: string
                                  nullable: true
                                  description: The name of the account
                                externalId:
                                  type: string
                                  nullable: true
                                  description: >-
                                    The ID of the account in the external system
                                    (e.g. Salesforce)
                              required:
                                - id
                              description: Contact Account
                            address:
                              type: string
                              nullable: true
                              description: Address
                            organizationId:
                              type: string
                              description: Organization ID
                            integrationConnectionId:
                              type: string
                              nullable: true
                              description: Integration Connection ID
                            integrationPlatform:
                              type: string
                              nullable: true
                              enum:
                                - MERGE
                                - SIRO_CUSTOM_INPUT
                                - SERVICE_TITAN
                                - COMPANY_CAM
                                - INGAGE
                                - LEAD_PERFECTION
                                - SPOTIO
                              description: Integration Platform
                            integrationName:
                              type: string
                              nullable: true
                              description: Integration Name
                          required:
                            - id
                            - createdAt
                            - updatedAt
                            - organizationId
                        evaluationScore:
                          type: number
                          description: Scorecard evaluation score for the recording
                        universalOutcomeLabel:
                          type: string
                          nullable: true
                          description: >-
                            Universal outcome label mapped from the custom
                            outcome label (POSITIVE, NEGATIVE, NEUTRAL)
                        extractedCustomOutcomes:
                          type: object
                          properties:
                            outcomeExtractionId:
                              type: string
                              description: ID of the OutcomeExtraction record
                              example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                            outcomes:
                              type: array
                              items:
                                type: object
                                properties:
                                  customLabel:
                                    type: string
                                    description: >-
                                      The custom outcome label as extracted from
                                      the recording
                                    example: sale_completed
                                  universalLabel:
                                    type: string
                                    nullable: true
                                    description: >-
                                      The universal outcome label this custom
                                      outcome maps to (POSITIVE, NEGATIVE,
                                      NEUTRAL). Null if the mapping is unknown
                                      (e.g. the OutcomeDefinition has been
                                      deleted).
                                    example: POSITIVE
                                  description:
                                    type: string
                                    description: >-
                                      The prompt/criteria text from the
                                      OutcomeDefinition explaining what
                                      qualifies as this outcome
                                required:
                                  - customLabel
                                  - universalLabel
                              description: >-
                                Array of custom outcome labels paired with the
                                universal outcome label they map to
                              example:
                                - customLabel: sale_completed
                                  universalLabel: POSITIVE
                                - customLabel: appointment_scheduled
                                  universalLabel: POSITIVE
                          required:
                            - outcomeExtractionId
                            - outcomes
                          description: >-
                            Extracted custom outcomes with the OutcomeExtraction
                            ID and outcome-to-universal-label pairs
                      required:
                        - id
                        - dateCreated
                  cursor:
                    type: string
                    nullable: true
                    description: Opaque cursor for pagination
                required:
                  - data
                  - cursor
        '400':
          description: Bad Request - Invalid query parameters
          content:
            text/plain:
              schema:
                type: string
        '401':
          description: Unauthorized - User not authenticated
          content:
            text/plain:
              schema:
                type: string
        '403':
          description: Forbidden - User does not have access to the organization
          content:
            text/plain:
              schema:
                type: string
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                type: string
      security:
        - SiroAuthToken: []
components:
  securitySchemes:
    SiroAuthToken:
      type: apiKey
      in: header
      name: x-siro-auth-token
      description: >-
        OAuth access token for user-scoped requests (Authorization Code or
        machine-to-machine). Send header `x-siro-auth-token:
        <oauth-access-token>`. Not an organization API key.
      x-default: <oauth-access-token>

````