Fini Rules API
The Rules API from Fini — 6 operation(s) for rules.
The Rules API from Fini — 6 operation(s) for rules.
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-rules-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 Rules 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: Rules
paths:
/hc-rules/public:
post:
operationId: createRule
summary: Create a published rule.
tags:
- Rules
description: Create a published rule. Requires the `write` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/create-rule
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: listRules
summary: List rules in the workspace by type and draft state.
tags:
- Rules
description: List rules in the workspace by type and draft state. Requires the `read` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/list-rules
responses:
'200':
description: Successful response.
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/ServerError'
/hc-rules/draft/public:
post:
operationId: createRuleDraft
summary: Generate a draft rule from instructions.
tags:
- Rules
description: Generate a draft rule from instructions. Requires the `write` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/create-rule-draft
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.
/hc-rules/{id}/public:
delete:
operationId: deleteRule
summary: Delete one rule.
tags:
- Rules
description: Delete one rule. Requires the `write` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/delete-rule
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.
get:
operationId: getRule
summary: Fetch one rule by ID with its full tree.
tags:
- Rules
description: Fetch one rule by ID with its full tree. Requires the `read` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/get-rule
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.
patch:
operationId: updateRule
summary: Update an existing rule.
tags:
- Rules
description: Update an existing rule. Requires the `write` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/update-rule
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.
requestBody:
required: true
content:
application/json:
schema:
type: object
description: See the Fini API reference for the request body schema.
/hc-rules/{id}/duplicate/public:
post:
operationId: duplicateRule
summary: Create a copy of an existing rule.
tags:
- Rules
description: Create a copy of an existing rule. Requires the `write` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/duplicate-rule
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.
requestBody:
required: true
content:
application/json:
schema:
type: object
description: See the Fini API reference for the request body schema.
/hc-rules/{id}/publish/public:
post:
operationId: publishRuleDraft
summary: Publish a draft rule and assign it to one or more agents.
tags:
- Rules
description: Publish a draft rule and assign it to one or more agents. Requires the `write` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/publish-rule-draft
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.
requestBody:
required: true
content:
application/json:
schema:
type: object
description: See the Fini API reference for the request body schema.
/hc-rules/{id}/refine/public:
post:
operationId: refineRuleDraft
summary: Regenerate a draft rule using refinement instructions.
tags:
- Rules
description: Regenerate a draft rule using refinement instructions. Requires the `write` scope.
externalDocs:
url: https://docs.usefini.com/en/api-reference/refine-rule-draft
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.
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.'