Authentication
All API requests require a Bearer token in the Authorization header. API keys are available with an active API & Business subscription.
Header
Authorization: Bearer sk_live_xxx
Keep your API key secret. Never expose it in client-side code, public repositories, or shared documents. Rotate compromised keys immediately from your dashboard.
Orders
GET/api/v1/orders
The current broker-verified managed shortlist shown in the PWA Orders tab. Ranking combines frozen setup quality with current fillability. No order size, broker ID or account data is exposed.
Response
{
"status": "ok",
"data": {
"contract_version": "client_managed_orders_v1",
"status": { "state": "FRESH", "verified_at": "2026-08-26T16:20:05Z" },
"items": [{
"asset": "SOL", "action": "ACCUMULATION",
"price_eur": 78.771, "current_price_eur": 82.184,
"customer_priority": 1, "top_quality_order": true
}]
}
}Positions
GET/api/v1/positions
Current StackSats-managed positions from the authenticated broker snapshot, including average entry, live price, open return, portfolio allocation and the next managed action. Quantities and portfolio value stay private.
Response
{
"status": "ok",
"data": {
"contract_version": "client_managed_positions_v1",
"items": [{
"asset": "DOGE", "direction": "LONG",
"average_entry_eur": 0.08913, "current_price_eur": 0.08968,
"unrealized_return_pct": 0.62, "data_live": true
}]
}
}Results
GET/api/v1/results
Exact managed Long Term outcomes from the same proven cohort as PWA Results. Manual activity, retired strategies and Trade/Swing history do not enter this contract.
| Parameter | Type | Description | |
|---|---|---|---|
| limit | integer | optional | Maximum outcomes. Default: 100, max: 200 |
Response
{
"status": "ok",
"data": {
"contract_version": "client_managed_results_v1",
"summary": { "closed_outcomes": 22, "win_rate_pct": 100.0, "average_net_return_pct": 5.36 },
"items": [{ "symbol": "DOGE", "net_return_pct": 3.72, "entry_price": 0.08913, "exit_price": 0.09245 }]
}
}Rate Limits
Rate limits are per API key and depend on your subscription tier. Exceeding limits returns HTTP 429 with a Retry-After header.
| Plan | Requests / day | Requests / minute |
|---|---|---|
| API & Business | 10,000 | 60 |
| Enterprise | 100,000 | 300 |
Rate Limit Headers
Every response includes rate limit information in headers:
Headers
X-RateLimit-Limit: 10000 X-RateLimit-Remaining: 9847 X-RateLimit-Reset: 1711497600
Error Codes
The API uses standard HTTP status codes. Error responses include a JSON body with details.
400Bad RequestInvalid parameters or missing required fields
401UnauthorizedMissing or invalid Bearer token
403ForbiddenValid token but insufficient plan permissions
404Not FoundUnknown endpoint or invalid symbol
429Rate LimitedToo many requests. Check Retry-After header
500Server ErrorInternal error. Contact support if persistent
Error Response
{
"status": "error",
"code": 401,
"message": "Invalid or expired API key",
"meta": {
"timestamp": "2026-03-29T10:15:00Z",
"version": "1.0"
}
}