Skip to main content
POST

Overview

Execute up to 10 tool calls in a single request. Each call is executed independently — a failure in one does not affect others. Results are returned in the same order as the input calls. Auth: Requires API key (danube-api-key header). API key permissions are checked per tool.

Body Parameters

array
required
Array of tool calls (1-10 items)

Response

array
Array of results in the same order as the input calls

Example

MCP Tool

This endpoint is also available as the batch_execute_tools MCP tool:
The MCP tool normalizes each element beyond what this endpoint returns, so a caller never has to branch on shape per element: Each element is capped at 32,000 serialized characters by default; pass calls[].max_response_chars (max 500,000) to raise it. Oversized results are trimmed at JSON element boundaries — whole array entries are dropped from the tail — so result is always valid JSON, and what was dropped is described in _meta.truncation_note.

Secrets are redacted

Credential values an upstream hands back (environment variables, API keys, tokens, private keys) are masked as [REDACTED:<FIELD>] before any result reaches you, on every surface, and the masked form is what Danube stores. _meta.redaction.count says how many fields were masked and fields says where. This is Danube policy, not a broken tool: if a later call genuinely needs such a value, store it as a credential on the service, or reference it with env:// / vault://, rather than asking a tool to return the raw secret. Tools whose purpose is to return a newly created credential are marked as such and report passthrough_reason instead.