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
Fruxon.Model.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 field projection: a comma-separated list of field paths to keep from the
tool's JSON result (identical syntax and engine as the agent runtime's result_select).
When set, the runner applies Fruxon.Model.ExecutionEngine.ResultProjection over
the result before returning it. Ignored for non-JSON results; not persisted anywhere.
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
}Updates an existing Python script tool.
Replaces the Python-script tool definition at `(integration, tool)`; the script body and its input schema are validated together before the write commits, so a malformed script or schema returns 400 without modifying the stored definition. This is the script-tool counterpart to `PUT /integrations/{integration}/tools/{tool}` and must be used for tools whose execution is sandboxed Python rather than an HTTP call.
List webhooks, optionally filtered by provider.
Returns every webhook in the tenant, or just those for one provider when `provider` is supplied (e.g. `github`, `stripe`). Subscription details are not embedded — fetch them per webhook via `GET WebhookSubscriptions`.