Execution modes
Execute a tool
- Python
- curl
Preflight validation
Check inputs and credentials before executing:Batch execution
Run several tool calls in one request:Idempotency
Supply anidempotency_key so repeated requests do not execute the tool twice. Use a stable key per logical operation:
How credential resolution works
Errors
Rate limits
Execution is rate-limited at three levels — per organization, per toolkit, and per connected account — plus any provider-side limit on the tool itself. Exceeding any level returns429. Values depend on your plan and the provider; check the Console.
Each tool backend has a circuit breaker. If a provider fails repeatedly, calls fail fast for a short period and then recover automatically. Treat a burst of provider
5xxs as transient and retry with backoff.Troubleshooting
Execution times out
Execution times out
Use asynchronous execution for long-running tools and poll the call result, rather than blocking on a synchronous call.
A retried call ran twice
A retried call ran twice
Pass an
idempotency_key so repeated requests return the original result instead of executing again.Common mistakes
- Running long jobs synchronously. Use
asyncmode and poll or listen via webhook. - Retrying without idempotency. A naive retry can duplicate side effects.
- Skipping preflight for destructive calls. Preflight catches bad inputs before they take effect.
Best practices
- Preflight calls with side effects before executing.
- Use idempotency keys for any retryable operation.
- Batch related calls to reduce round trips.
Related pages
Bindings
Required before execution.
Triggers & Webhooks
Execute tools on external events.
Tool Catalog
Find tool slugs and input schemas.
Connected Accounts
Credentials used during execution.

