Knowledge
List sources
Paginate through every source record in the workspace, with filters on source type, title, URL, linked article, and linked operation.
GET
Returns source records in the workspace tied to your API key, ordered by
updatedAt descending then externalId descending. Use it to enumerate sources, inspect ingestion status, and find source IDs to pass back to Ingest sources.
The response field is still named
documents because that is the current API contract. On this page, each entry is described as a source record.Headers
Bearer token containing your Fini workspace API key. Format:
Bearer fini_...Query parameters
Maximum number of source records to return.
Source ID to paginate from. Use the last source’s
id from the previous response to fetch the next page, or the first source’s id to fetch the previous page.Pagination direction when a cursor is supplied. Note the inverted mapping:
next moves toward older sources; previous moves back toward newer ones. This is because results are sorted by updatedAt descending.Optional source-type filter. Supported values:
web, files, googledrive, zendesk, notion, confluence.Optional English-processing filter.
Exact source ID filter.
Case-insensitive partial match on the source title.
Case-insensitive partial match on the original source URL.
Filter by linked article or knowledge node ID.
Filter by linked knowledge operation. Supported values:
ADD_ARTICLE_TO_FOLDER, UPDATE_ARTICLE, DO_NOTHING.Return only linked sources flagged as changed. This is the key filter for the source-refresh workflow before Bulk generate knowledge.
The response includes
hasMore but not a nextCursor field. Use the last or first source id from the returned array as the cursor for the next call.Response
Array of
Document objects.Whether more results exist beyond the current page.
Nested objects
Document
Document is the wire-format object returned by the sources read routes. In the product model, each Document is one source record.
Source ID. Also used as the pagination cursor.
Original provider URL or web link.
Source title.
Internal storage URL when the source has been uploaded into Fini’s storage layer.
Source type. One of
web, files, googledrive, notion, zendesk, or confluence.Provider-specific external identifier, or the URL itself for
web.Whether English processing is enabled for the source.
Whether BASER processing is enabled for the source.
Whether the latest ingestion or refresh run succeeded.
Latest processing error, if any. Empty string when the last run succeeded.
ISO 8601 creation timestamp.
ISO 8601 last-update timestamp. Used as the sort key.
Source MIME type.
Provider-specific type, when available, for example Notion
page.Linked article or knowledge node ID, if this source has already been turned into knowledge.
Operation used when the source last linked into knowledge. One of
ADD_ARTICLE_TO_FOLDER, UPDATE_ARTICLE, DO_NOTHING.Additional reason metadata for the linked operation, when present.
Background job ID for the latest queued ingest or refresh.
Background job status. One of
PENDING, IN_PROGRESS, COMPLETED, FAILED.Whether the latest refresh detected a meaningful change compared with the previously linked content. This is the key field for the source-refresh workflow.
Extracted paragraph payload, if the source has been processed. Can be large. Use Get source when you need one source and want a focused payload.
Previous paragraph snapshot used for change detection, when available.
Pagination
Cursor pagination uses source IDs directly:- pass the last source’s
idfrom the previous response withdirection=nextto move toward older sources - pass the first source’s
idwithdirection=previousto move back toward newer sources
cursor, the API starts from the most recently updated sources.
Errors
400 Bad Request
400 Bad Request
Query parameters are invalid. Common causes: unsupported
source value, unsupported linkedOperation value, malformed UUID in id or articleId.401 Unauthorized
401 Unauthorized
403 Forbidden
403 Forbidden
The API key doesn’t include the
read scope, or it’s scoped to a different workspace.The response is an empty documents array
The response is an empty documents array
Either the workspace has no sources matching your filters, or no sources at all. Drop filters one at a time to confirm which one is excluding results.

