# List files with optional app and action filters

**Documentation:** /reference/api-reference/files/getFilesList

Retrieves a list of files associated with the authenticated project. Results can be filtered by toolkit and tool slugs.

---

## GET `/api/v3/files/list`

**Endpoint:** `https://backend.composio.dev/api/v3/files/list`

**Summary:** List files with optional app and action filters

Retrieves a list of files associated with the authenticated project. Results can be filtered by toolkit and tool slugs.

### Authentication

**ApiKeyAuth** - API Key in `header` header `x-api-key` OR **UserApiKeyAuth** - API Key in `header` header `x-user-api-key`

### Query Parameters

- `toolkit_slug` (string): Filter files by app slug. Example: "file-converter"
- `tool_slug` (string): Filter files by action slug. Example: "convert-to-pdf"
- `limit` (number,null): Number of items per page, max allowed is 1000
- `cursor` (string): Cursor for pagination. The cursor is a base64 encoded string of the page and limit. The page is the page number and the limit is the number of items per page. The cursor is used to paginate through the items. The cursor is not required for the first page.

### Responses

#### 200 - Successfully retrieved files

**Response Schema:**

- `items` (array<object>) *(required)*
  - Array items:
    - `toolkit_slug` (string) *(required)*: Slug of the app where this file belongs to. Example: "file-converter"
    - `tool_slug` (string) *(required)*: Slug of the action where this file belongs to. Example: "convert-to-pdf"
    - `filename` (string) *(required)*: Name of the original file. Example: "document.docx"
    - `mimetype` (string) *(required)*: Mime type of the original file. Example: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
    - `md5` (string) *(required)*: MD5 hash of the file for integrity verification. Example: "d41d8cd98f00b204e9800998ecf8427e"
- `next_cursor` (string,null)
- `total_pages` (number) *(required)*
- `current_page` (number) *(required)*
- `total_items` (number) *(required)*

**Example Response:**

```json
{
  "items": [
    {
      "toolkit_slug": "string",
      "tool_slug": "string",
      "filename": "string",
      "mimetype": "string",
      "md5": "string"
    }
  ],
  "next_cursor": null,
  "total_pages": 1,
  "current_page": 1,
  "total_items": 1
}
```

#### 400 - Bad request

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 401 - Unauthorized

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 404 - Not found

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 500 - Internal server error

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

### Example cURL Request

```bash
curl -X GET "https://backend.composio.dev/api/v3/files/list" \
  -H "x-api-key: YOUR_API_KEY"
```