POST /v1/lab/size-preview
The size & liquidity preview of a copy strategy: the followed wallets’ qualifying buys of the last 30 days under the spec’s signal and market rules (each position’s trigger, its later buys before the first sell, its end, other traders’ dollars in the 5-minute slot of each buy) and the Lab’s paper reads of the live book as quantiles — what billing estimateSizePreview turns into copies a day, copy sizes, an ESTIMATE of the money in play and the book at your size, for any sizing. The wallets: a static list’s; a ranking’s paper-run seat, else its latest backtest’s copied wallets, else (Copy Engine) the board as of yesterday; `wallets.source` says which. Cached 10 minutes. 400 `rules_no_wallets` for a strategy that copies no wallet. 403 `plan_required` (strategy_lab). 404 `lab_disabled` while LAB_ENABLED is off.
The size & liquidity preview of a copy strategy: the followed wallets’ qualifying buys of the last 30 days under the spec’s signal and market rules (each position’s trigger, its later buys before the first sell, its end, other traders’ dollars in the 5-minute slot of each buy) and the Lab’s paper reads of the live book as quantiles — what billing estimateSizePreview turns into copies a day, copy sizes, an ESTIMATE of the money in play and the book at your size, for any sizing. The wallets: a static list’s; a ranking’s paper-run seat, else its latest backtest’s copied wallets, else (Copy Engine) the board as of yesterday; wallets.source says which. Cached 10 minutes. 400 rules_no_wallets for a strategy that copies no wallet. 403 plan_required (strategy_lab). 404 lab_disabled while LAB_ENABLED is off.
API key: Authorization: Bearer pk_live_… (mint at polyrank.app/api-keys)
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/lab/size-preview" \ -H "Content-Type: application/json" \ -d '{ "spec": { "wallet_source": { "kind": "static", "wallets": [ { "wallet": "string" } ] } } }'{ "from": 0, "now": 0, "days": 0, "wallets": { "source": "static", "n": -9007199254740991, "read": -9007199254740991, "words": "string" }, "positions": [ { "b": [ 0, 0, 0, 0, 0 ], "adds": [ [ 0, 0, 0, 0, 0 ] ], "undo": 0, "end": 0, "resolved": true, "kick": 0 } ], "truncated": true, "bars_through": 0, "paper": { "all": { "n": -9007199254740991, "q": [ 0 ] }, "mine": { "n": -9007199254740991, "q": [ 0 ] } }, "notes": [ "string" ]}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "running": 0, "limit": 0, "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "running": 0, "limit": 0, "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "running": 0, "limit": 0, "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "running": 0, "limit": 0, "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "running": 0, "limit": 0, "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "running": 0, "limit": 0, "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "running": 0, "limit": 0, "issues": [ null ], "trace_id": "string"}POST /v1/lab/paper-runs/{id}/stop POST
Stop one of the caller’s paper runs. Its copies and stats are kept; open copies still settle; every limit order still resting is cancelled (reason strategy_stopped). Needs no plan. 404 `lab_paper_disabled` while LAB_PAPER_ENABLED is off.
POST /v1/lab/strategies/cleanup POST
Archive the caller’s empty or duplicate drafts (the GET’s list, re-read at once). Archive only, never delete: each comes back with PATCH { archived: false }. Needs no plan. 404 `lab_disabled` while LAB_ENABLED is off.