curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"inputParams": {
"name": "Example",
"value": "message"
}
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'inputParams': {
'name': 'Example',
'value': 'message'
}
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"inputParams": {
"name": "Example",
"value": "message"
}
},
)
data = response.json()
{
"success": true,
"fields": {
"plan": "Enterprise",
"accountStatus": "active"
}
}
Attributes
Test attribute
Run the whole attribute with sample inputs.
POST
/
v2
/
hc-tools
/
{id}
/
test-run
/
public
curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"inputParams": {
"name": "Example",
"value": "message"
}
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'inputParams': {
'name': 'Example',
'value': 'message'
}
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"inputParams": {
"name": "Example",
"value": "message"
}
},
)
data = response.json()
{
"success": true,
"fields": {
"plan": "Enterprise",
"accountStatus": "active"
}
}
Runs the full Data Step chain for one attribute against sample inputs and returns the resolved outputs. This mirrors the dashboard Run button.
Headers
string
required
Bearer token containing your Fini workspace API key. Format:
Bearer fini_... The key needs write scope.string
required
application/jsonPath parameters
string
required
Attribute ID to run.
Body parameters
object
Optional sample inputs, keyed by input field name. These stand in for the runtime values the attribute would resolve at the start of a conversation.
Response
Returns anAction / Attribute test-run result with per-step results and the final extractedData. For attributes, attributeLlmPolicy maps each output field to its sendToLlm (Visible to AI) flag.
curl --request POST \
--url 'https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public' \
--header 'Authorization: Bearer fini_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"inputParams": {
"name": "Example",
"value": "message"
}
}'
const response = await fetch('https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public', {
method: 'POST',
headers: {
Authorization: 'Bearer fini_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'inputParams': {
'name': 'Example',
'value': 'message'
}
}
)
});
const data = await response.json();
import requests
response = requests.post(
"https://api-prod.usefini.com/v2/hc-tools/4f5ef695-d03b-4d56-8fef-7f2bd5c17ef3/test-run/public",
headers={"Authorization": "Bearer fini_your_api_key", "Content-Type": "application/json"},
json={
"inputParams": {
"name": "Example",
"value": "message"
}
},
)
data = response.json()
{
"success": true,
"fields": {
"plan": "Enterprise",
"accountStatus": "active"
}
}
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
write scope required for this route.404 Not Found
404 Not Found
No attribute with that ID exists in your workspace.
Was this page helpful?

