Skip to main content
POST
Invoke Tool

Invoke Tool

POST /v1/tools/{toolName}/invoke Requests invocation of a registered tool on behalf of a machine agent. The platform performs a multi-layer access control check before granting access:
  1. Agent status — agent must be "active"
  2. Scope check — agent must hold the tool’s required scope
  3. Rate limit — agent must not exceed the tool’s per-minute rate limit
  4. Approval gate — if the tool requires approval, invocation is deferred to the approval queue
If all checks pass, the invocation is recorded with a cryptographic receipt linking the agent, tool, and session for full audit traceability.
This endpoint performs the access control decision and generates an audit receipt. It does not proxy the actual tool execution. Your application is responsible for calling the tool’s underlying endpoint after receiving an "allowed" response.

Authentication

Requires X-API-Key header or Bearer JWT token. Tenant-scoped via X-Tenant-ID.

Path Parameters

string
required
The registered tool name (e.g., "search.web", "crm-contact-lookup").

Request Body

string
required
The MAIP agent identifier requesting the tool invocation (e.g., maip:t1234567:01HYX3KPZQ7RJGBN0WFMV8SDEH).
string
The active session ID, if the invocation is scoped to a session. Optional but recommended for full audit trail linkage.

Response

boolean
Whether the invocation was authorized. true if all access control checks passed.
string
Invocation status. One of: "allowed", "denied", "pending_approval".
string
Human-readable explanation when the invocation is denied or pending. Not present when allowed.
string
Unique receipt identifier for the invocation, linking to the audit trail. Only present when status is "allowed".
boolean
true when the tool requires human approval and the invocation is queued. Only present when status is "pending_approval".
string
Identifier for the pending approval request. Use this to check approval status or to approve/reject via the approvals API. Only present when status is "pending_approval".

Example: Allowed Invocation


Access Control Flow

Integration Pattern

After receiving an "allowed" response, execute the tool and optionally record the outcome:

Authorizations

X-API-Key
string
header
required

API key for machine-to-machine authentication

Path Parameters

toolId
string<uuid>
required

Tool identifier

Body

application/json
session_id
string<uuid>
required

Active session to invoke under

arguments
object
required

Tool input arguments matching the tool schema

Response

Tool invocation result

result
object
receipt_id
string<uuid>
execution_ms
integer