Find the operation to call
Use the operation index to find any of Nova's roughly 3,200 callable operations and the exact permission each one needs, not just the documented starter set.
The API reference documents about 80 common operations in full, with schemas and examples. It is a starting point, not the limit. A credential can call any operation it holds the permissions for, which is roughly 3,200 of them. The operation index lists every one.
curl -s https://app.novabmp.com/v1/public/api-docs/operations.json -o operations.json
What is in it
{
"operation_count": 3267,
"documented_count": 78,
"areas": [{"id": "crm", "operation_count": 115}, "…"],
"operations": [
{"operation_id": "post_agreements_by_agreement_void",
"method": "POST",
"path": "/v1/agreements/{agreement_uid}/void",
"area": "agreements",
"summary": "Void an agreement",
"permissions": ["agreements.void"],
"path_params": ["agreement_uid"],
"read_only": false,
"destructive": false,
"documented": false}
]
}
| Field | Meaning |
|---|---|
permissions |
Every key the operation checks; the credential must hold all of them |
permissions_any |
Present when holding one of a group is enough |
path_params |
Placeholders to fill with uids |
read_only / destructive |
A GET, or an operation that removes something |
documented |
true when the reference has its full schema and examples |
It carries no request or response schemas; for those, the documented operations are in the reference, and every other operation takes the same fields the app's own screen sends.
Finding things
What can my key do with invoices?
jq '.operations[] | select(.path | contains("invoices")) | {operation_id, method, path, permissions}' operations.json
A call was refused for billing.invoices.void. What else does that key
unlock?
jq '.operations[] | select(.permissions | index("billing.invoices.void"))' operations.json
What is not in it
Signing in, the OAuth endpoints, platform administration and the routes that manage keys, agents and connected apps. Software is refused on those whatever it holds.
For AI assistants
An assistant cannot hold 3,200 tools, so over MCP it uses
find_operations to search this index and call_nova_operation to call
what it finds. See The tools an assistant gets over MCP.
The index is generated from the routes on every release, so an operation added later appears without anyone writing it down.