Keel Docs
API Reference

API Reference

Keel REST API endpoints for programmatic strategy management, backtesting, and deployment.

Updated October 15, 2026

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.io

Authentication

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/strategies

Endpoints

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

MethodEndpointDescription
GETapi.usekeel.io/v1/strategiesList all strategies
POSTapi.usekeel.io/v1/strategiesCreate a new strategy
GETapi.usekeel.io/v1/strategies/{id}Get strategy details
PUTapi.usekeel.io/v1/strategies/{id}Update a strategy
DELETEapi.usekeel.io/v1/strategies/{id}Delete a strategy

Backtests

MethodEndpointDescription
POSTapi.usekeel.io/v1/backtestsRun a backtest
GETapi.usekeel.io/v1/backtests/{id}Get backtest results
GETapi.usekeel.io/v1/backtestsList backtests

Deployments

MethodEndpointDescription
GETapi.usekeel.io/v1/deploymentsList deployments (live runs unless capital_class says otherwise)
POSTapi.usekeel.io/v1/deploymentsDeploy a strategy
GETapi.usekeel.io/v1/deployments/{id}Get deployment status
POSTapi.usekeel.io/v1/deployments/{id}/pausePause a deployment
POSTapi.usekeel.io/v1/deployments/{id}/resumeResume a deployment
DELETEapi.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:

MethodEndpointDescription
POSTapi.usekeel.io/v1/paperStart a paper run
POSTapi.usekeel.io/v1/paper/{id}/pausePause a paper run
POSTapi.usekeel.io/v1/paper/{id}/resumeResume a paper run (checks your plan's paper slots)
POSTapi.usekeel.io/v1/paper/{id}/updateMove a paper run onto its strategy's latest version
POSTapi.usekeel.io/v1/paper/{id}/triggerRun one evaluation now (the run must be live)
DELETEapi.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_classReturns
(absent)Live runs only
realLive runs only
practicePaper runs
allEvery 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

MethodEndpointDescription
GETapi.usekeel.io/v1/componentsList available components
GETapi.usekeel.io/v1/components/{type}Get component schema

SDKs