Returns source records in the workspace tied to your API key, ordered by updatedAt descending then externalId descending by default. Set order=asc to reverse the order. Use it to enumerate sources, inspect ingestion status, and find source IDs to pass back to Ingest sources.
For the end-to-end model, see Sources. For async polling guidance, see 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.
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.
Filter by one or more knowledge operations. A single string is also accepted. Repeat the query key to match any supplied operation, for example linkedOperation=NO_SUITABLE_FOLDER_SO_DO_NOTHING&linkedOperation=NO_TRACES_SO_DO_NOTHING.Supported values: ADD_ARTICLE_TO_FOLDER, CREATE_SUBFOLDER_AND_ARTICLE, UPDATE_ARTICLE, DO_NOTHING, NO_SUITABLE_FOLDER_SO_DO_NOTHING, NO_TRACES_SO_DO_NOTHING. The last two correspond to Ignored in the Sources list.
Return only linked sources flagged as changed. Sources with no linked article are excluded even when changed=true; use linkedOperation to find informational no-op outcomes instead. 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.
Recorded generation outcome. Uses the same values as the linkedOperation filter. The two informational no-op outcomes can be recorded without a linked article; they preserve the existing changed flag.
Whether the latest refresh detected a meaningful change compared with the previously linked content. This is the key field for the source-refresh workflow.
Query parameters are invalid. Common causes: unsupported linkedOperation value, invalid order or direction, or a malformed UUID in cursor.
401 Unauthorized
The API key is missing, malformed, revoked, or invalid. Confirm Authorization: Bearer fini_... with the full key.
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
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.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"Fini","description":"Documentation for Fini AI (usefini.com): build, deploy and run autonomous AI support agents. Fini is made by Fini Technologies Inc. and is not affiliated with fini.ai.","colors":{"primary":"#C3EE5E","light":"#C3EE5E","dark":"#A8D43E"},"logo":{"light":"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-light.png?fit=max\u0026auto=format\u0026n=fep-JMymNphpe1DQ\u0026q=85\u0026s=a460ff8bb507876712db2f0fb12c21e4","dark":"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026auto=format\u0026n=fep-JMymNphpe1DQ\u0026q=85\u0026s=8a2bf1d8a0e5c590ebb976eadccf26a9"},"favicon":"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026auto=format\u0026n=fep-JMymNphpe1DQ\u0026q=85\u0026s=8a2bf1d8a0e5c590ebb976eadccf26a9","footer":{"socials":{"x":"https://x.com/finichatAI","linkedin":"https://www.linkedin.com/company/usefini","youtube":"https://www.youtube.com/@finiai","instagram":"https://www.instagram.com/usefini.official","github":"https://github.com/ask-fini"}},"seo":{"metatags":{"msvalidate.01":"9A9FD7AB87AE2DEA257FE41F07C61E70"}},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","default":true,"href":"en/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fini","hasAudioNarration":false,"actualSubdomain":"fini","customDomains":["docs.usefini.com"],"gitSource":{"type":"github","owner":"ask-fini","repo":"fini-docs","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9b4c42d9111c67b1782b8","collectionId":"ecc3dbe0-e245-4b84-9640-917bebb403ea","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9b4c42d9111c67b1782b8"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae9b4c42d9111c67b1782b8","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"API reference","count":207},{"language":"en","tag":"Documentation","count":56},{"language":"en","tag":"Knowledge","count":40},{"language":"en","tag":"Test Suite","count":31},{"language":"en","tag":"Use cases","count":29},{"language":"en","tag":"Deploy","count":21},{"language":"en","tag":"Intent Rules","count":18},{"language":"en","tag":"Conversations","count":14},{"language":"en","tag":"Integrations","count":14},{"language":"en","tag":"Agent Configuration","count":13}]},"assistantConfig":{"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"en/api-reference/list-sources","slug":"/en/api-reference/list-sources","pageMetadata":{"title":"List sources","api":"GET https://api-prod.usefini.com/v2/documents/public","description":"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.","href":"/en/api-reference/list-sources"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Heading,Note,ParamField,ResponseField,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Returns source records in the workspace tied to your API key, ordered by `,_jsx(_components.code,{children:`updatedAt`}),` descending then `,_jsx(_components.code,{children:`externalId`}),` descending by default. Set `,_jsx(_components.code,{children:`order=asc`}),` to reverse the order. Use it to enumerate sources, inspect ingestion status, and find source IDs to pass back to `,_jsx(_components.a,{href:`/en/api-reference/ingest-sources`,children:`Ingest sources`}),`.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`For the end-to-end model, see `,_jsx(_components.a,{href:`/en/api-reference/sources`,children:`Sources`}),`. For async polling guidance, see `,_jsx(_components.a,{href:`/en/api-reference/ingest-sources#polling-for-completion`,children:`Ingest sources`}),`.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The response field is still named `,_jsx(_components.code,{children:`documents`}),` because that is the current API contract. On this page, each entry is described as a source record.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`headers`,children:`Headers`}),`\n`,_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization`,children:_jsxs(_components.p,{children:[`Bearer token containing your Fini workspace API key. Format: `,_jsx(_components.code,{children:`Bearer fini_...`}),` The key needs `,_jsx(_components.code,{children:`read`}),` scope.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`query-parameters`,children:`Query parameters`}),`\n`,_jsx(ParamField,{query:`limit`,type:`integer`,default:`50`,id:`param-limit`,children:_jsx(_components.p,{children:`Maximum number of source records to return.`})}),`\n`,_jsx(ParamField,{query:`cursor`,type:`string`,id:`param-cursor`,children:_jsxs(_components.p,{children:[`Source ID to paginate from. Use the last source’s `,_jsx(_components.code,{children:`id`}),` from the previous response to fetch the next page, or the first source’s `,_jsx(_components.code,{children:`id`}),` to fetch the previous page.`]})}),`\n`,_jsx(ParamField,{query:`direction`,type:`string`,default:`next`,id:`param-direction`,children:_jsxs(_components.p,{children:[`Pagination direction when a cursor is supplied. `,_jsx(_components.strong,{children:`Note the inverted mapping:`}),` `,_jsx(_components.code,{children:`next`}),` moves toward `,_jsx(_components.em,{children:`older`}),` sources; `,_jsx(_components.code,{children:`previous`}),` moves back toward `,_jsx(_components.em,{children:`newer`}),` ones. This is because results are sorted by `,_jsx(_components.code,{children:`updatedAt`}),` descending.`]})}),`\n`,_jsx(ParamField,{query:`order`,type:`string`,default:`desc`,id:`param-order`,children:_jsxs(_components.p,{children:[`Sort direction for `,_jsx(_components.code,{children:`updatedAt`}),`, followed by `,_jsx(_components.code,{children:`externalId`}),`. Accepted values: `,_jsx(_components.code,{children:`asc`}),`, `,_jsx(_components.code,{children:`desc`}),`.`]})}),`\n`,_jsx(ParamField,{query:`source`,type:`string`,id:`param-source`,children:_jsxs(_components.p,{children:[`Optional source-type filter. Supported values: `,_jsx(_components.code,{children:`web`}),`, `,_jsx(_components.code,{children:`files`}),`, `,_jsx(_components.code,{children:`googledrive`}),`, `,_jsx(_components.code,{children:`zendesk`}),`, `,_jsx(_components.code,{children:`notion`}),`, `,_jsx(_components.code,{children:`confluence`}),`.`]})}),`\n`,_jsx(ParamField,{query:`english`,type:`boolean`,id:`param-english`,children:_jsx(_components.p,{children:`Optional English-processing filter.`})}),`\n`,_jsx(ParamField,{query:`success`,type:`array`,id:`param-success`,children:_jsxs(_components.p,{children:[`Filter by ingestion outcome. Pass `,_jsx(_components.code,{children:`true`}),` for successful sources or `,_jsx(_components.code,{children:`false`}),` for failed sources. This is an array-valued query parameter.`]})}),`\n`,_jsx(ParamField,{query:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`Exact source ID filter.`})}),`\n`,_jsx(ParamField,{query:`title`,type:`string`,id:`param-title`,children:_jsx(_components.p,{children:`Case-insensitive partial match on the source title.`})}),`\n`,_jsx(ParamField,{query:`search`,type:`string`,id:`param-search`,children:_jsx(_components.p,{children:`Search the title and original URL together. Surrounding whitespace is trimmed; an empty search is ignored.`})}),`\n`,_jsx(ParamField,{query:`url`,type:`string`,id:`param-url`,children:_jsx(_components.p,{children:`Case-insensitive partial match on the original source URL.`})}),`\n`,_jsx(ParamField,{query:`domain`,type:`string`,id:`param-domain`,children:_jsxs(_components.p,{children:[`Filter web sources by exact hostname, for example `,_jsx(_components.code,{children:`docs.example.com`}),`. This parameter is valid only when `,_jsx(_components.code,{children:`source=web`}),`.`]})}),`\n`,_jsx(ParamField,{query:`articleId`,type:`string`,id:`param-article-id`,children:_jsx(_components.p,{children:`Filter by linked article or knowledge node ID.`})}),`\n`,_jsx(ParamField,{query:`linkedKnowledge`,type:`array`,id:`param-linked-knowledge`,children:_jsxs(_components.p,{children:[`Pass `,_jsx(_components.code,{children:`true`}),` to return sources linked to a knowledge article or `,_jsx(_components.code,{children:`false`}),` to return sources without one. Supplying both values disables this filter.`]})}),`\n`,_jsxs(ParamField,{query:`linkedOperation`,type:`array`,id:`param-linked-operation`,children:[_jsxs(_components.p,{children:[`Filter by one or more knowledge operations. A single string is also accepted. Repeat the query key to match any supplied operation, for example `,_jsx(_components.code,{children:`linkedOperation=NO_SUITABLE_FOLDER_SO_DO_NOTHING\u0026linkedOperation=NO_TRACES_SO_DO_NOTHING`}),`.`]}),_jsxs(_components.p,{children:[`Supported values: `,_jsx(_components.code,{children:`ADD_ARTICLE_TO_FOLDER`}),`, `,_jsx(_components.code,{children:`CREATE_SUBFOLDER_AND_ARTICLE`}),`, `,_jsx(_components.code,{children:`UPDATE_ARTICLE`}),`, `,_jsx(_components.code,{children:`DO_NOTHING`}),`, `,_jsx(_components.code,{children:`NO_SUITABLE_FOLDER_SO_DO_NOTHING`}),`, `,_jsx(_components.code,{children:`NO_TRACES_SO_DO_NOTHING`}),`. The last two correspond to `,_jsx(_components.strong,{children:`Ignored`}),` in the Sources list.`]})]}),`\n`,_jsx(ParamField,{query:`changed`,type:`boolean`,id:`param-changed`,children:_jsxs(_components.p,{children:[`Return only linked sources flagged as changed. Sources with no linked article are excluded even when `,_jsx(_components.code,{children:`changed=true`}),`; use `,_jsx(_components.code,{children:`linkedOperation`}),` to find informational no-op outcomes instead. This is the key filter for the source-refresh workflow before `,_jsx(_components.a,{href:`/en/api-reference/bulk-generate-knowledge`,children:`Bulk generate knowledge`}),`.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The response includes `,_jsx(_components.code,{children:`hasMore`}),` but not a `,_jsx(_components.code,{children:`nextCursor`}),` field. Use the last or first source `,_jsx(_components.code,{children:`id`}),` from the returned array as the cursor for the next call.`]})}),`\n`,`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsx(ResponseField,{name:`documents`,type:`array`,id:`param-documents`,children:_jsxs(_components.p,{children:[`Array of `,_jsx(_components.code,{children:`Document`}),` objects.`]})}),`\n`,_jsx(ResponseField,{name:`hasMore`,type:`boolean`,id:`param-has-more`,children:_jsx(_components.p,{children:`Whether more results exist beyond the current page.`})}),`\n`,`\n`,_jsx(_components.p,{children:`The example shows selected source fields; records can include the additional fields below.`}),`\n`,_jsx(Heading,{level:`2`,id:`nested-objects`,children:`Nested objects`}),`\n`,_jsx(Heading,{level:`3`,id:`document`,children:`Document`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Document`}),` is the wire-format object returned by the sources read routes. In the product model, each `,_jsx(_components.code,{children:`Document`}),` is one source record.`]}),`\n`,_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id-1`,children:_jsx(_components.p,{children:`Source ID. Also used as the pagination cursor.`})}),`\n`,_jsx(ResponseField,{name:`originalUrl`,type:`string`,id:`param-original-url`,children:_jsx(_components.p,{children:`Original provider URL or web link.`})}),`\n`,_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title-1`,children:_jsx(_components.p,{children:`Source title.`})}),`\n`,_jsx(ResponseField,{name:`storageUrl`,type:`string | null`,id:`param-storage-url`,children:_jsx(_components.p,{children:`Internal storage URL when the source has been uploaded into Fini’s storage layer.`})}),`\n`,_jsx(ResponseField,{name:`companyId`,type:`string`,id:`param-company-id`,children:_jsx(_components.p,{children:`ID of the workspace that owns the source.`})}),`\n`,_jsx(ResponseField,{name:`source`,type:`string`,id:`param-source-1`,children:_jsxs(_components.p,{children:[`Source type. One of `,_jsx(_components.code,{children:`web`}),`, `,_jsx(_components.code,{children:`files`}),`, `,_jsx(_components.code,{children:`googledrive`}),`, `,_jsx(_components.code,{children:`notion`}),`, `,_jsx(_components.code,{children:`zendesk`}),`, or `,_jsx(_components.code,{children:`confluence`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`externalId`,type:`string`,id:`param-external-id`,children:_jsxs(_components.p,{children:[`Provider-specific external identifier, or the URL itself for `,_jsx(_components.code,{children:`web`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`english`,type:`boolean`,id:`param-english-1`,children:_jsx(_components.p,{children:`Whether English processing is enabled for the source.`})}),`\n`,_jsx(ResponseField,{name:`baser`,type:`boolean`,id:`param-baser`,children:_jsx(_components.p,{children:`Whether BASER processing is enabled for the source.`})}),`\n`,_jsx(ResponseField,{name:`success`,type:`boolean`,id:`param-success-1`,children:_jsx(_components.p,{children:`Whether the latest ingestion or refresh run succeeded.`})}),`\n`,_jsx(ResponseField,{name:`error`,type:`string`,id:`param-error`,children:_jsx(_components.p,{children:`Latest processing error, if any. Empty string when the last run succeeded.`})}),`\n`,_jsx(ResponseField,{name:`createdAt`,type:`string`,id:`param-created-at`,children:_jsx(_components.p,{children:`ISO 8601 creation timestamp.`})}),`\n`,_jsx(ResponseField,{name:`updatedAt`,type:`string`,id:`param-updated-at`,children:_jsx(_components.p,{children:`ISO 8601 last-update timestamp. Used as the sort key.`})}),`\n`,_jsx(ResponseField,{name:`mimeType`,type:`string`,id:`param-mime-type`,children:_jsx(_components.p,{children:`Source MIME type.`})}),`\n`,_jsx(ResponseField,{name:`type`,type:`string | null`,id:`param-type`,children:_jsxs(_components.p,{children:[`Provider-specific type, when available, for example Notion `,_jsx(_components.code,{children:`page`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`linkedKnowledgeId`,type:`string | null`,id:`param-linked-knowledge-id`,children:_jsx(_components.p,{children:`Linked article or knowledge node ID, if this source has already been turned into knowledge.`})}),`\n`,_jsx(ResponseField,{name:`linkedOperation`,type:`string | null`,id:`param-linked-operation-1`,children:_jsxs(_components.p,{children:[`Recorded generation outcome. Uses the same values as the `,_jsx(_components.code,{children:`linkedOperation`}),` filter. The two informational no-op outcomes can be recorded without a linked article; they preserve the existing `,_jsx(_components.code,{children:`changed`}),` flag.`]})}),`\n`,_jsx(ResponseField,{name:`linkedReason`,type:`string | null`,id:`param-linked-reason`,children:_jsx(_components.p,{children:`Additional reason metadata for the linked operation, when present.`})}),`\n`,_jsx(ResponseField,{name:`linkedJobId`,type:`string | null`,id:`param-linked-job-id`,children:_jsx(_components.p,{children:`Background job ID for the latest queued ingest or refresh.`})}),`\n`,_jsx(ResponseField,{name:`linkedJobStatus`,type:`string | null`,id:`param-linked-job-status`,children:_jsxs(_components.p,{children:[`Background job status. One of `,_jsx(_components.code,{children:`PENDING`}),`, `,_jsx(_components.code,{children:`IN_PROGRESS`}),`, `,_jsx(_components.code,{children:`COMPLETED`}),`, `,_jsx(_components.code,{children:`FAILED`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`changed`,type:`boolean`,id:`param-changed-1`,children:_jsx(_components.p,{children:`Whether the latest refresh detected a meaningful change compared with the previously linked content. This is the key field for the source-refresh workflow.`})}),`\n`,_jsx(ResponseField,{name:`paragraphs`,type:`array`,id:`param-paragraphs`,children:_jsxs(_components.p,{children:[`Extracted paragraph payload, if the source has been processed. Can be large. Use `,_jsx(_components.a,{href:`/en/api-reference/get-source`,children:`Get source`}),` when you need one source and want a focused payload.`]})}),`\n`,_jsx(ResponseField,{name:`oldParagraphs`,type:`array`,id:`param-old-paragraphs`,children:_jsx(_components.p,{children:`Previous paragraph snapshot used for change detection, when available.`})}),`\n`,_jsx(Heading,{level:`2`,id:`pagination`,children:`Pagination`}),`\n`,_jsx(_components.p,{children:`Cursor pagination uses source IDs directly:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`pass the `,_jsx(_components.strong,{children:`last`}),` source’s `,_jsx(_components.code,{children:`id`}),` from the previous response with `,_jsx(_components.code,{children:`direction=next`}),` to move toward `,_jsx(_components.strong,{children:`older`}),` sources`]}),`\n`,_jsxs(_components.li,{children:[`pass the `,_jsx(_components.strong,{children:`first`}),` source’s `,_jsx(_components.code,{children:`id`}),` with `,_jsx(_components.code,{children:`direction=previous`}),` to move back toward `,_jsx(_components.strong,{children:`newer`}),` sources`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If you omit `,_jsx(_components.code,{children:`cursor`}),`, the API starts from the most recently updated sources.`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`400 Bad Request`,icon:`circle-exclamation`,id:`400-bad-request`,children:_jsxs(_components.p,{children:[`Query parameters are invalid. Common causes: unsupported `,_jsx(_components.code,{children:`linkedOperation`}),` value, invalid `,_jsx(_components.code,{children:`order`}),` or `,_jsx(_components.code,{children:`direction`}),`, or a malformed UUID in `,_jsx(_components.code,{children:`cursor`}),`.`]})}),_jsx(Accordion,{title:`401 Unauthorized`,icon:`lock`,id:`401-unauthorized`,children:_jsxs(_components.p,{children:[`The API key is missing, malformed, revoked, or invalid. Confirm `,_jsx(_components.code,{children:`Authorization: Bearer fini_...`}),` with the full key.`]})}),_jsx(Accordion,{title:`403 Forbidden`,icon:`shield-halved`,id:`403-forbidden`,children:_jsxs(_components.p,{children:[`The API key doesn’t include the `,_jsx(_components.code,{children:`read`}),` scope, or it’s scoped to a different workspace.`]})}),_jsx(Accordion,{title:`The response is an empty documents array`,icon:`circle-question`,id:`the-response-is-an-empty-documents-array`,children:_jsx(_components.p,{children:`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.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List sources","api":"GET https://api-prod.usefini.com/v2/documents/public","description":"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.","href":"/en/api-reference/list-sources"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Heading,Note,ParamField,RequestExample,ResponseExample,ResponseField,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Returns source records in the workspace tied to your API key, ordered by `,_jsx(_components.code,{children:`updatedAt`}),` descending then `,_jsx(_components.code,{children:`externalId`}),` descending by default. Set `,_jsx(_components.code,{children:`order=asc`}),` to reverse the order. Use it to enumerate sources, inspect ingestion status, and find source IDs to pass back to `,_jsx(_components.a,{href:`/en/api-reference/ingest-sources`,children:`Ingest sources`}),`.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`For the end-to-end model, see `,_jsx(_components.a,{href:`/en/api-reference/sources`,children:`Sources`}),`. For async polling guidance, see `,_jsx(_components.a,{href:`/en/api-reference/ingest-sources#polling-for-completion`,children:`Ingest sources`}),`.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The response field is still named `,_jsx(_components.code,{children:`documents`}),` because that is the current API contract. On this page, each entry is described as a source record.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`headers`,children:`Headers`}),`\n`,_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization`,children:_jsxs(_components.p,{children:[`Bearer token containing your Fini workspace API key. Format: `,_jsx(_components.code,{children:`Bearer fini_...`}),` The key needs `,_jsx(_components.code,{children:`read`}),` scope.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`query-parameters`,children:`Query parameters`}),`\n`,_jsx(ParamField,{query:`limit`,type:`integer`,default:`50`,id:`param-limit`,children:_jsx(_components.p,{children:`Maximum number of source records to return.`})}),`\n`,_jsx(ParamField,{query:`cursor`,type:`string`,id:`param-cursor`,children:_jsxs(_components.p,{children:[`Source ID to paginate from. Use the last source’s `,_jsx(_components.code,{children:`id`}),` from the previous response to fetch the next page, or the first source’s `,_jsx(_components.code,{children:`id`}),` to fetch the previous page.`]})}),`\n`,_jsx(ParamField,{query:`direction`,type:`string`,default:`next`,id:`param-direction`,children:_jsxs(_components.p,{children:[`Pagination direction when a cursor is supplied. `,_jsx(_components.strong,{children:`Note the inverted mapping:`}),` `,_jsx(_components.code,{children:`next`}),` moves toward `,_jsx(_components.em,{children:`older`}),` sources; `,_jsx(_components.code,{children:`previous`}),` moves back toward `,_jsx(_components.em,{children:`newer`}),` ones. This is because results are sorted by `,_jsx(_components.code,{children:`updatedAt`}),` descending.`]})}),`\n`,_jsx(ParamField,{query:`order`,type:`string`,default:`desc`,id:`param-order`,children:_jsxs(_components.p,{children:[`Sort direction for `,_jsx(_components.code,{children:`updatedAt`}),`, followed by `,_jsx(_components.code,{children:`externalId`}),`. Accepted values: `,_jsx(_components.code,{children:`asc`}),`, `,_jsx(_components.code,{children:`desc`}),`.`]})}),`\n`,_jsx(ParamField,{query:`source`,type:`string`,id:`param-source`,children:_jsxs(_components.p,{children:[`Optional source-type filter. Supported values: `,_jsx(_components.code,{children:`web`}),`, `,_jsx(_components.code,{children:`files`}),`, `,_jsx(_components.code,{children:`googledrive`}),`, `,_jsx(_components.code,{children:`zendesk`}),`, `,_jsx(_components.code,{children:`notion`}),`, `,_jsx(_components.code,{children:`confluence`}),`.`]})}),`\n`,_jsx(ParamField,{query:`english`,type:`boolean`,id:`param-english`,children:_jsx(_components.p,{children:`Optional English-processing filter.`})}),`\n`,_jsx(ParamField,{query:`success`,type:`array`,id:`param-success`,children:_jsxs(_components.p,{children:[`Filter by ingestion outcome. Pass `,_jsx(_components.code,{children:`true`}),` for successful sources or `,_jsx(_components.code,{children:`false`}),` for failed sources. This is an array-valued query parameter.`]})}),`\n`,_jsx(ParamField,{query:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`Exact source ID filter.`})}),`\n`,_jsx(ParamField,{query:`title`,type:`string`,id:`param-title`,children:_jsx(_components.p,{children:`Case-insensitive partial match on the source title.`})}),`\n`,_jsx(ParamField,{query:`search`,type:`string`,id:`param-search`,children:_jsx(_components.p,{children:`Search the title and original URL together. Surrounding whitespace is trimmed; an empty search is ignored.`})}),`\n`,_jsx(ParamField,{query:`url`,type:`string`,id:`param-url`,children:_jsx(_components.p,{children:`Case-insensitive partial match on the original source URL.`})}),`\n`,_jsx(ParamField,{query:`domain`,type:`string`,id:`param-domain`,children:_jsxs(_components.p,{children:[`Filter web sources by exact hostname, for example `,_jsx(_components.code,{children:`docs.example.com`}),`. This parameter is valid only when `,_jsx(_components.code,{children:`source=web`}),`.`]})}),`\n`,_jsx(ParamField,{query:`articleId`,type:`string`,id:`param-article-id`,children:_jsx(_components.p,{children:`Filter by linked article or knowledge node ID.`})}),`\n`,_jsx(ParamField,{query:`linkedKnowledge`,type:`array`,id:`param-linked-knowledge`,children:_jsxs(_components.p,{children:[`Pass `,_jsx(_components.code,{children:`true`}),` to return sources linked to a knowledge article or `,_jsx(_components.code,{children:`false`}),` to return sources without one. Supplying both values disables this filter.`]})}),`\n`,_jsxs(ParamField,{query:`linkedOperation`,type:`array`,id:`param-linked-operation`,children:[_jsxs(_components.p,{children:[`Filter by one or more knowledge operations. A single string is also accepted. Repeat the query key to match any supplied operation, for example `,_jsx(_components.code,{children:`linkedOperation=NO_SUITABLE_FOLDER_SO_DO_NOTHING\u0026linkedOperation=NO_TRACES_SO_DO_NOTHING`}),`.`]}),_jsxs(_components.p,{children:[`Supported values: `,_jsx(_components.code,{children:`ADD_ARTICLE_TO_FOLDER`}),`, `,_jsx(_components.code,{children:`CREATE_SUBFOLDER_AND_ARTICLE`}),`, `,_jsx(_components.code,{children:`UPDATE_ARTICLE`}),`, `,_jsx(_components.code,{children:`DO_NOTHING`}),`, `,_jsx(_components.code,{children:`NO_SUITABLE_FOLDER_SO_DO_NOTHING`}),`, `,_jsx(_components.code,{children:`NO_TRACES_SO_DO_NOTHING`}),`. The last two correspond to `,_jsx(_components.strong,{children:`Ignored`}),` in the Sources list.`]})]}),`\n`,_jsx(ParamField,{query:`changed`,type:`boolean`,id:`param-changed`,children:_jsxs(_components.p,{children:[`Return only linked sources flagged as changed. Sources with no linked article are excluded even when `,_jsx(_components.code,{children:`changed=true`}),`; use `,_jsx(_components.code,{children:`linkedOperation`}),` to find informational no-op outcomes instead. This is the key filter for the source-refresh workflow before `,_jsx(_components.a,{href:`/en/api-reference/bulk-generate-knowledge`,children:`Bulk generate knowledge`}),`.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The response includes `,_jsx(_components.code,{children:`hasMore`}),` but not a `,_jsx(_components.code,{children:`nextCursor`}),` field. Use the last or first source `,_jsx(_components.code,{children:`id`}),` from the returned array as the cursor for the next call.`]})}),`\n`,_jsxs(RequestExample,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api-prod.usefini.com/v2/documents/public?limit=25\u0026source=notion'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: Bearer fini_your_api_key'`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`11`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`response `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.get(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api-prod.usefini.com/v2/documents/public\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bearer fini_your_api_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` params`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"limit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`25`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"source\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"notion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`data `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response.json()`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Node.js`,numberOfLines:`14`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` params`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` URLSearchParams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` limit:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"25\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` source:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"notion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `https://api-prod.usefini.com/v2/documents/public?\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`params`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toString`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`()`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` headers:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Authorization:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Bearer fini_your_api_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` data`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsx(ResponseField,{name:`documents`,type:`array`,id:`param-documents`,children:_jsxs(_components.p,{children:[`Array of `,_jsx(_components.code,{children:`Document`}),` objects.`]})}),`\n`,_jsx(ResponseField,{name:`hasMore`,type:`boolean`,id:`param-has-more`,children:_jsx(_components.p,{children:`Whether more results exist beyond the current page.`})}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200 OK`,numberOfLines:`18`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`18`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"documents\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"source\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"notion\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"originalUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://www.notion.so/example-refund-policy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Refund policy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"changed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"linkedJobStatus\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"COMPLETED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"linkedOperation\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ADD_ARTICLE_TO_FOLDER\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"linkedKnowledgeId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"7fa27325-e2f6-4420-b705-436f9106f908\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"createdAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-07-28T08:55:32.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"updatedAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-07-28T09:10:18.000Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"hasMore\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(_components.p,{children:`The example shows selected source fields; records can include the additional fields below.`}),`\n`,_jsx(Heading,{level:`2`,id:`nested-objects`,children:`Nested objects`}),`\n`,_jsx(Heading,{level:`3`,id:`document`,children:`Document`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Document`}),` is the wire-format object returned by the sources read routes. In the product model, each `,_jsx(_components.code,{children:`Document`}),` is one source record.`]}),`\n`,_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id-1`,children:_jsx(_components.p,{children:`Source ID. Also used as the pagination cursor.`})}),`\n`,_jsx(ResponseField,{name:`originalUrl`,type:`string`,id:`param-original-url`,children:_jsx(_components.p,{children:`Original provider URL or web link.`})}),`\n`,_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title-1`,children:_jsx(_components.p,{children:`Source title.`})}),`\n`,_jsx(ResponseField,{name:`storageUrl`,type:`string | null`,id:`param-storage-url`,children:_jsx(_components.p,{children:`Internal storage URL when the source has been uploaded into Fini’s storage layer.`})}),`\n`,_jsx(ResponseField,{name:`companyId`,type:`string`,id:`param-company-id`,children:_jsx(_components.p,{children:`ID of the workspace that owns the source.`})}),`\n`,_jsx(ResponseField,{name:`source`,type:`string`,id:`param-source-1`,children:_jsxs(_components.p,{children:[`Source type. One of `,_jsx(_components.code,{children:`web`}),`, `,_jsx(_components.code,{children:`files`}),`, `,_jsx(_components.code,{children:`googledrive`}),`, `,_jsx(_components.code,{children:`notion`}),`, `,_jsx(_components.code,{children:`zendesk`}),`, or `,_jsx(_components.code,{children:`confluence`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`externalId`,type:`string`,id:`param-external-id`,children:_jsxs(_components.p,{children:[`Provider-specific external identifier, or the URL itself for `,_jsx(_components.code,{children:`web`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`english`,type:`boolean`,id:`param-english-1`,children:_jsx(_components.p,{children:`Whether English processing is enabled for the source.`})}),`\n`,_jsx(ResponseField,{name:`baser`,type:`boolean`,id:`param-baser`,children:_jsx(_components.p,{children:`Whether BASER processing is enabled for the source.`})}),`\n`,_jsx(ResponseField,{name:`success`,type:`boolean`,id:`param-success-1`,children:_jsx(_components.p,{children:`Whether the latest ingestion or refresh run succeeded.`})}),`\n`,_jsx(ResponseField,{name:`error`,type:`string`,id:`param-error`,children:_jsx(_components.p,{children:`Latest processing error, if any. Empty string when the last run succeeded.`})}),`\n`,_jsx(ResponseField,{name:`createdAt`,type:`string`,id:`param-created-at`,children:_jsx(_components.p,{children:`ISO 8601 creation timestamp.`})}),`\n`,_jsx(ResponseField,{name:`updatedAt`,type:`string`,id:`param-updated-at`,children:_jsx(_components.p,{children:`ISO 8601 last-update timestamp. Used as the sort key.`})}),`\n`,_jsx(ResponseField,{name:`mimeType`,type:`string`,id:`param-mime-type`,children:_jsx(_components.p,{children:`Source MIME type.`})}),`\n`,_jsx(ResponseField,{name:`type`,type:`string | null`,id:`param-type`,children:_jsxs(_components.p,{children:[`Provider-specific type, when available, for example Notion `,_jsx(_components.code,{children:`page`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`linkedKnowledgeId`,type:`string | null`,id:`param-linked-knowledge-id`,children:_jsx(_components.p,{children:`Linked article or knowledge node ID, if this source has already been turned into knowledge.`})}),`\n`,_jsx(ResponseField,{name:`linkedOperation`,type:`string | null`,id:`param-linked-operation-1`,children:_jsxs(_components.p,{children:[`Recorded generation outcome. Uses the same values as the `,_jsx(_components.code,{children:`linkedOperation`}),` filter. The two informational no-op outcomes can be recorded without a linked article; they preserve the existing `,_jsx(_components.code,{children:`changed`}),` flag.`]})}),`\n`,_jsx(ResponseField,{name:`linkedReason`,type:`string | null`,id:`param-linked-reason`,children:_jsx(_components.p,{children:`Additional reason metadata for the linked operation, when present.`})}),`\n`,_jsx(ResponseField,{name:`linkedJobId`,type:`string | null`,id:`param-linked-job-id`,children:_jsx(_components.p,{children:`Background job ID for the latest queued ingest or refresh.`})}),`\n`,_jsx(ResponseField,{name:`linkedJobStatus`,type:`string | null`,id:`param-linked-job-status`,children:_jsxs(_components.p,{children:[`Background job status. One of `,_jsx(_components.code,{children:`PENDING`}),`, `,_jsx(_components.code,{children:`IN_PROGRESS`}),`, `,_jsx(_components.code,{children:`COMPLETED`}),`, `,_jsx(_components.code,{children:`FAILED`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`changed`,type:`boolean`,id:`param-changed-1`,children:_jsx(_components.p,{children:`Whether the latest refresh detected a meaningful change compared with the previously linked content. This is the key field for the source-refresh workflow.`})}),`\n`,_jsx(ResponseField,{name:`paragraphs`,type:`array`,id:`param-paragraphs`,children:_jsxs(_components.p,{children:[`Extracted paragraph payload, if the source has been processed. Can be large. Use `,_jsx(_components.a,{href:`/en/api-reference/get-source`,children:`Get source`}),` when you need one source and want a focused payload.`]})}),`\n`,_jsx(ResponseField,{name:`oldParagraphs`,type:`array`,id:`param-old-paragraphs`,children:_jsx(_components.p,{children:`Previous paragraph snapshot used for change detection, when available.`})}),`\n`,_jsx(Heading,{level:`2`,id:`pagination`,children:`Pagination`}),`\n`,_jsx(_components.p,{children:`Cursor pagination uses source IDs directly:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`pass the `,_jsx(_components.strong,{children:`last`}),` source’s `,_jsx(_components.code,{children:`id`}),` from the previous response with `,_jsx(_components.code,{children:`direction=next`}),` to move toward `,_jsx(_components.strong,{children:`older`}),` sources`]}),`\n`,_jsxs(_components.li,{children:[`pass the `,_jsx(_components.strong,{children:`first`}),` source’s `,_jsx(_components.code,{children:`id`}),` with `,_jsx(_components.code,{children:`direction=previous`}),` to move back toward `,_jsx(_components.strong,{children:`newer`}),` sources`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If you omit `,_jsx(_components.code,{children:`cursor`}),`, the API starts from the most recently updated sources.`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`400 Bad Request`,icon:`circle-exclamation`,id:`400-bad-request`,children:_jsxs(_components.p,{children:[`Query parameters are invalid. Common causes: unsupported `,_jsx(_components.code,{children:`linkedOperation`}),` value, invalid `,_jsx(_components.code,{children:`order`}),` or `,_jsx(_components.code,{children:`direction`}),`, or a malformed UUID in `,_jsx(_components.code,{children:`cursor`}),`.`]})}),_jsx(Accordion,{title:`401 Unauthorized`,icon:`lock`,id:`401-unauthorized`,children:_jsxs(_components.p,{children:[`The API key is missing, malformed, revoked, or invalid. Confirm `,_jsx(_components.code,{children:`Authorization: Bearer fini_...`}),` with the full key.`]})}),_jsx(Accordion,{title:`403 Forbidden`,icon:`shield-halved`,id:`403-forbidden`,children:_jsxs(_components.p,{children:[`The API key doesn’t include the `,_jsx(_components.code,{children:`read`}),` scope, or it’s scoped to a different workspace.`]})}),_jsx(Accordion,{title:`The response is an empty documents array`,icon:`circle-question`,id:`the-response-is-an-empty-documents-array`,children:_jsx(_components.p,{children:`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.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List sources","api":"GET https://api-prod.usefini.com/v2/documents/public","description":"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.","href":"/en/api-reference/list-sources"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Headers","slug":"headers","depth":2,"children":[]},{"title":"Query parameters","slug":"query-parameters","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Nested objects","slug":"nested-objects","depth":2,"children":[{"title":"Document","slug":"document","depth":3,"children":[]}]},{"title":"Pagination","slug":"pagination","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"cURL","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"3\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> --request\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> GET\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> --url\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> 'https://api-prod.usefini.com/v2/documents/public?limit=25\u0026#x26;source=notion'\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> --header\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> 'Authorization: Bearer fini_your_api_key'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Python","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"python\">\u003ccode language=\"python\" numberOfLines=\"11\">\u003cspan class=\"line\">\u003cspan style=\"color:#CF222E;--shiki-dark:#C586C0\">import\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> requests\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">response \u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\">=\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> requests.get(\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"https://api-prod.usefini.com/v2/documents/public\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#9CDCFE\"> headers\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\">=\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Authorization\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Bearer fini_your_api_key\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#9CDCFE\"> params\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\">=\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"limit\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">25\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"source\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"notion\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">)\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">data \u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\">=\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> response.json()\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Node.js","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"javascript\">\u003ccode language=\"javascript\" numberOfLines=\"14\">\u003cspan class=\"line\">\u003cspan style=\"color:#CF222E;--shiki-dark:#569CD6\">const\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#4FC1FF\"> params\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\"> =\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#569CD6\"> new\u003c/span>\u003cspan style=\"color:#8250DF;--shiki-dark:#DCDCAA\"> URLSearchParams\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">({\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> limit:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"25\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> source:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"notion\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">});\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#CF222E;--shiki-dark:#569CD6\">const\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#4FC1FF\"> response\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\"> =\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#C586C0\"> await\u003c/span>\u003cspan style=\"color:#8250DF;--shiki-dark:#DCDCAA\"> fetch\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">(\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> `https://api-prod.usefini.com/v2/documents/public?\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#569CD6\">${\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">params\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#D4D4D4\">.\u003c/span>\u003cspan style=\"color:#8250DF;--shiki-dark:#DCDCAA\">toString\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#D4D4D4\">()\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#569CD6\">}\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">`\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> headers:\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> Authorization:\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Bearer fini_your_api_key\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">);\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#CF222E;--shiki-dark:#569CD6\">const\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#4FC1FF\"> data\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D4D4D4\"> =\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#C586C0\"> await\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\"> response\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">.\u003c/span>\u003cspan style=\"color:#8250DF;--shiki-dark:#DCDCAA\">json\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">();\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"200 OK","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"18\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"documents\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"source\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"notion\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"originalUrl\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://www.notion.so/example-refund-policy\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"title\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Refund policy\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"success\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"changed\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"linkedJobStatus\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"COMPLETED\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"linkedOperation\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"ADD_ARTICLE_TO_FOLDER\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"linkedKnowledgeId\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"7fa27325-e2f6-4420-b705-436f9106f908\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"createdAt\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-07-28T08:55:32.000Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"updatedAt\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-07-28T09:10:18.000Z\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"hasMore\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"List sources","path":"/v2/documents/public","servers":[{"url":"https://api-prod.usefini.com"}],"method":"get","request":{"security":[],"parameters":{"query":{"limit":{"schema":[{"type":"integer","description":"Maximum number of source records to return."}]},"cursor":{"schema":[{"type":"string","description":"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."}]},"direction":{"schema":[{"type":"string","description":"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."}]},"order":{"schema":[{"type":"string","description":"Sort direction for `updatedAt` , followed by `externalId` . Accepted values: `asc` , `desc` ."}]},"source":{"schema":[{"type":"string","description":"Optional source-type filter. Supported values: `web` , `files` , `googledrive` , `zendesk` , `notion` , `confluence` ."}]},"english":{"schema":[{"type":"boolean","description":"Optional English-processing filter."}]},"success":{"schema":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Filter by ingestion outcome. Pass `true` for successful sources or `false` for failed sources. This is an array-valued query parameter."}]},"id":{"schema":[{"type":"string","description":"Exact source ID filter."}]},"title":{"schema":[{"type":"string","description":"Case-insensitive partial match on the source title."}]},"search":{"schema":[{"type":"string","description":"Search the title and original URL together. Surrounding whitespace is trimmed; an empty search is ignored."}]},"url":{"schema":[{"type":"string","description":"Case-insensitive partial match on the original source URL."}]},"domain":{"schema":[{"type":"string","description":"Filter web sources by exact hostname, for example `docs.example.com` . This parameter is valid only when `source=web` ."}]},"articleId":{"schema":[{"type":"string","description":"Filter by linked article or knowledge node ID."}]},"linkedKnowledge":{"schema":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Pass `true` to return sources linked to a knowledge article or `false` to return sources without one. Supplying both values disables this filter."}]},"linkedOperation":{"schema":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Filter by one or more knowledge operations. A single string is also accepted. Repeat the query key to match any supplied operation, for example `linkedOperation=NO_SUITABLE_FOLDER_SO_DO_NOTHING\u0026linkedOperation=NO_TRACES_SO_DO_NOTHING` . Supported values: `ADD_ARTICLE_TO_FOLDER` , `CREATE_SUBFOLDER_AND_ARTICLE` , `UPDATE_ARTICLE` , `DO_NOTHING` , `NO_SUITABLE_FOLDER_SO_DO_NOTHING` , `NO_TRACES_SO_DO_NOTHING` . The last two correspond to Ignored in the Sources list."}]},"changed":{"schema":[{"type":"boolean","description":"Return only linked sources flagged as changed. Sources with no linked article are excluded even when `changed=true` ; use `linkedOperation` to find informational no-op outcomes instead. This is the key filter for the source-refresh workflow before Bulk generate knowledge ."}]}},"header":{"Authorization":{"schema":[{"type":"string","description":"Bearer token containing your Fini workspace API key. Format: `Bearer fini_...` The key needs `read` scope.","required":true}]}},"cookie":{},"path":{}},"body":{}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"documents":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Array of `Document` objects."}],"hasMore":[{"type":"boolean","description":"Whether more results exist beyond the current page."}],"id":[{"type":"string","description":"Source ID. Also used as the pagination cursor."}],"originalUrl":[{"type":"string","description":"Original provider URL or web link."}],"title":[{"type":"string","description":"Source title."}],"storageUrl":[{"type":"object","properties":{},"description":"Internal storage URL when the source has been uploaded into Fini’s storage layer."}],"companyId":[{"type":"string","description":"ID of the workspace that owns the source."}],"source":[{"type":"string","description":"Source type. One of `web` , `files` , `googledrive` , `notion` , `zendesk` , or `confluence` ."}],"externalId":[{"type":"string","description":"Provider-specific external identifier, or the URL itself for `web` ."}],"english":[{"type":"boolean","description":"Whether English processing is enabled for the source."}],"baser":[{"type":"boolean","description":"Whether BASER processing is enabled for the source."}],"success":[{"type":"boolean","description":"Whether the latest ingestion or refresh run succeeded."}],"error":[{"type":"string","description":"Latest processing error, if any. Empty string when the last run succeeded."}],"createdAt":[{"type":"string","description":"ISO 8601 creation timestamp."}],"updatedAt":[{"type":"string","description":"ISO 8601 last-update timestamp. Used as the sort key."}],"mimeType":[{"type":"string","description":"Source MIME type."}],"type":[{"type":"object","properties":{},"description":"Provider-specific type, when available, for example Notion `page` ."}],"linkedKnowledgeId":[{"type":"object","properties":{},"description":"Linked article or knowledge node ID, if this source has already been turned into knowledge."}],"linkedOperation":[{"type":"object","properties":{},"description":"Recorded generation outcome. Uses the same values as the `linkedOperation` filter. The two informational no-op outcomes can be recorded without a linked article; they preserve the existing `changed` flag."}],"linkedReason":[{"type":"object","properties":{},"description":"Additional reason metadata for the linked operation, when present."}],"linkedJobId":[{"type":"object","properties":{},"description":"Background job ID for the latest queued ingest or refresh."}],"linkedJobStatus":[{"type":"object","properties":{},"description":"Background job status. One of `PENDING` , `IN_PROGRESS` , `COMPLETED` , `FAILED` ."}],"changed":[{"type":"boolean","description":"Whether the latest refresh detected a meaningful change compared with the previously linked content. This is the key field for the source-refresh workflow."}],"paragraphs":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"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."}],"oldParagraphs":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Previous paragraph snapshot used for change detection, when available."}]}}],"examples":{"example":{"value":{"documents":[{}],"hasMore":true,"id":"\u003cstring>","originalUrl":"\u003cstring>","title":"\u003cstring>","storageUrl":{},"companyId":"\u003cstring>","source":"\u003cstring>","externalId":"\u003cstring>","english":true,"baser":true,"success":true,"error":"\u003cstring>","createdAt":"\u003cstring>","updatedAt":"\u003cstring>","mimeType":"\u003cstring>","type":{},"linkedKnowledgeId":{},"linkedOperation":{},"linkedReason":{},"linkedJobId":{},"linkedJobStatus":{},"changed":true,"paragraphs":[{}],"oldParagraphs":[{}]}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"fini","siteName":"Fini","title":"List sources - Fini","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/api-reference/list-sources","matchLevel":0}}},"lastModified":"2026-11-03T09:50:24.693Z","originalFileLocation":"en/api-reference/list-sources.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fini\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026amp;auto=format\u0026amp;n=fep-JMymNphpe1DQ\u0026amp;q=85\u0026amp;s=8a2bf1d8a0e5c590ebb976eadccf26a9\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026amp;auto=format\u0026amp;n=fep-JMymNphpe1DQ\u0026amp;q=85\u0026amp;s=8a2bf1d8a0e5c590ebb976eadccf26a9\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026amp;auto=format\u0026amp;n=fep-JMymNphpe1DQ\u0026amp;q=85\u0026amp;s=8a2bf1d8a0e5c590ebb976eadccf26a9\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026amp;auto=format\u0026amp;n=fep-JMymNphpe1DQ\u0026amp;q=85\u0026amp;s=8a2bf1d8a0e5c590ebb976eadccf26a9\">\u003cmeta data-mint-head property=\"og:title\" content=\"List sources - Fini\">\u003cmeta data-mint-head property=\"og:description\" content=\"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fini\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.usefini.com/en/api-reference/list-sources\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fini.mintlify.app/_mintlify/api/og/v2?division=Sources\u0026amp;title=List+sources\u0026amp;description=Paginate+through+every+source+record+in+the+workspace%2C+with+filters+on+source+type%2C+ingestion+status%2C+linked+knowledge%2C+hostname%2C+and+more.\u0026amp;theme=f0910fa1b0920527ac15e186\u0026amp;signature=b1eb093a387a64583c67706143199b917c9576af48d645d8aff0f9cd246d4611\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List sources - Fini\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fini.mintlify.app/_mintlify/api/og/v2?division=Sources\u0026amp;title=List+sources\u0026amp;description=Paginate+through+every+source+record+in+the+workspace%2C+with+filters+on+source+type%2C+ingestion+status%2C+linked+knowledge%2C+hostname%2C+and+more.\u0026amp;theme=f0910fa1b0920527ac15e186\u0026amp;signature=b1eb093a387a64583c67706143199b917c9576af48d645d8aff0f9cd246d4611\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/fini/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fini\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#C3EE5E\">\u003cmeta data-mint-head name=\"msvalidate.01\" content=\"9A9FD7AB87AE2DEA257FE41F07C61E70\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.usefini.com/en/api-reference/list-sources\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/api-reference/list-sources.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.usefini.com/#organization\",\"name\":\"Fini\",\"url\":\"https://docs.usefini.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-light.png?fit=max\u0026auto=format\u0026n=fep-JMymNphpe1DQ\u0026q=85\u0026s=a460ff8bb507876712db2f0fb12c21e4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.usefini.com#website\",\"name\":\"Fini\",\"url\":\"https://docs.usefini.com\",\"publisher\":{\"@id\":\"https://docs.usefini.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.usefini.com/en/api-reference/list-sources#webpage\",\"url\":\"https://docs.usefini.com/en/api-reference/list-sources\",\"name\":\"List sources\",\"description\":\"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.\",\"dateModified\":\"2026-11-03T09:50:24.693Z\",\"isPartOf\":{\"@id\":\"https://docs.usefini.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.usefini.com/en/api-reference/list-sources#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.usefini.com/en/api-reference/list-sources#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge\",\"item\":\"https://docs.usefini.com/en/api-reference/sources\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sources\",\"item\":\"https://docs.usefini.com/en/api-reference/sources\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"List sources\",\"item\":\"https://docs.usefini.com/en/api-reference/list-sources\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.usefini.com/en/api-reference/list-sources#apireference\",\"headline\":\"List sources\",\"name\":\"List sources\",\"description\":\"Paginate through every source record in the workspace, with filters on source type, ingestion status, linked knowledge, hostname, and more.\",\"url\":\"https://docs.usefini.com/en/api-reference/list-sources\",\"mainEntityOfPage\":{\"@id\":\"https://docs.usefini.com/en/api-reference/list-sources#webpage\"},\"dateModified\":\"2026-11-03T09:50:24.693Z\",\"publisher\":{\"@id\":\"https://docs.usefini.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.usefini.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Fini\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Fini","nav":{"global":null,"languages":[{"language":"en","default":true,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/en/introduction"}]},{"tab":"API reference","pages":[{"group":"API Setup","icon":"sliders","pages":[{"title":"API overview","icon":"code-branch","href":"/en/api-reference/overview"},{"title":"API contract","icon":"code","href":"/en/api-reference/api-contract"},{"title":"Static IP Addresses","icon":"address-book","href":"/en/api-reference/static-ip"},{"title":"Database and Warehouse Connections","icon":"database","href":"/en/api-reference/database-warehouses"},{"title":"MCP Connections","icon":"plug","href":"/en/api-reference/connect-mcp"}]},{"group":"LLM Access","icon":"acorn","pages":[{"title":"Coding agents","icon":"robot","href":"/en/api-reference/coding-agents"},{"title":"Claude Plugin","icon":"puzzle-piece","href":"/en/api-reference/claude-connector"}]},{"group":"Agents","public":true,"icon":"robot","pages":[{"title":"Overview","icon":"robot","href":"/en/api-reference/agents"},{"title":"Create agent","api":"POST https://api-prod.usefini.com/v2/bots/public","href":"/en/api-reference/create-agent"},{"title":"List agents","api":"GET https://api-prod.usefini.com/v2/bots/public","href":"/en/api-reference/list-agents"},{"title":"Delete agent","api":"DELETE https://api-prod.usefini.com/v2/bots/{id}/public","href":"/en/api-reference/delete-agent"}]},{"group":"Analytics","public":true,"icon":"chart-line","pages":[{"title":"Overview","icon":"chart-line","href":"/en/api-reference/analytics"},{"title":"Get agent analytics","api":"GET https://api-prod.usefini.com/v2/bots/{id}/hc-analytics/public","href":"/en/api-reference/get-agent-analytics"},{"title":"Get agent analytics section","api":"GET https://api-prod.usefini.com/v2/bots/{id}/hc-analytics/{section}/public","href":"/en/api-reference/get-agent-analytics-section"}]},{"group":"Help Centers","public":true,"icon":"book-open","pages":[{"title":"Overview","icon":"book-open","href":"/en/api-reference/help-centers"},{"title":"List help centers","api":"GET https://api-prod.usefini.com/v2/helpcenter/list/public","href":"/en/api-reference/list-help-centers"},{"title":"Get help center analytics","api":"GET https://api-prod.usefini.com/v2/helpcenter/{id}/analytics/public","href":"/en/api-reference/get-help-center-analytics"},{"title":"Export help center analytics","api":"GET https://api-prod.usefini.com/v2/helpcenter/{id}/analytics/export/public","href":"/en/api-reference/export-help-center-analytics"}]},{"group":"Profile","public":true,"icon":"user","pages":[{"title":"Overview","icon":"user","href":"/en/api-reference/profile"},{"title":"Update my reply alias","api":"PATCH https://api-prod.usefini.com/v2/users/me/public","href":"/en/api-reference/update-my-profile"}]},{"group":"Macros","public":true,"icon":"message","pages":[{"title":"Overview","icon":"message","href":"/en/api-reference/macros"},{"title":"List macros","api":"GET https://api-prod.usefini.com/v2/macros/public","href":"/en/api-reference/list-macros"},{"title":"Get macro","api":"GET https://api-prod.usefini.com/v2/macros/{id}/public","href":"/en/api-reference/get-macro"},{"title":"Create macro","api":"POST https://api-prod.usefini.com/v2/macros/public","href":"/en/api-reference/create-macro"},{"title":"Update macro","api":"PATCH https://api-prod.usefini.com/v2/macros/{id}/public","href":"/en/api-reference/update-macro"},{"title":"Delete macro","api":"DELETE https://api-prod.usefini.com/v2/macros/{id}/public","href":"/en/api-reference/delete-macro"}]},{"group":"Prompts","public":true,"icon":"message","pages":[{"title":"Overview","icon":"message","href":"/en/api-reference/prompts"},{"title":"Get prompts","api":"GET https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/public","href":"/en/api-reference/get-prompts"},{"title":"Get prompt history","api":"GET https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/history/public","href":"/en/api-reference/get-prompt-history"},{"title":"Get prompt version","api":"GET https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/{promptId}/public","href":"/en/api-reference/get-prompt-version"},{"title":"Update prompts","api":"POST https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/public","href":"/en/api-reference/update-prompts"},{"title":"Create prompt draft version","api":"POST https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/versions/public","href":"/en/api-reference/create-prompt-draft-version"},{"title":"Get prompt draft version","api":"GET https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/versions/{versionId}/public","href":"/en/api-reference/get-prompt-draft-version"},{"title":"Publish prompt draft version","api":"POST https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/versions/{versionId}/publish/public","href":"/en/api-reference/publish-prompt-draft-version"},{"title":"Delete prompt draft version","api":"DELETE https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/versions/{versionId}/public","href":"/en/api-reference/delete-prompt-draft-version"},{"title":"List prompt lifecycle versions","api":"GET https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/versions/public","href":"/en/api-reference/list-prompt-versions"},{"title":"Restore prompt version as draft","api":"POST https://api-prod.usefini.com/v2/bots/{id}/hc-prompt/versions/{versionId}/restore-as-draft/public","href":"/en/api-reference/restore-prompt-version-as-draft"}]},{"group":"Actions","public":true,"icon":"wand-magic-sparkles","pages":[{"title":"Overview","icon":"wand-magic-sparkles","href":"/en/api-reference/actions"},{"title":"List actions","api":"GET https://api-prod.usefini.com/v2/hc-tools/public","href":"/en/api-reference/list-actions"},{"title":"Get action","api":"GET https://api-prod.usefini.com/v2/hc-tools/{id}/public","href":"/en/api-reference/get-action"},{"title":"Create action","api":"POST https://api-prod.usefini.com/v2/hc-tools/public","href":"/en/api-reference/create-action"},{"title":"Update action","api":"PATCH https://api-prod.usefini.com/v2/hc-tools/{id}/public","href":"/en/api-reference/update-action"},{"title":"Delete action","api":"DELETE https://api-prod.usefini.com/v2/hc-tools/{id}/public","href":"/en/api-reference/delete-action"},{"title":"Test action","api":"POST https://api-prod.usefini.com/v2/hc-tools/{id}/test-run/public","href":"/en/api-reference/test-action"},{"title":"List agent assignments","api":"GET https://api-prod.usefini.com/v2/hc-tools/{id}/junctions/public","href":"/en/api-reference/list-action-agents"},{"title":"Assign to agents","api":"POST https://api-prod.usefini.com/v2/hc-tools/junctions/public","href":"/en/api-reference/assign-action-agents"}]},{"group":"Attributes","public":true,"icon":"id-card","pages":[{"title":"Overview","icon":"id-card","href":"/en/api-reference/attributes"},{"title":"List attributes","api":"GET https://api-prod.usefini.com/v2/hc-tools/public","href":"/en/api-reference/list-attributes"},{"title":"Get attribute","api":"GET https://api-prod.usefini.com/v2/hc-tools/{id}/public","href":"/en/api-reference/get-attribute"},{"title":"Create attribute","api":"POST https://api-prod.usefini.com/v2/hc-tools/public","href":"/en/api-reference/create-attribute"},{"title":"Update attribute","api":"PATCH https://api-prod.usefini.com/v2/hc-tools/{id}/public","href":"/en/api-reference/update-attribute"},{"title":"Delete attribute","api":"DELETE https://api-prod.usefini.com/v2/hc-tools/{id}/public","href":"/en/api-reference/delete-attribute"},{"title":"Test attribute","api":"POST https://api-prod.usefini.com/v2/hc-tools/{id}/test-run/public","href":"/en/api-reference/test-attribute"},{"title":"List agent assignments","api":"GET https://api-prod.usefini.com/v2/hc-tools/{id}/junctions/public","href":"/en/api-reference/list-attribute-agents"},{"title":"Assign to agents","api":"POST https://api-prod.usefini.com/v2/hc-tools/junctions/public","href":"/en/api-reference/assign-attribute-agents"}]},{"group":"External API calls","public":true,"icon":"plug","pages":[{"title":"Overview","icon":"plug","href":"/en/api-reference/actions-and-attributes"},{"title":"List external API calls","api":"GET https://api-prod.usefini.com/v2/api-function-configs/public","href":"/en/api-reference/list-data-steps"},{"title":"Get external API call","api":"GET https://api-prod.usefini.com/v2/api-function-configs/{id}/public","href":"/en/api-reference/get-data-step"},{"title":"Create external API call","api":"POST https://api-prod.usefini.com/v2/api-function-configs/public","href":"/en/api-reference/create-data-step"},{"title":"Update external API call","api":"PATCH https://api-prod.usefini.com/v2/api-function-configs/{id}/public","href":"/en/api-reference/update-data-step"},{"title":"Delete external API call","api":"DELETE https://api-prod.usefini.com/v2/api-function-configs/{id}/public","href":"/en/api-reference/delete-data-step"},{"title":"Test external API call","api":"POST https://api-prod.usefini.com/v2/api-function-configs/test-run/public","href":"/en/api-reference/test-data-step"}]},{"group":"Intent Rules","public":true,"icon":"route","pages":[{"title":"Overview","icon":"route","href":"/en/api-reference/intent-rules"},{"title":"List intent rules","api":"GET https://api-prod.usefini.com/v2/hc-rules/public","href":"/en/api-reference/list-intent-rules"},{"title":"Get intent rule","api":"GET https://api-prod.usefini.com/v2/hc-rules/{id}/public","href":"/en/api-reference/get-intent-rule"},{"title":"Get intent-rule fields context","api":"GET https://api-prod.usefini.com/v2/hc-rules/fields-context/public","href":"/en/api-reference/get-intent-rule-fields-context"},{"title":"Generate intent-rule draft with AI","api":"POST https://api-prod.usefini.com/v2/hc-rules/generate/public","href":"/en/api-reference/generate-intent-rule-draft"},{"title":"Create intent rule","api":"POST https://api-prod.usefini.com/v2/hc-rules/public","href":"/en/api-reference/create-intent-rule"},{"title":"Update intent rule","api":"PATCH https://api-prod.usefini.com/v2/hc-rules/{id}/public","href":"/en/api-reference/update-intent-rule"},{"title":"List intent-rule versions","api":"GET https://api-prod.usefini.com/v2/hc-rules/{id}/versions/public","href":"/en/api-reference/list-rule-versions"},{"title":"Get intent-rule version","api":"GET https://api-prod.usefini.com/v2/hc-rules/{id}/versions/{versionId}/public","href":"/en/api-reference/get-rule-version"},{"title":"Publish intent-rule draft","api":"POST https://api-prod.usefini.com/v2/hc-rules/{id}/publish/public","href":"/en/api-reference/publish-rule-draft"},{"title":"Unpublish intent rule","api":"POST https://api-prod.usefini.com/v2/hc-rules/{id}/unpublish/public","href":"/en/api-reference/unpublish-intent-rule"},{"title":"Restore intent-rule version as draft","api":"POST https://api-prod.usefini.com/v2/hc-rules/{id}/versions/{versionId}/restore-as-draft/public","href":"/en/api-reference/restore-rule-version-as-draft"},{"title":"Delete intent-rule draft version","api":"DELETE https://api-prod.usefini.com/v2/hc-rules/{id}/versions/{versionId}/public","href":"/en/api-reference/delete-rule-draft-version"},{"title":"Get rule version test paths","api":"GET https://api-prod.usefini.com/v2/hc-rules/{id}/versions/{versionId}/test-paths/public","href":"/en/api-reference/get-rule-version-test-paths"},{"title":"Preview rule test paths","api":"POST https://api-prod.usefini.com/v2/hc-rules/test-paths/config/public","href":"/en/api-reference/preview-rule-test-paths"},{"title":"Run rule version test path","api":"POST https://api-prod.usefini.com/v2/hc-rules/{id}/versions/{versionId}/test-paths/run/public","href":"/en/api-reference/run-rule-version-test-path"},{"title":"Run rule test path from config","api":"POST https://api-prod.usefini.com/v2/hc-rules/test-paths/config/run/public","href":"/en/api-reference/run-rule-test-path-config"},{"title":"Delete intent rule","api":"DELETE https://api-prod.usefini.com/v2/hc-rules/{id}/public","href":"/en/api-reference/delete-intent-rule"}]},{"group":"Guardrails","icon":"shield-check","pages":[{"title":"Overview","icon":"shield-check","href":"/en/api-reference/guardrails"},{"title":"List guardrail check types","api":"GET https://api-prod.usefini.com/v2/guardrail-policies/check-types/public","href":"/en/api-reference/list-guardrail-check-types"},{"title":"List guardrail policies","api":"GET https://api-prod.usefini.com/v2/guardrail-policies/public","href":"/en/api-reference/list-guardrail-policies"},{"title":"Get guardrail policy","api":"GET https://api-prod.usefini.com/v2/guardrail-policies/{id}/public","href":"/en/api-reference/get-guardrail-policy"},{"title":"Create guardrail policy","api":"POST https://api-prod.usefini.com/v2/guardrail-policies/public","href":"/en/api-reference/create-guardrail-policy"},{"title":"Update guardrail policy","api":"PUT https://api-prod.usefini.com/v2/guardrail-policies/{id}/public","href":"/en/api-reference/update-guardrail-policy"},{"title":"Delete guardrail policy","api":"DELETE https://api-prod.usefini.com/v2/guardrail-policies/{id}/public","href":"/en/api-reference/delete-guardrail-policy"},{"title":"List guardrail runs","api":"GET https://api-prod.usefini.com/v2/guardrail-policies/runs/public","href":"/en/api-reference/list-guardrail-runs"},{"title":"Get guardrail hits","api":"GET https://api-prod.usefini.com/v2/guardrail-policies/hits/public","href":"/en/api-reference/get-guardrail-hits"}]},{"group":"Business Rules","public":true,"icon":"briefcase","pages":[{"title":"Overview","icon":"briefcase","href":"/en/api-reference/business-rules"},{"title":"List Business Rules","api":"GET https://api-prod.usefini.com/v2/business-rules/public","href":"/en/api-reference/list-business-rules"},{"title":"Get Business Rule","api":"GET https://api-prod.usefini.com/v2/business-rules/{id}/public","href":"/en/api-reference/get-business-rule"},{"title":"Get Business Rule fields context","api":"GET https://api-prod.usefini.com/v2/business-rules/fields-context/public","href":"/en/api-reference/get-business-rule-fields-context"},{"title":"List default Business Rules","api":"GET https://api-prod.usefini.com/v2/business-rules/default/public","href":"/en/api-reference/list-default-rules"},{"title":"Create Business Rule","api":"POST https://api-prod.usefini.com/v2/business-rules/public","href":"/en/api-reference/create-business-rule"},{"title":"Duplicate Business Rule","api":"POST https://api-prod.usefini.com/v2/business-rules/{id}/duplicate/public","href":"/en/api-reference/duplicate-business-rule"},{"title":"Evaluate Business Rule","api":"POST https://api-prod.usefini.com/v2/business-rules/{id}/evaluate/public","href":"/en/api-reference/evaluate-business-rule"},{"title":"Get Business Rule test fields","api":"GET https://api-prod.usefini.com/v2/business-rules/{id}/test-fields/public","href":"/en/api-reference/get-business-rule-test-fields"},{"title":"Preview Business Rule test fields","api":"POST https://api-prod.usefini.com/v2/business-rules/test-fields/preview/public","href":"/en/api-reference/preview-business-rule-test-fields"},{"title":"Update Business Rule","api":"PATCH https://api-prod.usefini.com/v2/business-rules/{id}/public","href":"/en/api-reference/update-business-rule"},{"title":"Delete Business Rule","api":"DELETE https://api-prod.usefini.com/v2/business-rules/{id}/public","href":"/en/api-reference/delete-business-rule"}]},{"group":"Reply Rules","public":true,"icon":"reply-all","pages":[{"title":"Overview","icon":"reply-all","href":"/en/api-reference/reply-rules"},{"title":"Get reply rules","api":"GET https://api-prod.usefini.com/v2/reply-behavior/public","href":"/en/api-reference/get-reply-rules"},{"title":"Get reply rule fields context","api":"GET https://api-prod.usefini.com/v2/reply-behavior/fields-context/public","href":"/en/api-reference/get-reply-rule-fields-context"},{"title":"Update reply rule","api":"PUT https://api-prod.usefini.com/v2/reply-behavior/{replyType}/public","href":"/en/api-reference/update-reply-rule"}]},{"group":"Tag groups","public":true,"icon":"tag","pages":[{"title":"Overview","icon":"tag","href":"/en/api-reference/tag-groups"},{"title":"List tag groups","api":"GET https://api-prod.usefini.com/v2/tag-groups/public","href":"/en/api-reference/list-tag-groups"},{"title":"Get tag group","api":"GET https://api-prod.usefini.com/v2/tag-groups/{id}/public","href":"/en/api-reference/get-tag-group"},{"title":"Create tag group","api":"POST https://api-prod.usefini.com/v2/tag-groups/public","href":"/en/api-reference/create-tag-group"},{"title":"Update tag group","api":"PUT https://api-prod.usefini.com/v2/tag-groups/{id}/public","href":"/en/api-reference/update-tag-group"},{"title":"Delete tag group","api":"DELETE https://api-prod.usefini.com/v2/tag-groups/{id}/public","href":"/en/api-reference/delete-tag-group"}]},{"group":"Tags","public":true,"icon":"tag","pages":[{"title":"Overview","icon":"tag","href":"/en/api-reference/tags"},{"title":"Get tag","api":"GET https://api-prod.usefini.com/v2/tags/{id}/public","href":"/en/api-reference/get-tag"},{"title":"List tags in group","api":"GET https://api-prod.usefini.com/v2/tag-groups/{id}/tags/public","href":"/en/api-reference/list-tags-in-group"},{"title":"List tags across groups","api":"GET https://api-prod.usefini.com/v2/tag-groups/tags/public","href":"/en/api-reference/list-tags-across-groups"},{"title":"Create tag","api":"POST https://api-prod.usefini.com/v2/tag-groups/{id}/tags/public","href":"/en/api-reference/create-tag"},{"title":"Update tag","api":"PUT https://api-prod.usefini.com/v2/tag-groups/tags/{id}/public","href":"/en/api-reference/update-tag"},{"title":"Delete tag","api":"DELETE https://api-prod.usefini.com/v2/tag-groups/tags/{id}/public","href":"/en/api-reference/delete-tag"}]},{"group":"Conversations","public":true,"icon":"address-book","pages":[{"title":"Overview","icon":"address-book","href":"/en/api-reference/conversations"},{"title":"Sync conversations","api":"POST https://api-prod.usefini.com/v2/hc-interactions/sync/public","href":"/en/api-reference/sync-conversations"},{"title":"List conversations","api":"GET https://api-prod.usefini.com/v2/hc-interactions/public","href":"/en/api-reference/list-conversations"},{"title":"Get conversation","api":"GET https://api-prod.usefini.com/v2/hc-interactions/{id}/public","href":"/en/api-reference/get-conversation"},{"title":"Get conversation memories","api":"GET https://api-prod.usefini.com/v2/hc-interactions/{id}/memories/public","href":"/en/api-reference/get-conversation-memories"},{"title":"Get event metadata","api":"GET https://api-prod.usefini.com/v2/hc-events/{id}/metadata","href":"/en/api-reference/get-event-metadata"},{"title":"Generate Answer","api":"POST https://api-prod.usefini.com/v2/hc-interactions/events/public","href":"/en/api-reference/generate-answer"},{"title":"Send conversation feedback","api":"POST https://api-prod.usefini.com/v2/hc-interactions/{id}/feedback/public","href":"/en/api-reference/send-feedback-conversation"},{"title":"Mark feedback resolved","api":"POST https://api-prod.usefini.com/v2/hc-interactions/{id}/feedback-resolved/public","href":"/en/api-reference/resolve-conversation-feedback"},{"title":"Add feedback note","api":"POST https://api-prod.usefini.com/v2/hc-interactions/{id}/feedback-note/public","href":"/en/api-reference/add-conversation-feedback-note"},{"title":"Add internal note","api":"POST https://api-prod.usefini.com/v2/hc-interactions/{id}/internal-note/public","href":"/en/api-reference/add-conversation-internal-note"},{"title":"Evaluate conversation rule","api":"POST https://api-prod.usefini.com/v2/hc-interactions/{id}/evaluate-rule/{ruleId}/public","href":"/en/api-reference/evaluate-conversation-rule"},{"title":"Delete conversation","api":"DELETE https://api-prod.usefini.com/v2/hc-interactions/{id}/public","href":"/en/api-reference/delete-conversation"},{"title":"Bulk delete conversations","api":"DELETE https://api-prod.usefini.com/v2/hc-interactions/public","href":"/en/api-reference/bulk-delete-conversations"}]},{"group":"Refine with AI","public":true,"icon":"wand-magic-sparkles","pages":[{"title":"Overview","icon":"wand-magic-sparkles","href":"/en/api-reference/refine-with-ai"},{"title":"Create Refine with AI iteration","api":"POST https://api-prod.usefini.com/v2/fix-review/interactions/{id}/events/{eventId}/sessions/iterations/public","href":"/en/api-reference/create-fix-review-iteration"},{"title":"Get active Refine with AI session","api":"GET https://api-prod.usefini.com/v2/fix-review/interactions/{id}/events/{eventId}/session/public","href":"/en/api-reference/get-active-fix-review-session"},{"title":"Get Refine with AI session","api":"GET https://api-prod.usefini.com/v2/fix-review/interactions/{id}/events/{eventId}/sessions/{sessionId}/public","href":"/en/api-reference/get-fix-review-session"}]},{"group":"Replays","public":true,"icon":"arrow-rotate-right","pages":[{"title":"Replays","icon":"arrow-rotate-right","href":"/en/api-reference/replays"},{"title":"Create replay","api":"POST https://api-prod.usefini.com/v2/replays/public","href":"/en/api-reference/create-replay"},{"title":"List replays","api":"GET https://api-prod.usefini.com/v2/replays/interactions/{interactionId}/public","href":"/en/api-reference/list-replays"},{"title":"Get replay","api":"GET https://api-prod.usefini.com/v2/replays/{id}/public","href":"/en/api-reference/get-replay"},{"title":"Get replay events","api":"GET https://api-prod.usefini.com/v2/replays/{id}/events/public","href":"/en/api-reference/get-replay-events"}]},{"group":"Test Suite","public":true,"icon":"vial","pages":[{"title":"Overview","icon":"vial","href":"/en/api-reference/test-suite"},{"title":"List criteria groups","api":"GET https://api-prod.usefini.com/v2/test-suite/criteria-groups/public","href":"/en/api-reference/list-test-suite-criteria-groups"},{"title":"Create criteria group","api":"POST https://api-prod.usefini.com/v2/test-suite/criteria-groups/public","href":"/en/api-reference/create-test-suite-criteria-group"},{"title":"Get criteria group","api":"GET https://api-prod.usefini.com/v2/test-suite/criteria-groups/{id}/public","href":"/en/api-reference/get-test-suite-criteria-group"},{"title":"Update criteria group","api":"PATCH https://api-prod.usefini.com/v2/test-suite/criteria-groups/{id}/public","href":"/en/api-reference/update-test-suite-criteria-group"},{"title":"Add cases to criteria group","api":"POST https://api-prod.usefini.com/v2/test-suite/criteria-groups/{id}/cases/public","href":"/en/api-reference/add-test-suite-group-cases"},{"title":"Remove cases from criteria group","api":"DELETE https://api-prod.usefini.com/v2/test-suite/criteria-groups/{id}/cases/public","href":"/en/api-reference/remove-test-suite-group-cases"},{"title":"Add conversations to criteria group","api":"POST https://api-prod.usefini.com/v2/test-suite/criteria-groups/{id}/conversations/public","href":"/en/api-reference/add-test-suite-group-conversations"},{"title":"Get Test Suite fields context","api":"GET https://api-prod.usefini.com/v2/test-suite/fields-context/public","href":"/en/api-reference/get-test-suite-fields-context"},{"title":"Create library criterion","api":"POST https://api-prod.usefini.com/v2/test-suite/criteria/public","href":"/en/api-reference/create-test-suite-criterion"},{"title":"Get run configuration","api":"GET https://api-prod.usefini.com/v2/test-suite/run-configuration/public","href":"/en/api-reference/get-test-suite-run-configuration"},{"title":"List Action fixtures","api":"GET https://api-prod.usefini.com/v2/test-suite/action-fixtures/public","href":"/en/api-reference/list-test-suite-action-fixtures"},{"title":"List test cases","api":"GET https://api-prod.usefini.com/v2/test-suite/cases/public","href":"/en/api-reference/list-test-suite-cases"},{"title":"Get conversation input","api":"GET https://api-prod.usefini.com/v2/test-suite/conversation-input/public","href":"/en/api-reference/get-test-suite-conversation-input"},{"title":"Create test case","api":"POST https://api-prod.usefini.com/v2/test-suite/cases/public","href":"/en/api-reference/create-test-suite-case"},{"title":"Get test case","api":"GET https://api-prod.usefini.com/v2/test-suite/cases/{id}/public","href":"/en/api-reference/get-test-suite-case"},{"title":"Update test case","api":"PATCH https://api-prod.usefini.com/v2/test-suite/cases/{id}/public","href":"/en/api-reference/update-test-suite-case"},{"title":"Delete test case","api":"DELETE https://api-prod.usefini.com/v2/test-suite/cases/{id}/public","href":"/en/api-reference/delete-test-suite-case"},{"title":"List collections","api":"GET https://api-prod.usefini.com/v2/test-suite/folders/public","href":"/en/api-reference/list-test-suite-collections"},{"title":"Create collection","api":"POST https://api-prod.usefini.com/v2/test-suite/folders/public","href":"/en/api-reference/create-test-suite-collection"},{"title":"Delete collection","api":"DELETE https://api-prod.usefini.com/v2/test-suite/folders/{id}/public","href":"/en/api-reference/delete-test-suite-collection"},{"title":"Add cases to collection","api":"POST https://api-prod.usefini.com/v2/test-suite/folders/{id}/cases/public","href":"/en/api-reference/add-test-suite-collection-cases"},{"title":"Add criteria groups to collection","api":"POST https://api-prod.usefini.com/v2/test-suite/folders/{id}/groups/public","href":"/en/api-reference/add-test-suite-collection-groups"},{"title":"Remove cases from collection","api":"DELETE https://api-prod.usefini.com/v2/test-suite/folders/{id}/cases/public","href":"/en/api-reference/remove-test-suite-collection-cases"},{"title":"Remove criteria groups from collection","api":"DELETE https://api-prod.usefini.com/v2/test-suite/folders/{id}/groups/public","href":"/en/api-reference/remove-test-suite-collection-groups"},{"title":"List runs","api":"GET https://api-prod.usefini.com/v2/test-suite/runs/public","href":"/en/api-reference/list-test-suite-runs"},{"title":"Get Test Suite summary","api":"GET https://api-prod.usefini.com/v2/test-suite/summary/public","href":"/en/api-reference/get-test-suite-summary"},{"title":"Preview run readiness","api":"POST https://api-prod.usefini.com/v2/test-suite/runs/preview/public","href":"/en/api-reference/preview-test-suite-run"},{"title":"Start run","api":"POST https://api-prod.usefini.com/v2/test-suite/runs/public","href":"/en/api-reference/start-test-suite-run"},{"title":"Get run","api":"GET https://api-prod.usefini.com/v2/test-suite/runs/{id}/public","href":"/en/api-reference/get-test-suite-run"},{"title":"Save missing Action mock","api":"POST https://api-prod.usefini.com/v2/test-suite/case-runs/{id}/action-mocks/public","href":"/en/api-reference/save-test-suite-missing-action-mock"}]},{"group":"Knowledge","public":true,"icon":"hexagon-nodes","pages":[{"group":"Sources","icon":"book-open","pages":[{"title":"Overview","description":"Add raw content to Fini, ingest it into source records, and move it into the knowledge workflow.","icon":"book-open","href":"/en/api-reference/sources"},{"title":"List sources","api":"GET https://api-prod.usefini.com/v2/documents/public","href":"/en/api-reference/list-sources"},{"title":"Get source","api":"GET https://api-prod.usefini.com/v2/documents/public/{id}","description":"Fetch one source record by ID. Returns the same shape as the list endpoint, scoped to a single source.","href":"/en/api-reference/get-source"},{"title":"List provider resources","api":"GET https://api-prod.usefini.com/v2/documents/public/resources/{provider}","href":"/en/api-reference/list-provider-resources"},{"title":"Register provider resources","api":"POST https://api-prod.usefini.com/v2/documents/public/resources/{provider}","href":"/en/api-reference/register-provider-resources"},{"title":"Ingest sources","api":"POST https://api-prod.usefini.com/v2/documents/public","href":"/en/api-reference/ingest-sources"},{"title":"Crawl links","api":"POST https://api-prod.usefini.com/v2/documents/public/deep-crawl/links","href":"/en/api-reference/deep-crawl-links"},{"title":"Refresh sources","api":"POST https://api-prod.usefini.com/v2/documents/public/refresh","href":"/en/api-reference/refresh-sources"},{"title":"Delete sources","api":"DELETE https://api-prod.usefini.com/v2/documents/public","href":"/en/api-reference/delete-sources"}]},{"group":"Knowledge generation","icon":"wand-magic-sparkles","pages":[{"title":"Overview","icon":"wand-magic-sparkles","href":"/en/api-reference/knowledge"},{"title":"Initialize knowledge folders","api":"POST https://api-prod.usefini.com/v2/knowledge/public/tree/initialize","href":"/en/api-reference/initialize-knowledge-folders"},{"title":"Persist knowledge folders","api":"POST https://api-prod.usefini.com/v2/knowledge/public/tree/persist","href":"/en/api-reference/persist-knowledge-folders"},{"title":"Generate knowledge","api":"POST https://api-prod.usefini.com/v2/knowledge/public","href":"/en/api-reference/generate-knowledge"},{"title":"Bulk generate knowledge","api":"POST https://api-prod.usefini.com/v2/knowledge/public/bulk","href":"/en/api-reference/bulk-generate-knowledge"},{"title":"Check knowledge jobs","api":"POST https://api-prod.usefini.com/v2/knowledge/public/jobs/status","href":"/en/api-reference/check-knowledge-jobs"}]},{"group":"Articles","icon":"book-open","pages":[{"title":"Overview","icon":"book-open","href":"/en/api-reference/manage-knowledge"},{"title":"List articles","api":"GET https://api-prod.usefini.com/v2/hc-articles/public","href":"/en/api-reference/list-articles"},{"title":"Get articles by IDs","api":"POST https://api-prod.usefini.com/v2/hc-articles/ids/public","href":"/en/api-reference/get-articles-by-ids"},{"title":"Create article","api":"POST https://api-prod.usefini.com/v2/hc-articles/public","href":"/en/api-reference/create-article"},{"title":"Update article","api":"PUT https://api-prod.usefini.com/v2/hc-articles/{id}/public","href":"/en/api-reference/update-article"},{"title":"Create article draft","api":"POST https://api-prod.usefini.com/v2/hc-articles/{id}/draft/public","href":"/en/api-reference/create-article-draft"},{"title":"Publish article draft","api":"POST https://api-prod.usefini.com/v2/hc-articles/{id}/publish/public","href":"/en/api-reference/publish-article-draft"},{"title":"List article history","api":"GET https://api-prod.usefini.com/v2/hc-articles/{id}/history/public","href":"/en/api-reference/list-article-history"},{"title":"Get article history version","api":"POST https://api-prod.usefini.com/v2/hc-articles/{id}/history/public","href":"/en/api-reference/get-article-history-version"},{"title":"Revert article version","api":"POST https://api-prod.usefini.com/v2/hc-articles/{id}/revert/public","href":"/en/api-reference/revert-article-version"},{"title":"Delete article","api":"DELETE https://api-prod.usefini.com/v2/hc-articles/{id}/public","href":"/en/api-reference/delete-article"}]},{"group":"Folders \u0026 assignments","icon":"folder","pages":[{"title":"Overview","icon":"folder","href":"/en/api-reference/organize-knowledge"},{"title":"Get knowledge folders","api":"GET https://api-prod.usefini.com/v2/hc-folders/public","href":"/en/api-reference/get-knowledge-folders"},{"title":"Create knowledge folder","api":"POST https://api-prod.usefini.com/v2/hc-folders/public","href":"/en/api-reference/create-knowledge-folder"},{"title":"Update knowledge folder","api":"PUT https://api-prod.usefini.com/v2/hc-folders/{id}/public","href":"/en/api-reference/update-knowledge-folder"},{"title":"Move knowledge folder","api":"PUT https://api-prod.usefini.com/v2/hc-folders/{id}/move/public","href":"/en/api-reference/move-knowledge-folder"},{"title":"Move article","api":"PUT https://api-prod.usefini.com/v2/hc-articles/{id}/move/public","href":"/en/api-reference/move-article"},{"title":"Delete knowledge folder","api":"DELETE https://api-prod.usefini.com/v2/hc-folders/{id}/public","href":"/en/api-reference/delete-knowledge-folder"},{"title":"Assign knowledge to agents","api":"POST https://api-prod.usefini.com/v2/hc-bot-folder-junctions/public","href":"/en/api-reference/assign-knowledge-to-agents"}]}]},{"group":"Updates","icon":"clock-rotate-left","pages":[{"title":"Changelog","icon":"clock-rotate-left","href":"/en/changelog"}]}]},{"tab":"Use cases","pages":[{"title":"Use cases","href":"/en/use-cases/refunds"}]},{"tab":"Trust \u0026 pricing","pages":[{"title":"Trust \u0026 pricing","href":"/en/security/overview"}]}]}]},"basePath":"","title":"List sources - Fini","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js"]}