Skip to main content
GET
/
v2
/
documents
/
public
curl --request GET \
  --url 'https://api-prod.usefini.com/v2/documents/public?limit=25&source=notion' \
  --header 'Authorization: Bearer fini_your_api_key'
{
  "documents": [
    {
      "id": "5d9f67a8-d853-4af4-b7ce-23ebba1245e5",
      "originalUrl": "https://www.notion.so/fini/Billing-FAQ-123456",
      "title": "Billing FAQ",
      "storageUrl": "gs://example/documents/5d9f67a8-d853-4af4-b7ce-23ebba1245e5",
      "source": "notion",
      "externalId": "123456",
      "english": true,
      "baser": false,
      "paragraphs": [
        "You can update your billing email from Settings."
      ],
      "oldParagraphs": [],
      "success": true,
      "error": "",
      "createdAt": "2026-05-22T06:05:34.221Z",
      "updatedAt": "2026-05-22T06:10:58.710Z",
      "mimeType": "text/markdown",
      "type": "page",
      "linkedJobId": "9f347ddb-1f90-43a2-ac9f-4f77f37a2c26",
      "linkedKnowledgeId": "8a4bb11a-0ef2-45df-9956-631e41e6cf16",
      "linkedOperation": "UPDATE_ARTICLE",
      "linkedReason": null,
      "linkedJobStatus": "COMPLETED"
    }
  ],
  "hasMore": false
}

Documentation Index

Fetch the complete documentation index at: https://docs.usefini.com/llms.txt

Use this file to discover all available pages before exploring further.

Returns document records in the workspace tied to your API key, ordered by updatedAt descending then externalId descending. Use it to enumerate documents, inspect ingestion status, and find document IDs to pass back to Queue ingestion.
For provider imports, see the provider import flow. For background on async ingestion, see The async model.

Headers

Authorization
string
required
Bearer token containing your Fini workspace API key. Format: Bearer fini_...

Query parameters

limit
integer
default:"50"
Maximum number of documents to return.
cursor
string
Document ID to paginate from. Use the last document’s id from the previous response to fetch the next page, or the first document’s id to fetch the previous page.
direction
string
default:"next"
Pagination direction when a cursor is supplied. Note the inverted mapping: next moves toward older documents; previous moves back toward newer ones. This is because results are sorted by updatedAt descending.
source
string
Optional document-source filter. Supported values: web, files, googledrive, zendesk, notion, confluence.
english
boolean
Optional English-processing filter.
id
string
Exact document ID filter.
title
string
Case-insensitive partial match on the document title.
url
string
Case-insensitive partial match on the original source URL.
articleId
string
Filter by linked article or knowledge node ID.
linkedOperation
string
Filter by linked knowledge operation. Supported values: ADD_ARTICLE_TO_FOLDER, CREATE_SUBFOLDER_AND_ARTICLE, UPDATE_ARTICLE, DO_NOTHING.
changed
boolean
Return only linked documents flagged as changed.
The response includes hasMore but not a nextCursor field. Use the last (or first) document’s id from the returned array as the cursor for the next call.
curl --request GET \
  --url 'https://api-prod.usefini.com/v2/documents/public?limit=25&source=notion' \
  --header 'Authorization: Bearer fini_your_api_key'

Response

documents
array
Array of document records.
hasMore
boolean
Whether more results exist beyond the current page.
{
  "documents": [
    {
      "id": "5d9f67a8-d853-4af4-b7ce-23ebba1245e5",
      "originalUrl": "https://www.notion.so/fini/Billing-FAQ-123456",
      "title": "Billing FAQ",
      "storageUrl": "gs://example/documents/5d9f67a8-d853-4af4-b7ce-23ebba1245e5",
      "source": "notion",
      "externalId": "123456",
      "english": true,
      "baser": false,
      "paragraphs": [
        "You can update your billing email from Settings."
      ],
      "oldParagraphs": [],
      "success": true,
      "error": "",
      "createdAt": "2026-05-22T06:05:34.221Z",
      "updatedAt": "2026-05-22T06:10:58.710Z",
      "mimeType": "text/markdown",
      "type": "page",
      "linkedJobId": "9f347ddb-1f90-43a2-ac9f-4f77f37a2c26",
      "linkedKnowledgeId": "8a4bb11a-0ef2-45df-9956-631e41e6cf16",
      "linkedOperation": "UPDATE_ARTICLE",
      "linkedReason": null,
      "linkedJobStatus": "COMPLETED"
    }
  ],
  "hasMore": false
}

Pagination

Cursor pagination uses document IDs directly:
  • pass the last document’s id from the previous response with direction=next to move toward older documents
  • pass the first document’s id with direction=previous to move back toward newer documents
If you omit cursor, the API starts from the most recently updated documents.

Errors

Query parameters are invalid. Common causes: unsupported source value, unsupported linkedOperation value, malformed UUID in id or articleId.
The API key is missing, malformed, revoked, or invalid. Confirm Authorization: Bearer fini_... with the full key.
The API key doesn’t include the read scope, or it’s scoped to a different workspace.
Either the workspace has no documents matching your filters, or no documents at all. Drop filters one at a time to confirm which one is excluding results.