Migrate from v1
v1 stops answering
Rivo deprecated v1 on October 15, 2026, and v1 stops answering on December 14, 2026. Your existing keys already work on v2.
We built v2 around what the API does best: reading trades and market moves, looking up markets and traders, testing ideas and running them on paper. Most v1 calls have a direct replacement in v2, and several v1 calls now share a single v2 route.
What changes in every call
| v1 | v2 | |
|---|---|---|
| Base | /v1 | /v2 |
| Success body | { "success": true, "data": ... } | { "data": ... }, plus nextCursor on a list |
| Failure body | { "success": false, "error", "code" } | The same, with the same codes |
| Paging | Offsets on some routes | limit and cursor everywhere |
| Traders | /{platform}/{traderId} in the path | A trader ref, like markets |
| Several values | Comma lists or arrays in a body | Repeat the query key |
| Scopes | read, write, trade | read and write; a trade key works as write |
Where each v1 route went
| v1 | v2 |
|---|---|
GET /v1/feed, POST /v1/events | GET /v2/trades |
GET /v1/stream | GET /v2/stream |
GET /v1/markets/search | GET /v2/markets |
GET /v1/markets/{marketRef} | GET /v2/markets/{ref} |
GET /v1/traders | GET /v2/traders |
GET /v1/traders/{platform}/{traderId}, POST /v1/traders/compare | GET /v2/traders/{ref}, called once for each trader |
GET /v1/universe, POST /v1/backtest, /sweep, /compare, /breakdown | POST /v2/backtest with holdout, sweep or breakdown |
/v1/strategies, follows and paper autopilot | /v2/bots: trader, signal and market bots on paper |
POST /v1/paper-orders, GET /v1/portfolio (paper) | POST /v2/paper-orders, GET /v2/paper |
GET /v1/alerts, market alerts | Alerts stay in the app. Through the API, filter trades and moves, or open the stream. |
POST /v1/orders, /v1/positions/sell, /v1/exits, live autopilot, /v1/copy-executions | v2 does not include these. Live trading happens in the app, where you can switch a bot to live once it has proved itself on paper. |
/v1/webhooks | v2 does not include webhooks. The stream sends you trades and moves instead. |
Find the v1 calls you missed
Every v1 response includes a Deprecation header with the date Rivo deprecated v1, a Sunset header with the date v1 stops answering, and a Link header that points to this page. Log these headers or alert on them to find any v1 calls you missed.
curl -sI "https://api.rivo.markets/v1/universe" -H "Authorization: Bearer $RIVO_API_KEY" | grep -iE "deprecation|sunset|link"A worked example
curl "https://api.rivo.markets/v1/feed?platform=kalshi&limit=50&offset=100" \
-H "Authorization: Bearer $RIVO_API_KEY"curl "https://api.rivo.markets/v2/trades?venue=kalshi&limit=50&cursor=<nextCursor>" \
-H "Authorization: Bearer $RIVO_API_KEY"The v1 reference stays available under v1 (legacy) until v1 stops answering.