List files
Lists files with cursor pagination, filterable by folder and content type.
GET
/v1/files
Permission
The key must be granted files.readdocs.documents.read
A key without it gets 403 insufficient_scope, with the missing permission named in details.
Uploaded files only. Documents and spreadsheets are listed at /v1/documents.
Query parameters
| Field | Type | Description |
|---|---|---|
folder_id |
string | Only files in this folder. |
q |
string | Free-text match against the name. |
trashed |
boolean |
true lists the trash instead.
Defaults to false
|
limit |
integer |
1 to 200.
Defaults to 50
|
cursor |
string | From the previous page's next_cursor. Opaque. |
Request
curl https://api.veruapis.com/v1/files?folder_id=0192f001-0000-7a41-b8d2-5e9f0c3a7b41&limit=25 \
-H "Authorization: Bearer vak_live_..."
Response
| Field | Type | Description |
|---|---|---|
id |
string | |
type |
string |
file
|
title |
string | The display name. |
filename |
string | The name it was uploaded under. |
mime_type |
string | Sniffed from the bytes when it was stored, not taken from what the uploader declared. |
size_bytes |
integer | |
state |
string |
activetrashed
|
owner_id |
string | |
folder_id |
string | Empty for a file in the root. |
created_at |
RFC 3339 | |
updated_at |
RFC 3339 |
{
"data": [
{
"id": "0192a1c2-6f3e-7a41-b8d2-5e9f0c3a7b41",
"type": "file",
"title": "q3-report.pdf",
"filename": "q3-report.pdf",
"mime_type": "application/pdf",
"size_bytes": 1048576,
"state": "active",
"owner_id": "01918e4b-7c2e-7f11-b4a9-0242ac130003",
"folder_id": "0192f001-0000-7a41-b8d2-5e9f0c3a7b41",
"created_at": "2026-09-01T10:00:00Z",
"updated_at": "2026-09-01T10:00:00Z"
}
],
"meta": { "request_id": "req_01j8z9...", "timestamp": "2026-09-02T10:00:00Z" },
"pagination": { "next_cursor": "eyJ1aWQiOjQyMTF9", "has_more": true, "limit": 25 }
}
Worth knowing
Uploaded files only. Documents and spreadsheets live at /v1/documents, because automating a drive and automating a report are different jobs and one collection returning both would make every listing start with a filter.
Errors
Every failure uses the same shape, with a stable string code you can branch on. See the error reference.
Related
- DELETE Abort an upload
- POST Complete an upload
- POST Create a folder
- POST Start an upload
- DELETE Delete a file
- DELETE Delete a folder
- GET Download a file
- GET Get file metadata
- GET Get upload status
- GET List folders
- GET List file permissions
- POST Share a file
- DELETE Revoke file access
- PATCH Rename or move a file
- PATCH Rename or move a folder
- PUT Upload a part