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": "Cancel subscription",
"description": "Cancel an active subscription in billing.",
"inputFields": [
{
"name": "customerId",
"type": "string",
"required": true
}
],
"outputFields": [
{
"name": "confirmationId",
"type": "string"
},
{
"name": "effectiveDate",
"type": "string"
}
],
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
]
Actions
List actions
List the actions 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": "Cancel subscription",
"description": "Cancel an active subscription in billing.",
"inputFields": [
{
"name": "customerId",
"type": "string",
"required": true
}
],
"outputFields": [
{
"name": "confirmationId",
"type": "string"
},
{
"name": "effectiveDate",
"type": "string"
}
],
"createdAt": "2026-07-28T08:55:32.000Z",
"updatedAt": "2026-07-28T09:10:18.000Z"
}
]
Returns every
Action / Attribute record in the workspace, newest first. Actions are the records with alwaysGet: false.
Actions and attributes share this endpoint, so the array contains both. Filter on
alwaysGet: false to keep only actions. See List attributes for the attribute 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": "Cancel subscription",
"description": "Cancel an active subscription in billing.",
"inputFields": [
{
"name": "customerId",
"type": "string",
"required": true
}
],
"outputFields": [
{
"name": "confirmationId",
"type": "string"
},
{
"name": "effectiveDate",
"type": "string"
}
],
"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?

