API Documentation

Everything you need to integrate with the Uno API gateway.

Language:
Authentication

All API requests require an API key passed via the Authorization header.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.uno.dev/v1/servers
Call Tool

POST /v1/call — Execute a specific tool by its slug with the given parameters.

curl -X POST https://api.uno.dev/v1/call \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_slug": "twelve-data--stock-quote",
    "params": {"symbol": "AAPL"}
  }'
Smart Call

POST /v1/smart_call — Describe what you want in natural language. The AI engine selects and executes the right tool(s).

curl -X POST https://api.uno.dev/v1/smart_call \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"intent": "What is the current price of Apple stock?"}'
List Servers

GET /v1/servers — Returns all registered servers with their metadata and tool counts.

curl https://api.uno.dev/v1/servers \
  -H "Authorization: Bearer YOUR_API_KEY"
List Server Tools

GET /v1/servers/{slug}/tools — Returns all tools for a specific server.

curl https://api.uno.dev/v1/servers/twelve-data/tools \
  -H "Authorization: Bearer YOUR_API_KEY"
Connections

Manage authentication connections to external services. For OAuth2 services (GitHub, Slack), creating a connection will return an authorization URL.

# Create a connection
curl -X POST https://api.uno.dev/v1/connections \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "server_slug": "twelve-data",
    "auth_type": "api_key",
    "credentials": {"api_key": "your_twelve_data_key"}
  }'

# List connections
curl https://api.uno.dev/v1/connections \
  -H "Authorization: Bearer YOUR_API_KEY"
Scopes

Create custom scopes to expose a fixed subset of servers/tools, ideal for vertical use cases.

curl -X POST https://api.uno.dev/v1/scopes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "finance-only",
    "server_slugs": ["twelve-data"],
    "tool_slugs": []
  }'
MCP Protocol

Uno exposes MCP-compatible endpoints at three levels: Gateway, Server, and Scope. POST JSON-RPC requests following the MCP standard.

# Gateway-level MCP (all meta-tools)
curl -X POST https://api.uno.dev/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

# Server-level MCP (tools for a specific server)
curl -X POST https://api.uno.dev/mcp/s/twelve-data \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

# Scope-level MCP
curl -X POST https://api.uno.dev/mcp/scope/1 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
Error Handling

All errors follow a consistent format with HTTP status codes and descriptive messages.

# Common error responses:
# 401 - Invalid or missing API key
# 403 - Insufficient permissions
# 404 - Resource not found
# 429 - Rate limit / quota exceeded
# 500 - Internal server error

# Example error response:
{
  "detail": "Quota exceeded. Please upgrade your plan."
}