Fini Sources API

The Sources API from Fini — 5 operation(s) for sources.

OpenAPI Specification

fini-sources-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fini AI Agents Sources API
  version: v2
  description: Public REST API for Fini AI, the self-improving AI agent for enterprise customer support. Manage agents, conversations, knowledge (sources, articles, folders), rules, tags, and prompts, and drive the agent loop via Generate Answer. Structure captured by API Evangelist from the published Fini API reference; not an official Fini-published OpenAPI.
  contact:
    name: Fini AI
    url: https://docs.usefini.com/en/api-reference/authentication
  x-apis-json-generated: true
servers:
- url: https://api-prod.usefini.com/v2
  description: Production
security:
- bearerAuth: []
tags:
- name: Sources
paths:
  /documents/public/deep-crawl/links:
    post:
      operationId: crawlLinks
      summary: Discover additional web URLs from one or more seed links before ingesting them as sources.
      tags:
      - Sources
      description: Discover additional web URLs from one or more seed links before ingesting them as sources. Requires the `write` scope.
      externalDocs:
        url: https://docs.usefini.com/en/api-reference/crawl-links
      responses:
        '200':
          description: Successful response.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
        description: See the Fini API reference for the request body schema.
  /documents/public:
    delete:
      operationId: deleteSources
      summary: Delete source records and optionally delete the linked Articles in the same request.
      tags:
      - Sources
      description: Delete source records and optionally delete the linked Articles in the same request. Requires the `write` scope.
      externalDocs:
        url: https://docs.usefini.com/en/api-reference/delete-sources
      responses:
        '200':
          description: Successful response.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: ingestSources
      summary: Queue first-time ingestion or refresh jobs for web links or existing source IDs.
      tags:
      - Sources
      description: Queue first-time ingestion or refresh jobs for web links or existing source IDs. Requires the `write` scope.
      externalDocs:
        url: https://docs.usefini.com/en/api-reference/ingest-sources
      responses:
        '200':
          description: Successful response.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
        description: See the Fini API reference for the request body schema.
    get:
      operationId: listSources
      summary: Paginate through every source record in the workspace, with filters on source type, title, URL, linked article, and linked operation.
      tags:
      - Sources
      description: Paginate through every source record in the workspace, with filters on source type, title, URL, linked article, and linked operation. Requires the `read` scope.
      externalDocs:
        url: https://docs.usefini.com/en/api-reference/list-sources
      responses:
        '200':
          description: Successful response.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /documents/public/{id}:
    get:
      operationId: getSource
      summary: Fetch one source record by ID.
      tags:
      - Sources
      description: Fetch one source record by ID. Requires the `read` scope.
      externalDocs:
        url: https://docs.usefini.com/en/api-reference/get-source
      responses:
        '200':
          description: Successful response.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
        '404':
          $ref: '#/components/responses/NotFound'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: The id path parameter.
  /documents/public/refresh:
    post:
      operationId: refreshSources
      summary: Re-fetch existing source IDs so Fini can detect upstream changes and update linked knowledge.
      tags:
      - Sources
      description: Re-fetch existing source IDs so Fini can detect upstream changes and update linked knowledge. Requires the `write` scope.
      externalDocs:
        url: https://docs.usefini.com/en/api-reference/refresh-sources
      responses:
        '200':
          description: Successful response.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
        description: See the Fini API reference for the request body schema.
  /documents/public/resources/{provider}:
    get:
      operationId: listProviderResources
      summary: Discover importable resources from a connected provider. Step 1 of the provider import flow.
      tags:
      - Sources
      description: Discover importable resources from a connected provider. Step 1 of the provider import flow. Requires the `read` scope.
      externalDocs:
        url: https://docs.usefini.com/en/api-reference/list-provider-resources
      responses:
        '200':
          description: Successful response.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
        '404':
          $ref: '#/components/responses/NotFound'
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
        description: The provider path parameter.
    post:
      operationId: registerProviderResources
      summary: Create or update source records from provider resources. Step 2 of the connected-source flow.
      tags:
      - Sources
      description: Create or update source records from provider resources. Step 2 of the connected-source flow. Requires the `write` scope.
      externalDocs:
        url: https://docs.usefini.com/en/api-reference/register-provider-resources
      responses:
        '200':
          description: Successful response.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
        '404':
          $ref: '#/components/responses/NotFound'
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
        description: The provider path parameter.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
        description: See the Fini API reference for the request body schema.
components:
  responses:
    Forbidden:
      description: API key lacks the required scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 403
            message: API key does not have the required scope for this operation
            error: Forbidden
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 401
            message: Unauthorized
            error: Unauthorized
    ServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 500
            message: Internal Server Error
            error: Internal Server Error
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 404
            message: Not Found
            error: Not Found
  schemas:
    Error:
      type: object
      description: Standard Fini error envelope.
      properties:
        statusCode:
          type: integer
          example: 403
        message:
          type: string
          example: API key does not have the required scope for this operation
        error:
          type: string
          example: Forbidden
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: fini_ API key
      description: 'Bearer token containing your Fini workspace API key. Format: `Bearer fini_...`. The key carries `read` and/or `write` scope; write routes require the `write` scope.'