Skip to main content
Nordvec Docs

List and retrieve documents

Page through your documents with cursor pagination, filter and sort them, and fetch one or many by id.

  • View as Markdown
  • View context pack

External assistants

These open a third-party AI service outside the EU. The link passes it this page's address, and anything you ask there is processed by that provider under its own terms.

Where search ranks documents by relevance to a query, listing walks your whole corpus in order. Use it to sync, audit, or build your own index over what Nordvec holds. Listing returns metadata only, no document content.

List with cursor pagination

/documents/list returns a page of documents plus an opaque nextCursor. Pass that cursor back to get the next page, and stop when hasMore is false.

curl "https://nordvec.com/api/v1/documents/list?limit=50" \
  -H "Authorization: Bearer $NORDVEC_API_KEY"
{
  "items": [
    { "id": "…", "title": "Q3 Financial Report", "status": "indexed", "datasource": "finance", "created_at": "2026-04-01T10:00:00Z" }
  ],
  "nextCursor": "eyJrIjoi…",
  "hasMore": true
}

Signed in, you can list the first page of your own documents from here:

GET /api/v1/documents/list?limit=5

Runs as you, with the session you are signed in with, and returns only what you can see. This page never handles a key.

To walk every page, loop until hasMore is false, passing the previous response's nextCursor each time, with the same sort and direction:

curl "https://nordvec.com/api/v1/documents/list?limit=50&cursor=eyJrIjoi…" \
  -H "Authorization: Bearer $NORDVEC_API_KEY"

The cursor is opaque, do not parse or construct it. Pass back exactly what the previous response returned. An invalid cursor, or one from a different sort order, is rejected.

Filter and sort

All filters are optional and combine with AND. Sorting defaults to newest first.

FieldTypeNotes
limitinteger1 to 200 (default 50).
cursorstringOpaque cursor from the previous page.
datasourcestringRestrict to one datasource by its slug (up to 200 characters).
statusenumindexed, processing, or failed.
sourceProviderstringRestrict to one connector provider, for example google or slack.
contentTypestringRestrict to one knowledge type, for example policy or runbook.
createdAfter / createdBeforestringISO 8601 timestamps with an offset, both inclusive.
sortenumcreatedAt (default), updatedAt, or title.
directionenumdesc (default) or asc.
curl "https://nordvec.com/api/v1/documents/list?status=indexed&datasource=finance&sort=updatedAt&direction=desc&limit=100" \
  -H "Authorization: Bearer $NORDVEC_API_KEY"

Which sort to walk with

  • A complete, one-shot enumeration: sort=createdAt. The creation time never changes, so every document appears exactly once.
  • Incremental catch-up from a watermark: sort=updatedAt&direction=asc. A document updated while you walk can appear twice, so upsert by id.
  • Display order: updatedAt or title descending. A document updated between two pages can move past the cursor and be skipped, so do not use it to enumerate.

Fetch a single document

/documents/{id} returns one document's metadata, processing state and text. A long text can be read in windows: contentOffset and contentMaxChars (counted in UTF-16 code units) select one window, and content_range reports the window and the full length, so keep reading until offset + length reaches total.

curl "https://nordvec.com/api/v1/documents/DOCUMENT_ID?contentMaxChars=100000" \
  -H "Authorization: Bearer $NORDVEC_API_KEY"

Fetch many at once

To resolve up to 200 ids in one call, POST them to /documents/batch instead of making one request per id. The batch returns metadata and processing state; content is always null, so read the text with the single-document call.

curl https://nordvec.com/api/v1/documents/batch \
  -H "Authorization: Bearer $NORDVEC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "ids": ["DOCUMENT_ID_1", "DOCUMENT_ID_2"] }'

Listing, like search, only ever returns documents the caller is allowed to see. status tells you where a document is in processing: processing while it is still being indexed, failed when it could not be. See Documents & search for the lifecycle.

Next steps

Was this page helpful?

On this page