curl --request GET \
--url 'https://api-prod.usefini.com/v2/hc-tools/public' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/public', {
method: 'GET',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/hc-tools/public",
headers={"Authorization": "Bearer fini_your_api_key"},
)
data = response.json()
[
{
"id": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"name": "Customer plan",
"description": "Fetches the customer's active plan.",
"source": "widget",
"fields": [
{
"name": "plan",
"type": "string",
"visibleToAi": true,
"useInRulebooks": true
}
],
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
]
Attributes
List attributes
List the attributes in the workspace.
GET
/
v2
/
hc-tools
/
public
curl --request GET \
--url 'https://api-prod.usefini.com/v2/hc-tools/public' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/public', {
method: 'GET',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/hc-tools/public",
headers={"Authorization": "Bearer fini_your_api_key"},
)
data = response.json()
[
{
"id": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"name": "Customer plan",
"description": "Fetches the customer's active plan.",
"source": "widget",
"fields": [
{
"name": "plan",
"type": "string",
"visibleToAi": true,
"useInRulebooks": true
}
],
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
]
Returns every
Action / Attribute record in the workspace, newest first. Attributes are the records with alwaysGet: true.
Actions and attributes share this endpoint, so the array contains both. Filter on
alwaysGet: true to keep only attributes. See List actions for the action view of the same route.Headers
string
required
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs read scope.Response
Returns a top-level array ofAction / Attribute objects.
curl --request GET \
--url 'https://api-prod.usefini.com/v2/hc-tools/public' \
--header 'Authorization: Bearer fini_your_api_key'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/public', {
method: 'GET',
headers: {
Authorization: 'Bearer fini_your_api_key'
}
});
const data = await response.json();
import requests
response = requests.get(
"https://api-prod.usefini.com/v2/hc-tools/public",
headers={"Authorization": "Bearer fini_your_api_key"},
)
data = response.json()
[
{
"id": "4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3",
"name": "Customer plan",
"description": "Fetches the customer's active plan.",
"source": "widget",
"fields": [
{
"name": "plan",
"type": "string",
"visibleToAi": true,
"useInRulebooks": true
}
],
"botIds": [
"2a1cf0f0-f35d-46ad-8e61-a15c86b2b312"
],
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
]
Errors
401 Unauthorized
401 Unauthorized
The API key is missing, malformed, revoked, or invalid.
403 Forbidden
403 Forbidden
The API key does not include the
read scope required for this route.500 Internal Server Error
500 Internal Server Error
Fini failed while loading records from storage.
Was this page helpful?

