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

# List Recording Imports

> Returns recording imports. Pass exactly one of `ids` or `status`.

With `ids`, the imports are returned in the order given; ids that don't exist are left out. With `status`, one page of imports in that status is returned, most recently created first. Results are paginated using a cursor: pass the `next_cursor` returned by a previous response as the `cursor` query parameter to fetch the next page. When `next_cursor` is `null`, there are no more results.



## OpenAPI

````yaml GET /recording-imports
openapi: 3.0.1
info:
  title: Alpharun API
  description: Alpharun REST API reference
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.alpharun.com/api/v1
security:
  - bearerAuth: []
paths:
  /recording-imports:
    get:
      summary: List recording imports
      description: >-
        Returns recording imports. Pass exactly one of `ids` or `status`.


        With `ids`, the imports are returned in the order given; ids that don't
        exist are left out. With `status`, one page of imports in that status is
        returned, most recently created first. Results are paginated using a
        cursor: pass the `next_cursor` returned by a previous response as the
        `cursor` query parameter to fetch the next page. When `next_cursor` is
        `null`, there are no more results.
      parameters:
        - name: ids
          in: query
          required: false
          schema:
            type: string
          description: >-
            Comma-separated recording import ids, up to 50. Cannot be combined
            with `status`.
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - pending
              - imported
              - failed
              - action_required
              - skipped
          description: >-
            Return one page of imports in this status. Cannot be combined with
            `ids`.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 100
          description: >-
            Maximum number of recording imports to return in a single response
            when filtering by `status`. Defaults to `50`. Must be between `1`
            and `100`.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            nullable: true
          description: >-
            Pagination cursor returned as `next_cursor` in a previous response.
            Omit on the first request.
      responses:
        '200':
          description: List of recording imports
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      recording_imports:
                        type: array
                        items:
                          $ref: '#/components/schemas/RecordingImport'
                      next_cursor:
                        type: string
                        nullable: true
                        description: >-
                          Cursor to pass as the `cursor` query parameter to
                          fetch the next page. `null` when there are no more
                          results, and always `null` when filtering by `ids`.
              example:
                data:
                  recording_imports:
                    - id: 9b2f6c1e-3d4a-4f7b-8c2e-1a5d7e9f0b3c
                      ext_id: call-12345
                      status: imported
                      recording_id: 5e0c8a7d-2b1f-4c3e-9d6a-8f4b2c1e7a9d
                      error: null
                      created_at: '2026-10-02T20:00:00.000Z'
                      imported_at: '2026-10-02T20:00:41.000Z'
                    - id: 0c7d2e4f-6a8b-4c1d-9e3f-2b5a7c9d1e4f
                      ext_id: call-12346
                      status: action_required
                      recording_id: null
                      error:
                        code: teammate_deactivated
                        message: Teammate is deactivated
                      created_at: '2026-10-02T20:00:00.000Z'
                      imported_at: null
                  next_cursor: null
        '400':
          description: >-
            Neither or both of `ids` and `status` passed, more than 50 ids, or
            an invalid `status`, `limit` or `cursor`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    RecordingImport:
      type: object
      required:
        - id
        - ext_id
        - status
        - recording_id
        - error
        - created_at
        - imported_at
      properties:
        id:
          type: string
          format: uuid
        ext_id:
          type: string
          nullable: true
          description: The `ext_id` you passed when creating the import, or `null`.
        status:
          type: string
          enum:
            - pending
            - imported
            - failed
            - action_required
            - skipped
          description: >-
            - `pending`: waiting to be imported, or being imported. Transient
            failures (an unreachable URL, a storage error) are retried
            automatically.

            - `imported`: the recording was created and `recording_id` is set.

            - `action_required`: the import stopped on something only you can
            fix, such as `no_routing_for_teammate`, `teammate_deactivated`,
            `analyzed_minutes_limit_reached` or `media_url_rejected`. Fix the
            cause and create a new import.

            - `failed`: the import could not complete, for example after
            exhausting its retries (`attempts_exhausted`). Contact support if it
            persists.

            - `skipped`: there is nothing to import, for example the uploaded
            audio expired before it was imported (`file_not_found`).
        recording_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            The created recording's id once `status` is `imported`, otherwise
            `null`.
        error:
          allOf:
            - $ref: '#/components/schemas/RecordingImportError'
          nullable: true
          description: >-
            Why the import is `failed`, `action_required` or `skipped`. `null`
            while `pending` and once `imported`.
        created_at:
          type: string
          format: date-time
        imported_at:
          type: string
          format: date-time
          nullable: true
          description: When the recording was created, or `null`.
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
    RecordingImportError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: A stable machine-readable code, for example `teammate_deactivated`.
        message:
          type: string
          description: A human-readable explanation.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.