Documents

List documents

Lists documents and spreadsheets with cursor pagination.

GET /v1/documents

Permission

The key must be granted docs.documents.read

A key without it gets 403 insufficient_scope, with the missing permission named in details.

Scoped to what the key's owner can see: a scope says what kind of thing a key may do, never which documents it reaches. There is no total count — page until has_more is false — because the underlying query does not compute one and a number that is sometimes wrong is worse than an absent one.

Query parameters

Field Type Description
type string Restrict to one kind. Uploaded files are listed at /v1/files. documentspreadsheet
folder_id string Only documents filed in this folder.
q string Free-text match against the title.
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/documents?type=spreadsheet&limit=25 \
  -H "Authorization: Bearer vak_live_..."

Response

Field Type Description
id string
type string documentspreadsheet
title string
state string activetrashed
owner_id string The workspace user who owns it, which is not necessarily the key's owner.
folder_id string Empty for a document in the root.
metadata object Whatever you stored on it.
created_at RFC 3339
updated_at RFC 3339
{
  "data": [
  {
    "id": "0192a1c2-6f3e-7a41-b8d2-5e9f0c3a7b41",
    "type": "spreadsheet",
    "title": "Q3 plan",
    "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-09T16:20:00Z"
  }
],
  "meta": { "request_id": "req_01j8z9...", "timestamp": "2026-09-02T10:00:00Z" },
  "pagination": { "next_cursor": "eyJ1aWQiOjQyMTF9", "has_more": true, "limit": 25 }
}
Worth knowing

This is how an automation finds the spreadsheet id every /v1/spreadsheets call needs. No total count: page until has_more is false.

Errors

Every failure uses the same shape, with a stable string code you can branch on. See the error reference.

Related

GET /v1/documents

Runs the real request against your own workspace. The key is used once and never stored.