curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-folders/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"title": "Refund policy",
"description": "Refund-policy conversations to re-check before prompt changes.",
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b"
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-folders/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'title': 'Refund policy',
'description': 'Refund-policy conversations to re-check before prompt changes.',
'parentFolderId': '0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b'
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-folders/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"title": "Refund policy",
"description": "Refund-policy conversations to re-check before prompt changes.",
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b"
},
)
data = response.json()
{
"id": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b",
"title": "Billing",
"description": "Refunds, invoices, and subscription changes.",
"parentFolderId": null,
"active": true,
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
Folders & assignments
Create knowledge folder
Create a folder in the knowledge tree.
POST
/
v2
/
hc-folders
/
public
curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-folders/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"title": "Refund policy",
"description": "Refund-policy conversations to re-check before prompt changes.",
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b"
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-folders/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'title': 'Refund policy',
'description': 'Refund-policy conversations to re-check before prompt changes.',
'parentFolderId': '0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b'
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-folders/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"title": "Refund policy",
"description": "Refund-policy conversations to re-check before prompt changes.",
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b"
},
)
data = response.json()
{
"id": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b",
"title": "Billing",
"description": "Refunds, invoices, and subscription changes.",
"parentFolderId": null,
"active": true,
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
Use this route to add a new folder to the knowledge tree.
Headers
string
required
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs write scope.string
required
application/jsonBody parameters
string
required
Folder title.
string
required
Folder description. Can be an empty string.
string
Parent folder ID for nesting. Omit for a top-level folder.
Response
Returns the created knowledge folder object. See Organize knowledge for the shared folder fields.curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-folders/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"title": "Refund policy",
"description": "Refund-policy conversations to re-check before prompt changes.",
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b"
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-folders/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'title': 'Refund policy',
'description': 'Refund-policy conversations to re-check before prompt changes.',
'parentFolderId': '0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b'
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-folders/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"title": "Refund policy",
"description": "Refund-policy conversations to re-check before prompt changes.",
"parentFolderId": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b"
},
)
data = response.json()
{
"id": "0f4da4fe-b2ae-4787-8c3b-854f36d9eb1b",
"title": "Billing",
"description": "Refunds, invoices, and subscription changes.",
"parentFolderId": null,
"active": true,
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
Errors
400 Bad Request
400 Bad Request
The request body is malformed.
401 Unauthorized
401 Unauthorized
The API key is missing, malformed, revoked, or invalid.
403 Forbidden
403 Forbidden
The API key does not include the
write scope.404 or Not Acceptable
404 or Not Acceptable
The parent folder does not exist, or you attempted a structure change the tree does not allow.
Was this page helpful?

