Base URL
The API is reachable at two equivalent base URLs:api.counsel.markets) is preferred for programmatic clients; the path-based form (/api/v1) is provided for convenience.
Authentication
None. All endpoints are publicly accessible without credentials. NoAuthorization header, no API key, no session cookie.
Response Format
All responses areapplication/json. Successful responses return HTTP 200 with a JSON object. Collection responses include a top-level generated_at field (ISO 8601 timestamp) indicating when the indexer snapshot was produced.
Error Format
Errors return a non-2xx HTTP status code and a JSON body. Single-error responses use:
| HTTP Status | Meaning |
|---|---|
400 | Bad request, invalid parameters |
403 | Forbidden, address on the compliance denylist |
404 | Resource not found |
500 | Internal indexer or server error |
Rate Limiting
No hard rate limits are published. The API is backed by a live XRPL indexer; treat it like any shared public API and avoid polling at intervals shorter than a few seconds. If you are running a bot, cache the market list and only re-fetch on a reasonable schedule.Endpoints
| Method | Path | Description |
|---|---|---|
GET | /markets | All public markets with live pools and indicative odds |
GET | /markets/:id | Single market live state, outcomes, and bet caps |
GET | /markets/:id/bet-intent | Unsigned XRPL Payment + projected odds post-stake |
GET | /accounts/:address/positions | An account’s stakes by market and outcome |
GET | /accounts/:address/feed | A leader’s recent bets (powers copy trading) |
GET | /accounts/:address/profile | Stats, cumulative volume series, positions, rank |
GET | /leaderboard | SourceTag-attributed volume and active accounts |
Common Response Fields
generated_at, present on all list responses. ISO 8601 string representing the moment the indexer snapshot was generated. Use this to detect stale data; under normal conditions it should be within a few seconds of the current time.
source_tag, present on /markets and /markets/:id/bet-intent. The SourceTag counsel uses to attribute on-chain volume. Do not strip it from transactions you construct or sign.
List Markets
Fetch all public markets with live pool totals and indicative odds.
Get Market
Fetch a single market by ID, including bet caps.
Bet Intent
Build an unsigned XRPL Payment ready to sign and submit.
Overview
Error codes, rate limits, and base URL reference.