RaabtaHQ
List the tool catalogue

List the tool catalogue

GET/api/v1/tools

scope assistants:read

Every tool an assistant on this account can be granted, with its group, sensitivity and default state. The ids here are the keys used in an assistant’s tool_access and gated_tools. A critical tool always raises a human approval, whatever gated_tools says.

Query parameters

NameTypeDescription
groupoptional
stringOnly tools in this catalogue group
Request
curl "https://your-crm.example.com/api/v1/tools" \
  -H "Authorization: Bearer $RAABTA_API_KEY"
Response · 200 OK
{
  "data": [
    {
      "id": "contacts.search",
      "group": "contacts",
      "group_label": "Contacts",
      "title": "Search contacts",
      "description": "Find a contact by name, phone or email.",
      "sensitivity": "read",
      "autonomous_allowed": true,
      "min_role": "viewer",
      "default_enabled": true
    }
  ]
}

Response

Wrapped in { data: … }
NameTypeDescription
idrequired
stringTool id — the key used in tool_access and gated_tools
grouprequired
stringCatalogue group id
group_labelrequired
stringGroup name as shown in the dashboard
titlerequired
stringShort human name
descriptionrequired
stringWhat the tool does
sensitivityrequired
string (enum)A critical tool always raises an approval, whatever gated_tools saysreadwritecritical
autonomous_allowedrequired
booleanMay run with no human watching
min_rolerequired
stringLowest account role this tool acts on behalf of
default_enabledrequired
booleanState when tool_access names no opinion

Errors

StatusCodeWhen
400bad_requestThe request could not be parsed: malformed JSON, an invalid cursor, or a query parameter of the wrong shape.
400validation_errorThe body or query failed validation. `details` lists each failing field with a `path` and a `message`.
401unauthorizedNo usable API key: the Authorization header is missing or malformed, or the key is unknown, revoked or expired. The three are deliberately indistinguishable.
403forbiddenThe key is valid but lacks the scope this endpoint requires, or the request came from an address outside the key’s IP allowlist. The message says which.
403account_suspendedThe account this key belongs to is suspended. Rotating the key will not help; contact support.
429rate_limitedThe per-key budget, or the per-IP budget for failed authentication, is exhausted. Honour `Retry-After` before retrying.
500internalSomething failed on our side. Safe to retry with the same Idempotency-Key; quote `request_id` if it persists.