---
updatedAt: 2026-08-14T14:35:42.000Z
agentTools:
  projectIndex: https://developers.fellow.ai/llms.txt
---

# List Uploads

List API-uploaded recordings with their import status, with optional filters and pagination.

Use this endpoint to view recording uploads that were created through the Upload Recording flow. It returns a list of uploads with their current processing state so you can monitor progress across multiple recordings in one place. Use it to quickly check what’s pending, completed, or failed without looking up each upload individually.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Fellow Developer API",
    "version": "1.0.3",
    "description": "Create custom integrations and workflows with Fellow's meeting data"
  },
  "paths": {
    "/api/v1/recordings/upload/list": {
      "post": {
        "operationId": "apps_developer_api_api_list_uploads",
        "summary": "List Uploads",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecordingUploadsListResponse"
                }
              }
            }
          }
        },
        "description": "List API-uploaded recordings with their import status, with optional filters and pagination.",
        "tags": [
          "Recordings"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetUploadsRequest"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "DeveloperAPIKeyAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "PageInfo": {
        "description": "Information about a page returned in a paginated response.",
        "properties": {
          "cursor": {
            "title": "Cursor",
            "type": [
              "string",
              "null"
            ]
          },
          "page_size": {
            "title": "Page Size",
            "type": "integer"
          }
        },
        "required": [
          "page_size"
        ],
        "title": "PageInfo",
        "type": "object"
      },
      "PaginatedResponse_RecordingUpload_": {
        "properties": {
          "page_info": {
            "$ref": "#/components/schemas/PageInfo"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/RecordingUpload"
            },
            "title": "Data",
            "type": "array"
          }
        },
        "required": [
          "page_info",
          "data"
        ],
        "title": "PaginatedResponse[RecordingUpload]",
        "type": "object"
      },
      "RecordingUpload": {
        "description": "The upload_api response: a recording's API-import identity and status, nothing else.\n\nDeliberately omits the full Recording payload (transcript, recaps, media URL, calendar\nmetadata) — this surface only reports what an API-upload client needs to poll an import\nto completion. The recording's id is exposed as `recording_id` to match the submit\nendpoint (POST /recordings/upload), which returns the same key.",
        "properties": {
          "recording_id": {
            "title": "Recording Id",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Status",
                "nullable": true
              }
            ]
          },
          "failure_reason": {
            "title": "Failure Reason",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "RecordingUpload",
        "type": "object"
      },
      "RecordingUploadsListResponse": {
        "description": "Response containing a paginated list of API-uploaded recordings with import status.",
        "properties": {
          "uploads": {
            "$ref": "#/components/schemas/PaginatedResponse_RecordingUpload_"
          }
        },
        "required": [
          "uploads"
        ],
        "title": "RecordingUploadsListResponse",
        "type": "object"
      },
      "Status": {
        "enum": [
          "FAILED",
          "PENDING",
          "SUCCESS"
        ],
        "title": "Status",
        "type": "string"
      },
      "GetUploadsRequest": {
        "description": "Request body for listing API-uploaded recordings with optional filters and pagination.",
        "properties": {
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PaginatedRequestParams",
                "nullable": true
              }
            ]
          },
          "filters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UploadFilters",
                "nullable": true
              }
            ]
          }
        },
        "title": "GetUploadsRequest",
        "type": "object"
      },
      "PaginatedRequestParams": {
        "description": "Parameters sent in a request to paginate a queryset.",
        "properties": {
          "cursor": {
            "title": "Cursor",
            "type": [
              "string",
              "null"
            ]
          },
          "page_size": {
            "default": 20,
            "exclusiveMinimum": 0,
            "maximum": 50,
            "minimum": 1,
            "title": "Page Size",
            "type": "integer"
          }
        },
        "title": "PaginatedRequestParams",
        "type": "object"
      },
      "UploadFilters": {
        "properties": {
          "event_guid": {
            "title": "Event Guid",
            "type": [
              "string",
              "null"
            ]
          },
          "created_at_start": {
            "title": "Created At Start",
            "type": [
              "string",
              "null"
            ]
          },
          "created_at_end": {
            "title": "Created At End",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_at_start": {
            "title": "Updated At Start",
            "type": [
              "string",
              "null"
            ]
          },
          "updated_at_end": {
            "title": "Updated At End",
            "type": [
              "string",
              "null"
            ]
          },
          "channel_id": {
            "title": "Channel Id",
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "title": "Title",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "title": "Status",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "title": "UploadFilters",
        "type": "object"
      }
    },
    "securitySchemes": {
      "DeveloperAPIKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-KEY"
      }
    }
  },
  "servers": [
    {
      "url": "https://{subdomain}.fellow.app",
      "description": "Fellow",
      "variables": {
        "subdomain": {
          "default": "your-fellow-subdomain",
          "description": "The subdomain for your Fellow workspace"
        }
      }
    }
  ],
  "tags": [
    {
      "name": "Recordings",
      "description": "Access and manage meeting recordings. Retrieve individual recordings, list recordings with filters and pagination, or delete recordings (privileged access required)."
    }
  ]
}
```