API Reference
Keel REST API endpoints for programmatic strategy management, backtesting, and deployment.
The Keel API lets you create strategies, run backtests, and manage deployments programmatically. Everything available in the UI is available through the API.
For most users, the CLI is the preferred surface. It wraps every endpoint, handles auth + refresh transparently, and includes the stdio MCP command for AI agents. This page is for users integrating Keel directly into their own services or scripts that need fine-grained REST control.
Base URL
https://api.usekeel.ioAuthentication
All API requests require a Bearer token. Get your API key from Settings → API Keys in the dashboard.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.usekeel.io/v1/strategiesEndpoints
All paths below are relative to https://api.usekeel.io. They are shown
with the full origin to keep search engines from crawling them as same-host
URLs on usekeel.io.
Strategies
| Method | Endpoint | Description |
|---|---|---|
GET | api.usekeel.io/v1/strategies | List all strategies |
POST | api.usekeel.io/v1/strategies | Create a new strategy |
GET | api.usekeel.io/v1/strategies/{id} | Get strategy details |
PUT | api.usekeel.io/v1/strategies/{id} | Update a strategy |
DELETE | api.usekeel.io/v1/strategies/{id} | Delete a strategy |
Backtests
| Method | Endpoint | Description |
|---|---|---|
POST | api.usekeel.io/v1/backtests | Run a backtest |
GET | api.usekeel.io/v1/backtests/{id} | Get backtest results |
GET | api.usekeel.io/v1/backtests | List backtests |
Deployments
| Method | Endpoint | Description |
|---|---|---|
GET | api.usekeel.io/v1/deployments | List deployments (live runs unless capital_class says otherwise) |
POST | api.usekeel.io/v1/deployments | Deploy a strategy |
GET | api.usekeel.io/v1/deployments/{id} | Get deployment status |
POST | api.usekeel.io/v1/deployments/{id}/pause | Pause a deployment |
POST | api.usekeel.io/v1/deployments/{id}/resume | Resume a deployment |
DELETE | api.usekeel.io/v1/deployments/{id} | Stop a deployment |
Paper runs
A paper run is a deployment that fills on simulated money at live
Hyperliquid prices; see Paper Trading. You start and
manage one through the /v1/paper routes:
| Method | Endpoint | Description |
|---|---|---|
POST | api.usekeel.io/v1/paper | Start a paper run |
POST | api.usekeel.io/v1/paper/{id}/pause | Pause a paper run |
POST | api.usekeel.io/v1/paper/{id}/resume | Resume a paper run (checks your plan's paper slots) |
POST | api.usekeel.io/v1/paper/{id}/update | Move a paper run onto its strategy's latest version |
POST | api.usekeel.io/v1/paper/{id}/trigger | Run one evaluation now (the run must be live) |
DELETE | api.usekeel.io/v1/paper/{id} | Stop a paper run |
POST /v1/paper takes {"strategy_id": "...", "simulated_capital": 10000}.
simulated_capital is optional and is one of 1000, 10000 or 100000
(default 10000); it is fixed for the life of the run.
Every deployment read (GET /v1/deployments/{id} and the reads under it)
serves a paper run the same way it serves a live one, and carries a venue
block whose capital_class is practice for a paper run and real for a
live one. The live mutation routes under /v1/deployments/{id} answer 404
for a paper run; use the /v1/paper routes above.
The class rule. GET /v1/deployments takes capital_class:
capital_class | Returns |
|---|---|
| (absent) | Live runs only |
real | Live runs only |
practice | Paper runs |
all | Every run, each labelled by its venue block |
Any other value answers 422. The money totals,
GET /v1/deployments/portfolio/summary and
GET /v1/deployments/portfolio/equity, sum one class at a time: they take
real (the default) or practice, and never all (422), so live and paper
money are never added together.
Components
| Method | Endpoint | Description |
|---|---|---|
GET | api.usekeel.io/v1/components | List available components |
GET | api.usekeel.io/v1/components/{type} | Get component schema |
SDKs
- Python CLI & SDK —
pipx install keel-trade(CLI Reference) - MCP Server —
keel mcp serve(Agent Setup Guide)