Danube API
The Danube API provides programmatic access to tool discovery, execution, workflows, skills, and more. Use these endpoints to integrate Danube capabilities into your own applications. All endpoints use the base URLhttps://api.danubeai.com/v1.
Authentication
Include your API key in the request headers:Rate Limits
API requests are rate limited based on your plan:
The retired Starter plan keeps 300 requests a minute for accounts that still hold it.
Endpoints Overview
Tools (API Key)
List Tools
Get all available tools
Search Tools
Find tools using natural language
Get Tool
Get tool details by ID
Get Tool by Name
Look up a tool by exact name
Call Tool
Execute a tool with parameters
Services (Public)
List Services
Browse available service providers
Get Service
Get service details
Get Service Tools
Get all tools for a service
Skills (Public)
List Skills
Browse the skills marketplace
Search Skills
Find skills using natural language
Get Skill
Get skill content and scripts
Workflows (Public + API Key)
List Public Workflows
Browse public multi-tool workflows
Get Workflow
Get workflow details and steps
Execute Workflow
Run a workflow with inputs
Get Execution
Check workflow execution results
Ratings (Public)
Get Tool Ratings
Get aggregated ratings for a tool
Credentials (API Key)
Store Credential
Store an API key or bearer token
Context (API Key or JWT)
Get Context
Organization and personal context, merged for an agent
Upsert Personal Context
Write a personal context document by name
Webhooks (JWT)
List Webhooks
Get all your webhooks
Create Webhook
Register a new webhook endpoint
Update Webhook
Change URL, events, or active status
Get Deliveries
View delivery history
Device Auth (Public)
Create Device Code
Start device auth flow
Poll Device Token
Poll for API key
Response Format
All responses are JSON. Every error, whatever raised it, uses one envelope: anerror object with a machine-readable code, a human-readable message, and details when the server has more to say.
code is derived from the status when the endpoint does not set one: validation_error (400, 422), unauthorized (401), payment_required (402), forbidden (403), not_found (404), conflict (409), rate_limited (429), internal_error (5xx and any other status). A consent handshake answers 409 with code: "confirmation_required" and the confirm_token in details.
Common HTTP status codes:
A monthly-limit 429 from
/v1/tools/call/{tool_id} carries usage and upgrade_url in details, which tells it apart from per-minute rate limiting. Retrying will not help until the 1st of the next month or after an upgrade:
code: "payment_required" and the same details shape.
SDKs and Libraries
- Python SDK:
pip install danube— see Python SDK docs - TypeScript SDK:
npm install danube— see TypeScript SDK docs - CLI:
npm install -g danube-cli— see CLI docs - MCP Protocol: Connect AI assistants directly — see Quickstart
- REST API: Use the endpoints documented here with any HTTP client
