/api/v1/public/indicesGET{data, meta} envelope. This list is not paginated: it returns one response bounded by its own limit, so meta.total is the number of rows in this response rather than a count of everything that could match, and has_next is always false.red). Use it as the {id} path parameter on the index detail, constituents, and price endpoints.RED). The detail endpoint accepts either this ticker (case-insensitively) or index_id as its path parameter.base_index_id.latest_price. Omitted when the index has no computed value yet.upfi, battleground, or total_return. Null for an index with no methodology recorded.curl -X GET "https://api.adjacent.markets/api/v1/public/indices"
{ "data": [ { "index_id": "red", "name": "Republican Political Future Index", "ticker": "RED", "description": "Composite of Republican party-line contests across all levels of office in the United States", "constituents_count": 5, "is_composite": true, "office_category": null, "party_side": "republican", "latest_price": 96.6691, "previous_close_1d": 96.6815, "change_7d": 0.9579976564409233, "change_30d": 6.543321995939699, "change_90d": 8.343186711332823, "previous_close_7d": 95.7518, "previous_close_30d": 90.7322, "previous_close_90d": 89.2249, "updated_at": "2026-07-29T14:02:00Z", "methodology": "upfi", "created_at": "2026-06-02T14:20:24.299003Z", "display_order": 1, "halted": false } ], "meta": { "total": 10, "page": 1, "per_page": 1, "total_pages": 10, "has_next": true, "has_prev": false } }