Nova Help

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.

Updated in release 0.0.1

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.

Was this helpful?