# List your files

`GET https://api.mailmasker.org/api/v1/drive/files`

The files in one folder, or at the top level, newest first.

- Who can use it: Any signed-in account
- Area: Drive
- Answers 200 OK when it works
- Page: https://developer.mailmasker.org/drive-list-files

Only the files directly in that folder; its subfolders come from List your folders. Without `folder_id` you get the files at the top level, not every file you have. Files in Trash are left out.

## Parameters

| Name | In | Required | What it is | Example |
|---|---|---|---|---|
| `folder_id` | query | no | The folder to list. Leave it out for the top level. |  |

## Good to know

- A folder that isn't yours, or doesn't exist, answers 404.

## Examples

cURL:

```bash
curl -s 'https://api.mailmasker.org/api/v1/drive/files' \
  -H "Authorization: Bearer $TOKEN"
```

Perl:

```perl
use Mojo::Base -strict;
use Mojo::UserAgent;

my $ua  = Mojo::UserAgent->new;
my $res = $ua->get('https://api.mailmasker.org/api/v1/drive/files',
    { Authorization => "Bearer $ENV{TOKEN}" })->result;
die $res->code, ' ', ($res->json('/error') // $res->message), "\n" unless $res->is_success;
print $res->body, "\n";
```

homelab-cli:

```bash
homelab-cli drive list
```

## Response

200 OK:

```json
[
  {
    "id": 42,
    "filename": "notes.txt",
    "size_bytes": 1532,
    "mime_type": "text/plain",
    "uploaded_at": "2026-11-03 21:42:10.123456-06",
    "folder_id": null
  },
  {
    "id": 41,
    "filename": "receipt.pdf",
    "size_bytes": 84210,
    "mime_type": "application/pdf",
    "uploaded_at": "2026-11-02 09:15:44.551203-06",
    "folder_id": null
  }
]
```
