Fini Sources API
The Sources API from Fini — 5 operation(s) for sources.
The Sources API from Fini — 5 operation(s) for sources.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/fini-sources-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.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:
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
responses:
ServerError:
description: Internal server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
statusCode: 500
message: Internal Server Error
error: Internal Server Error
Unauthorized:
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
statusCode: 401
message: Unauthorized
error: Unauthorized
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
NotFound:
description: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
statusCode: 404
message: Not Found
error: Not Found
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.'