Documentation Index

Fetch the complete documentation index at: /llms.txt

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

LOCAL DRAFT PREVIEW. Not published. Pages tagged Draft are new, pages tagged Updated have additions. Yellow 'To confirm' boxes are internal questions.

Fini home pagelight logodark logo
    Documentation
    Use cases
    Trust & pricing
    API reference

    API Setup

    • API overview
    • API contract
    • Static IP Addresses
    • Database and Warehouse Connections
    • MCP Connections

    LLM Access

    • Coding agents
    • Claude Plugin

    Agents

    • Overview
    • POST
      Create agent
    • List agents
    • DEL
      Delete agent

    Analytics

    • Overview
    • Get agent analytics
    • Get agent analytics section

    Prompts

    • Overview
    • Get prompts
    • Get prompt history
    • Get prompt version
    • Update prompts
    • POST
      Create prompt draft version
    • Get prompt draft version
    • Publish prompt draft version
    • DEL
      Delete prompt draft version

    Actions

    • Overview
    • List actions
    • Get action
    • POST
      Create action
    • Update action
    • DEL
      Delete action
    • Test action
    • List agent assignments
    • POST
      Assign to agents

    Attributes

    • Overview
    • List attributes
    • Get attribute
    • POST
      Create attribute
    • Update attribute
    • DEL
      Delete attribute
    • Test attribute
    • List agent assignments
    • POST
      Assign to agents

    External API calls

    • Overview
    • List external API calls
    • Get external API call
    • POST
      Create external API call
    • Update external API call
    • DEL
      Delete external API call
    • Test external API call

    Intent Rules

    • Overview
    • List intent rules
    • Get intent rule
    • Get intent-rule fields context
    • POST
      Generate intent-rule draft with AI
    • POST
      Create intent rule
    • Update intent rule
    • List intent-rule versions
    • Get intent-rule version
    • Publish intent-rule draft
    • Restore intent-rule version as draft
    • DEL
      Delete intent-rule draft version
    • Get rule version test paths
    • Preview rule test paths
    • Run rule version test path
    • Run rule test path from config
    • DEL
      Delete intent rule

    Guardrails

    • Overview
    • List guardrail check types
    • List guardrail policies
    • Get guardrail policy
    • POST
      Create guardrail policy
    • Update guardrail policy
    • DEL
      Delete guardrail policy
    • List guardrail runs
    • Get guardrail hits

    Business Rules

    • Overview
    • List Business Rules
    • Get Business Rule
    • Get Business Rule fields context
    • List default Business Rules
    • POST
      Create Business Rule
    • POST
      Duplicate Business Rule
    • POST
      Evaluate Business Rule
    • Get Business Rule test fields
    • Preview Business Rule test fields
    • Update Business Rule
    • DEL
      Delete Business Rule

    Reply Rules

    • Overview
    • Get reply rules
    • Get reply rule fields context
    • Update reply rule

    Tag groups

    • Overview
    • List tag groups
    • Get tag group
    • POST
      Create tag group
    • Update tag group
    • DEL
      Delete tag group

    Tags

    • Overview
    • Get tag
    • List tags in group
    • List tags across groups
    • POST
      Create tag
    • Update tag
    • DEL
      Delete tag

    Conversations

    • Overview
    • List conversations
    • Get conversation
    • Get event metadata
    • POST
      Generate Answer
    • Send conversation feedback
    • Mark feedback resolved
    • POST
      Add feedback note
    • POST
      Evaluate conversation rule
    • DEL
      Delete conversation
    • DEL
      Bulk delete conversations

    Refine with AI

    • Overview
    • POST
      Create Refine with AI iteration
    • Get active Refine with AI session
    • Get Refine with AI session

    Replays

    • Replays
    • POST
      Create replay
    • List replays
    • Get replay
    • Get replay events

    Test Sets

    • Overview
    • List test sets
    • POST
      Create a test set
    • Get fields context
    • Get a test set
    • Update a test set
    • DEL
      Delete a test set
    • POST
      Add criteria
    • Update a criterion
    • DEL
      Delete a criterion
    • List runs
    • Start a run
    • Get a run

    Knowledge

      • Overview
      • List sources
      • Get source
      • List provider resources
      • Register provider resources
      • Ingest sources
      • POST
        Crawl links
      • Refresh sources
      • DEL
        Delete sources

    Updates

    • Changelog
      Draft
    Sources

    List provider resources

    > ## Documentation Index
    > Fetch the complete documentation index at: https://docs.usefini.com/llms.txt
    > Use this file to discover all available pages before exploring further.
    
    # List provider resources
    
    > Discover importable resources from a connected provider. Step 1 of the provider import flow.
    
    Lists resources that can be imported from a connected provider. This is the first call in the connected-source flow. Once you have picked the resources you want, pass them to [Register provider resources](/en/api-reference/register-provider-resources) to create source records.
    
    <Note>
      Resources that have already been imported successfully from the provider are excluded from the response. This endpoint is for discovering *new* content, not auditing what is already in Fini. To see what is already imported, use [List sources](/en/api-reference/list-sources) with the provider as a `source` filter.
    </Note>
    
    ## Headers
    
    <ParamField header="Authorization" type="string" required>
      Bearer token containing your Fini workspace API key. Format: `Bearer fini_...` The key needs `read` scope.
    </ParamField>
    
    ## Path parameters
    
    <ParamField path="provider" type="string" required>
      Provider name. Supported values: `notion`, `zendesk`, `confluence`.
    </ParamField>
    
    <Warning>
      The provider must already be connected in the workspace via the dashboard. A disconnected or unsupported provider returns `400 Bad Request`.
    </Warning>
    
    <RequestExample>
      ~~~bash cURL theme={null}
      curl --request GET \
        --url 'https://api-prod.usefini.com/v2/documents/public/resources/notion' \
        --header 'Authorization: Bearer fini_your_api_key'
      ~~~
    
      ~~~python Python theme={null}
      import requests
    
      provider = "notion"
      response = requests.get(
          f"https://api-prod.usefini.com/v2/documents/public/resources/{provider}",
          headers={"Authorization": "Bearer fini_your_api_key"},
      )
      resources = response.json()
      ~~~
    
      ~~~javascript Node.js theme={null}
      const provider = "notion";
    
      const response = await fetch(
        `https://api-prod.usefini.com/v2/documents/public/resources/${provider}`,
        {
          headers: {
            Authorization: "Bearer fini_your_api_key",
          },
        }
      );
      const resources = await response.json();
      ~~~
    </RequestExample>
    
    ## Response
    
    The response shape varies by provider.
    
    ### Notion
    
    A flat array of `NotionResource` objects.
    
    <ResponseField name="[]" type="NotionResource[]">
      Array of importable Notion resources.
    </ResponseField>
    
    ### Zendesk
    
    A nested category tree returned as `ZendeskCategory[]`. Categories contain section `children`, and sections contain article `children`.
    
    <ResponseField name="[]" type="ZendeskCategory[]">
      Root category tree for the connected Zendesk help center.
    </ResponseField>
    
    ### Confluence
    
    An array of `ConfluenceSpace` objects, each with nested `pages`.
    
    <ResponseField name="[]" type="ConfluenceSpace[]">
      Array of importable Confluence spaces.
    </ResponseField>
    
    <ResponseExample>
      ~~~json Notion theme={null}
      [
        {
          "externalId": "123456",
          "title": "Billing FAQ",
          "originalUrl": "https://www.notion.so/fini/Billing-FAQ-123456",
          "mimeType": "text/markdown",
          "iconLink": null,
          "object": "page"
        },
        {
          "externalId": "789012",
          "title": "Refund Policy",
          "originalUrl": "https://www.notion.so/fini/Refund-Policy-789012",
          "mimeType": "text/markdown",
          "iconLink": "https://www.notion.so/icons/document_gray.svg",
          "object": "page"
        }
      ]
      ~~~
    
      ~~~json Zendesk theme={null}
      [
        {
          "externalId": "200001",
          "title": "Billing",
          "type": "category",
          "children": [
            {
              "externalId": "300001",
              "title": "Payments",
              "type": "section",
              "children": [
                {
                  "externalId": "400001",
                  "title": "How do I update my card?",
                  "originalUrl": "https://example.zendesk.com/hc/en-us/articles/400001",
                  "type": "article"
                }
              ]
            }
          ]
        }
      ]
      ~~~
    
      ~~~json Confluence theme={null}
      [
        {
          "key": "SUPPORT",
          "title": "Support Space",
          "originalUrl": "https://example.atlassian.net/wiki/spaces/SUPPORT",
          "pages": [
            {
              "externalId": "98765",
              "title": "Troubleshooting login issues",
              "originalUrl": "https://example.atlassian.net/wiki/spaces/SUPPORT/pages/98765"
            }
          ]
        }
      ]
      ~~~
    
      ~~~json 400 Bad Request theme={null}
      {
        "statusCode": 400,
        "message": "Provider not supported on public route",
        "error": "Bad Request"
      }
      ~~~
    </ResponseExample>
    
    ## Nested objects
    
    ### NotionResource
    
    <ResponseField name="externalId" type="string">
      Notion page or database ID.
    </ResponseField>
    
    <ResponseField name="title" type="string">
      Resource title.
    </ResponseField>
    
    <ResponseField name="originalUrl" type="string">
      Notion URL.
    </ResponseField>
    
    <ResponseField name="mimeType" type="string">
      MIME type. Typically `text/markdown` for pages.
    </ResponseField>
    
    <ResponseField name="iconLink" type="string | null">
      URL to the resource's Notion icon, when set.
    </ResponseField>
    
    <ResponseField name="object" type="string">
      Notion object type, for example `page` or `database`.
    </ResponseField>
    
    ### ZendeskCategory
    
    <ResponseField name="externalId" type="string">
      Zendesk category ID.
    </ResponseField>
    
    <ResponseField name="title" type="string">
      Category title.
    </ResponseField>
    
    <ResponseField name="type" type="string">
      Always `category`.
    </ResponseField>
    
    <ResponseField name="children" type="ZendeskSection[]">
      Nested sections inside the category.
    </ResponseField>
    
    ### ZendeskSection
    
    <ResponseField name="externalId" type="string">
      Zendesk section ID.
    </ResponseField>
    
    <ResponseField name="title" type="string">
      Section title.
    </ResponseField>
    
    <ResponseField name="type" type="string">
      Always `section`.
    </ResponseField>
    
    <ResponseField name="children" type="ZendeskArticle[]">
      Nested articles inside the section.
    </ResponseField>
    
    ### ZendeskArticle
    
    <ResponseField name="externalId" type="string">
      Zendesk article ID.
    </ResponseField>
    
    <ResponseField name="title" type="string">
      Article title.
    </ResponseField>
    
    <ResponseField name="originalUrl" type="string">
      Zendesk article URL.
    </ResponseField>
    
    <ResponseField name="type" type="string">
      Always `article`.
    </ResponseField>
    
    ### ConfluenceSpace
    
    <ResponseField name="key" type="string">
      Confluence space key.
    </ResponseField>
    
    <ResponseField name="title" type="string">
      Space title.
    </ResponseField>
    
    <ResponseField name="originalUrl" type="string">
      Space URL.
    </ResponseField>
    
    <ResponseField name="pages" type="ConfluencePage[]">
      Pages discovered inside the space.
    </ResponseField>
    
    ### ConfluencePage
    
    <ResponseField name="externalId" type="string">
      Confluence page ID.
    </ResponseField>
    
    <ResponseField name="title" type="string">
      Page title.
    </ResponseField>
    
    <ResponseField name="originalUrl" type="string">
      Page URL.
    </ResponseField>
    
    ## Next step
    
    Once you've picked the resources to import, pass them to [Register provider resources](/en/api-reference/register-provider-resources) to create source records. Resource registration alone does **not** queue ingestion. You still need to call [Ingest sources](/en/api-reference/ingest-sources) after.
    
    ## Errors
    
    <AccordionGroup>
      <Accordion title="400 Bad Request" icon="circle-exclamation">
        The provider is not supported on the public route (only `notion`, `zendesk`, `confluence` are accepted), or it's not connected in the workspace yet. Connect the provider in the dashboard first.
      </Accordion>
    
      <Accordion title="401 Unauthorized" icon="lock">
        The API key is missing, malformed, revoked, or invalid. Confirm `Authorization: Bearer fini_...` with the full key.
      </Accordion>
    
      <Accordion title="403 Forbidden" icon="shield-halved">
        The API key doesn't include the `read` scope, or the provider connection belongs to a different workspace.
      </Accordion>
    
      <Accordion title="The response is empty" icon="circle-question">
        Either the provider has no content to import, or everything available has already been imported. Already-imported resources are filtered out. Check [List sources](/en/api-reference/list-sources) with `source` set to the provider to see what is already in Fini.
      </Accordion>
    </AccordionGroup>
    
    
    ## Related topics
    
    - [Register provider resources](/en/api-reference/register-provider-resources.md)
    - [Overview](/en/api-reference/sources.md)
    - [Ingest sources](/en/api-reference/ingest-sources.md)
    
    
    This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.
    
    Get source
    Register provider resources
    Powered byThis documentation is built and hosted on Mintlify, a developer documentation platform