Indexes
Discover indexes, immutable versions, constituent weights, venue mappings, and calculation methodologies.
Draft v0.1 — design contract, not yet a live service
This documentation set defines a proposed Time Seventeen protocol for review and implementation planning. https://api.t17.capital is the approved and reserved REST origin, but neither that origin nor any documented endpoint is claimed to be live. The WebSocket origin remains unspecified. Credentials, chain IDs, contract addresses, rate limits, and SLAs remain unapproved; IDs, prices, and timestamps shown throughout are illustrative, not real production data.
The Index API is the entry point for every packaged prediction-market benchmark. It separates the stable Index identity from immutable Index Versions so a client can reproduce exactly which methodology, constituents, weights, and venue mappings applied at any point in time.
Endpoint summary
| Method & path | Purpose |
|---|---|
GET /indexes | Discover indexes by family, status, tag, or constituent market |
GET /indexes/{index_id} | Read the stable definition and active version |
GET /indexes/{index_id}/versions | Read immutable version history |
GET /indexes/{index_id}/versions/{version_id} | Read one configuration snapshot |
GET /indexes/{index_id}/versions/{version_id}/constituents | Read point-in-time constituents, mappings, and weights |
GET /methodologies/{methodology_id}/versions/{version} | Read the calculation and governance method |
All endpoints are public in this Draft contract. Paths are relative to the reserved REST origin https://api.t17.capital/v1; this does not claim that the endpoints are live.
Index identity and status
An Index has a stable opaque index_id. Its slug, symbol, display name, and tags MAY change without changing identity. Draft status values are:
| Status | Meaning |
|---|---|
draft | Definition is under review and MUST NOT publish official observations |
scheduled | Approved, with a future activation time |
active | Has an effective version and may publish observations |
suspended | Publication or use is temporarily paused |
archived | No longer active; history remains readable |
{
"data": {
"index_id": "idx_demo_conflict_001",
"slug": "demo-conflict-signal",
"symbol": "DCSX",
"name": "Demonstration Conflict Signal Index",
"family": "geopolitical",
"description": "Illustrative weighted prediction-market benchmark.",
"status": "active",
"unit": "index_points",
"base_value": "100.0000000000",
"base_date": "2026-07-01T00:00:00Z",
"active_version_id": "idxv_demo_003",
"tags": ["conflict", "demo"],
"created_at": "2026-06-01T00:00:00Z",
"updated_at": "2026-08-15T09:00:00Z"
},
"meta": {
"request_id": "req_demo_idx_001",
"published_at": "2026-08-31T12:00:00Z",
"schema_version": "1.0"
}
}List indexes
GET /indexes accepts family, status, tag, constituent_market_id, as_of, cursor, and limit. The default ordering is index_id ascending; a production implementation MAY publish additional supported sort fields, but MUST reject unknown sorts.
as_of returns the catalog and active-version projection known at that instant. It MUST NOT silently substitute today’s active version.
Immutable Index Versions
Each published version fixes:
- the effective interval;
methodology_idandmethodology_version;- constituent identities, target weights, caps, and eligibility decisions;
- source Market/Outcome/Venue mappings and normalization rules;
- calculation frequency, rebalance schedule, base/reset treatment, and quality thresholds;
- governance approval and publication metadata.
{
"data": {
"index_version_id": "idxv_demo_003",
"index_id": "idx_demo_conflict_001",
"version": "3",
"status": "published",
"effective_from": "2026-08-15T00:00:00Z",
"effective_to": null,
"methodology_id": "meth_demo_weighted_001",
"methodology_version": "2.1",
"calculation_frequency": "PT1M",
"rebalance_rule": "monthly_review_event_driven_exception",
"weight_sum": "1.0000000000",
"minimum_coverage_ratio": "0.8000",
"approved_by": "committee_demo_001",
"approved_at": "2026-08-10T08:00:00Z",
"published_at": "2026-08-11T09:00:00Z",
"supersedes_version_id": "idxv_demo_002",
"change_summary": ["scheduled_rebalance", "market_mapping_update"]
},
"meta": {
"request_id": "req_demo_idxv_001",
"published_at": "2026-08-31T12:00:00Z",
"schema_version": "1.0"
}
}Published versions are immutable. A mistake is corrected by publishing a replacement version or an explicit price correction, never by editing historical configuration in place.
Constituents and venue mappings
GET /indexes/{index_id}/versions/{version_id}/constituents defaults to deterministic constituent_id order and supports expand=market,outcomes,venue. Each item records the selection decision, target/effective weights, caps, and the exact source used.
{
"constituent_id": "con_demo_001",
"index_version_id": "idxv_demo_003",
"market_id": "mkt_demo_001",
"outcome_id": "out_demo_yes_001",
"target_weight": "0.2500000000",
"effective_weight_at_publication": "0.2500000000",
"weight_cap": "0.3000000000",
"normalization": "probability_0_1",
"eligibility_status": "eligible",
"eligibility_reason_codes": ["RULES_CLEAR", "DATA_FRESH"],
"rating_assessment_id_at_selection": "mra_demo_118",
"market_mapping": {
"mapping_id": "map_demo_001",
"venue_id": "ven_demo_001",
"source_event_id": "source_evt_demo_701",
"source_series_id": "source_ser_demo_201",
"source_market_id": "source_mkt_demo_901",
"source_outcome_id": "source_out_demo_yes_901",
"valid_from": "2026-08-15T00:00:00Z",
"valid_to": null
}
}Market Rating may be evidence in a separately published eligibility policy, but the rating resource remains independent. Severity Assessment MUST NOT be implicitly used as a quality rating or eligibility decision.
Methodology versions
GET /methodologies/{methodology_id}/versions/{version} returns the normative calculation method: input selection, normalization, weighting, capping, missing/stale/outlier treatment, publication thresholds, correction policy, governance, and a machine-verifiable content hash where available.
{
"data": {
"methodology_id": "meth_demo_weighted_001",
"version": "2.1",
"status": "published",
"name": "Illustrative weighted probability method",
"document_uri": "urn:t17:methodology:demo-weighted:2.1",
"content_hash": "sha256:ILLUSTRATIVE_ONLY",
"published_at": "2026-08-01T00:00:00Z",
"supersedes_version": "2.0"
},
"meta": {
"request_id": "req_demo_meth_001",
"published_at": "2026-08-31T12:00:00Z",
"schema_version": "1.0"
}
}Point-in-time reproduction
To reproduce an index level, a client MUST retain the observation’s index_version_id, fetch that immutable version and its constituents, fetch the referenced methodology version, and resolve every input_observation_id from the price detail endpoint. See Prices for the complete audit chain.