Runs a tool with the provided parameters.
Resolves the tool by ID within the integration and executes it. When `configId` is set the tool runs against that config's currently published revision — the server resolves its (encrypted) credentials internally, so no secret ever travels in the request. Omit `configId` for SYSTEM / no-auth tools (e.g. File Tools), which run against an empty placeholder config. An optional `resultSelect` previews the agent runtime's `result_select` field projection over a JSON result; it is preview-only and never persisted. Every value in `parameters` must be sent as a JSON <b>string</b>, whatever the parameter's declared type — `"count": "3"`, `"dryRun": "true"`, `"rows": "[[1,2]]"`. The bag is typed server-side against the tool's declared parameters; sending a bare number, boolean or object fails model binding with 400 `"The JSON value could not be converted to System.String"`. The result comes back both ways: `response` is the flattened string form (unchanged), and `resultType` / `jsonValue` / `fileLink` carry the shape the tool actually returned, so a caller need not sniff `response` nor fetch the tool's metadata to learn its type.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The integration ID.
The tenant identifier
Tool ID, input parameters, optional config reference and result selector.
Tool ID within the integration (e.g. "list_channels").
Tool input parameters as key-value pairs. Every value is a JSON string on the wire
regardless of the parameter's declared type — "3", "true", "[[1,2]]", not
3, true, [[1,2]] — and is converted to the declared type server-side by
ToolExecutions.ToolRunParameterBinder. A bare non-string JSON value fails model binding with a
400 before the action ever runs.
Optional reference to a persisted, published integration config. The server resolves that config's (encrypted) credentials internally — the secret never travels in this request. Omit for SYSTEM / no-auth tools (e.g. File Tools), which execute against an empty placeholder config.
uuidOptional preview-only projection of a JSON tool result: comma-separated field paths using the same syntax as result_select during agent execution. Ignored for non-JSON results. Does not alter the saved tool configuration.
Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/integrations/string/tools:run" \ -H "Content-Type: application/json" \ -d '{ "toolId": "string" }'{
"response": "string",
"resultType": "STRING",
"jsonValue": null,
"fileLink": "string"
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}Reviews what a workspace tool does.
Records that a signed-in person checked the tool and chose its classification — `READ_ONLY`, `REVERSIBLE` or `IRREVERSIBLE` — which becomes its `actionType`. The review names the `definitionVersion` the reviewer saw, and stops applying as soon as the tool's definition or classification changes (`actionTypeReviewState` then reads `CHANGED_SINCE_REVIEW`). API keys and service accounts cannot review: a review has to come from a person. Built-in tools cannot be reviewed.
Finds catalog and workspace tools that match a described capability.
Ranks every tool in the catalog, and every tool this workspace defined itself (its API tools, scripts and MCP servers' tools), against the words of `query`, in one ranking — a tool matches when any of them appears in its name, its integration or tool id, or its description, and ranks higher the more and the more prominently they do. Each result says where it comes from (`CATALOG` or `WORKSPACE`) and whether this workspace could use it now (`READY`: its integration needs no credentials, or a published config exists) or must connect the integration first (`NEEDS_CONNECTION`). Internal tools are never returned. An empty query returns an empty list.