> For the complete documentation index, see [llms.txt](https://docs.kaiko.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kaiko.com/kaiko-indices/indices/composition-data.md).

# Composition data

### What is this endpoint for?

These two endpoints retrieve the constituent-level composition of a Kaiko multi-asset index over time. There are two complementary feeds:

* **Effective composition** (`indices_effective_compo`) — the active composition, produced on every index publication.&#x20;
* **Forecast composition** (`indices_forecast_compo`) — the composition that **takes effect at the next rebalance**, projected once per day from the pending review's target weights.

***

## Effective composition

### Endpoint

```
https://us.market-api.kaiko.io/v2/data/index.v1/indices_effective_compo
```

### Request parameters

<table><thead><tr><th width="185">Parameter</th><th width="110">Required</th><th width="360">Description</th><th>Example</th></tr></thead><tbody><tr><td><code>index_code</code></td><td>Yes</td><td>The desired index <a data-footnote-ref href="#user-content-fn-1"><code>ticker</code></a>. Accepts a comma-separated list for multiple indices. </td><td><code>KT10NYC</code></td></tr><tr><td><code>start_time</code></td><td>Yes</td><td>Starting time in ISO 8601 (inclusive). Filters on <code>index_event_ts</code>.</td><td><code>2026-07-22T00:00:00.000Z</code></td></tr><tr><td><code>end_time</code></td><td>Yes</td><td>Ending time in ISO 8601 (exclusive). Filters on <code>index_event_ts</code>.</td><td><code>2026-07-23T00:00:00.000Z</code></td></tr><tr><td><code>page_size</code></td><td>No</td><td>Number of records per page (default <code>100</code>).</td><td><code>100</code></td></tr><tr><td><code>continuation_token</code></td><td>No</td><td>Token returned in a paged response. Pass it as a query parameter to fetch the next page, and repeat until <code>data</code> is empty.</td><td><code>...</code></td></tr></tbody></table>

### Response Fields

Each element of `data` is one composition record:

| Field                        | Description                                                  |
| ---------------------------- | ------------------------------------------------------------ |
| `index_code`                 | The ticker of the index                                      |
| `event_ts`                   | The time at which the composition record was produced        |
| `last_effective_rebalancing` | The time of the rebalance currently in force                 |
| `index_value`                | The value for the index publication                          |
| `divisor`                    | The index divisor                                            |
| `index_event_ts`             | The time of the index publication the record is derived from |
| `composition.pairs`          | The list of constituents included in the index               |
| `result`                     | Status of the query                                          |

Each object in `composition.pairs` contains:

| Field                   | Description                                                 |
| ----------------------- | ----------------------------------------------------------- |
| `underlying_instrument` | The ticker of the constituent used in the index calculation |
| `base`                  | The base asset of the constituent                           |
| `quote`                 | The quote asset of the constituent                          |
| `current_price`         | The latest price of the constituent                         |
| `target_weight`         | The target allocation set at the last rebalance             |
| `effective_units`       | The number of units of the constituent                      |
| `current_weight`        | The live allocation of the constituent                      |
| `underlying_timestamp`  | The time of the constituent price used                      |

### Request example

{% tabs %}
{% tab title="cURL" %}
{% code overflow="wrap" %}

```url
curl -H "X-Api-Key: $KAIKO_API_KEY" \
     -H 'Accept: application/json' \
    "https://us.market-api.kaiko.io/v2/data/index.v1/indices_effective_compo?index_code=KT10NYC&start_time=2026-08-01T00:00:00Z&end_time=2026-08-02T00:00:00Z"
```

{% endcode %}
{% endtab %}
{% endtabs %}

### Response example

{% tabs %}
{% tab title="JSON" %}
{% code fullWidth="false" %}

```json
{
  "query": {
    "data_version": "v1",
    "request_time": "2026-08-02T15:16:52.652Z",
    "start_time": "2026-08-01T00:00:00Z",
    "end_time": "2026-08-02T00:00:00Z",
    "index_code": "KT10NYC",
    "page_size": 100
  },
  "time": "2026-08-02T15:16:52.813Z",
  "timestamp": 1785683812813,
  "data": [
    {
      "index_code": "KT10NYC",
      "event_ts": "2026-08-01T20:15:00.39042164Z",
      "last_effective_rebalancing": "2026-07-01T12:00:00Z",
      "index_value": 685.162372933475,
      "divisor": 35644128987.995575,
      "index_event_ts": "2026-08-01T20:15:00Z",
      "composition": {
        "pairs": [
          {
            "underlying_instrument": "KK_RFR_ADAUSD_NYC",
            "base": "ada",
            "quote": "usd",
            "current_price": 0.17238101818181817,
            "target_weight": 0.016213701514266293,
            "effective_units": 2553637603455.3384,
            "current_weight": 0.018024664719609156,
            "underlying_timestamp": "2026-08-01T20:00:00Z"
          },
          {
            "underlying_instrument": "KK_RFR_BNBUSD_NYC",
            "base": "bnb",
            "quote": "usd",
            "current_price": 575.905918367347,
            "target_weight": 0.061329486594474694,
            "effective_units": 2559670123.9823337,
            "current_weight": 0.060360666930867245,
            "underlying_timestamp": "2026-08-01T20:00:00Z"
          }
        ]
      }
    }
  ],
  "result": "success"
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

***

## Forecast composition

### Endpoint

```
https://us.market-api.kaiko.io/v2/data/index.v1/indices_forecast_compo
```

### Request parameters

<table><thead><tr><th width="185">Parameter</th><th width="110">Required</th><th width="360">Description</th><th>Example</th></tr></thead><tbody><tr><td><code>index_code</code></td><td>Yes</td><td>The desired index <code>ticker</code>. Accepts a comma-separated list for multiple indices. </td><td><code>KT10NYC</code></td></tr><tr><td><code>start_time</code></td><td>Yes</td><td>Starting time in ISO 8601 (inclusive). Filters on <code>index_event_ts</code>.</td><td><code>2026-07-22T00:00:00.000Z</code></td></tr><tr><td><code>end_time</code></td><td>Yes</td><td>Ending time in ISO 8601 (exclusive). Filters on <code>index_event_ts</code>.</td><td><code>2026-07-23T00:00:00.000Z</code></td></tr><tr><td><code>page_size</code></td><td>No</td><td>Number of records per page (default <code>100</code>).</td><td><code>100</code></td></tr><tr><td><code>continuation_token</code></td><td>No</td><td>Token returned in a paged response. Pass it as a query parameter to fetch the next page, and repeat until <code>data</code> is empty.</td><td><code>...</code></td></tr></tbody></table>

### Response Fields

Each element of `data` is one forecast record:

| Field                       | Description                                                  |
| --------------------------- | ------------------------------------------------------------ |
| `index_code`                | The ticker of the index                                      |
| `event_ts`                  | The time at which the forecast record was produced           |
| `next_forecast_rebalancing` | The time at which the forecast basket takes effect           |
| `index_value`               | The value for the index publication                          |
| `divisor`                   | The index divisor                                            |
| `index_event_ts`            | The time of the index publication the record is derived from |
| `forecast.pairs`            | The list of constituents included in the forecast            |
| `result`                    | Status of the query                                          |

Each object in `forecast.pairs` contains:

| Field                   | Description                                                   |
| ----------------------- | ------------------------------------------------------------- |
| `underlying_instrument` | The ticker of the constituent used in the index calculation   |
| `base`                  | The base asset of the constituent                             |
| `quote`                 | The quote asset of the constituent                            |
| `execution_price`       | The price used to size the forecast units                     |
| `forecast_weight`       | The target allocation for the next rebalance                  |
| `forecast_units`        | The number of units that will be locked at the next rebalance |
| `underlying_timestamp`  | The time of the constituent price used                        |

### Request example

{% tabs %}
{% tab title="cURL" %}
{% code overflow="wrap" %}

```url
curl -H "X-Api-Key: $KAIKO_API_KEY" \
     -H 'Accept: application/json' \
    "https://us.market-api.kaiko.io/v2/data/index.v1/indices_forecast_compo?index_code=KT10NYC&start_time=2026-07-22T00:00:00Z&end_time=2026-07-23T00:00:00Z"
```

{% endcode %}
{% endtab %}
{% endtabs %}

### Response example

{% tabs %}
{% tab title="JSON" %}
{% code fullWidth="false" %}

```json
{
  "query": {
    "data_version": "v1",
    "request_time": "2026-07-23T15:16:52.248Z",
    "start_time": "2026-07-22T00:00:00Z",
    "end_time": "2026-07-23T00:00:00Z",
    "index_code": "KT10NYC",
    "page_size": 100
  },
  "time": "2026-07-23T15:16:52.269Z",
  "timestamp": 1784819812269,
  "data": [
    {
      "index_code": "KT10NYC",
      "event_ts": "2026-07-22T20:30:07.912683878Z",
      "next_forecast_rebalancing": "2026-07-25T09:26:25.504Z",
      "index_value": 722.4247927157603,
      "divisor": 35644128987.995575,
      "index_event_ts": "2026-07-22T20:15:00Z",
      "forecast": {
        "pairs": [
          {
            "underlying_instrument": "KK_RFR_ADAUSD_NYC",
            "base": "ada",
            "quote": "usd",
            "execution_price": 0.17462301454545454,
            "forecast_weight": 0.0627,
            "forecast_units": 9245847122054.348,
            "underlying_timestamp": "2026-07-22T20:00:00Z"
          },
          {
            "underlying_instrument": "KK_RFR_BNBUSD_NYC",
            "base": "bnb",
            "quote": "usd",
            "execution_price": 569.6314545454545,
            "forecast_weight": 0.1226,
            "forecast_units": 5542135710.343315,
            "underlying_timestamp": "2026-07-22T20:00:00Z"
          }
        ]
      }
    }
  ],
  "result": "success"
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

[^1]: You can get a full list of our index tickers using the [reference data endpoint](/kaiko-indices/indices/reference-data.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kaiko.com/kaiko-indices/indices/composition-data.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
