# Backend API

## Base API url

```
https://backend.kodiak.finance
```

## Endpoints

#### Get a list of users by token (`GET /balances/<TOKEN_ADDRESS>`)

<table><thead><tr><th width="175">Query argument</th><th width="159">Required</th><th>Description</th></tr></thead><tbody><tr><td>blockNumber</td><td>Yes</td><td>Block number to which you need data</td></tr><tr><td>users</td><td>No</td><td>Comma-separated list of users to filter</td></tr></tbody></table>

Example:

```
http://backend.kodiak.finance/balances/0x7DCC39B4d1C53CB31e1aBc0e358b43987FEF80f7?blockNumber=99999999999&users=0xb83742330443f7413dbd2abdfc046db0474a944e
```

As an answer you will get a list of users and their total balances, including islands balances, farms, some external farms, as well as v3 positions and normal balances.  A description of all sources can be found in the sources

Response example:

<pre class="language-json"><code class="lang-json"><strong>{
</strong>  "results": [
    {
      "account": "0xb83742330443f7413dbd2abdfc046db0474a944e",
      "total": 42175.929775565106,
      "sources": [
        {
          "source": "balance",
          "value": 23378.656358324366
        },
        {
          "source": "island",
          "value": 1.1062169805412183,
          "extraData": {
            "islandId": "0xa0cabfc04fc420b3d31ba431d18eb5bd33b3f334"
          }
        },
        {
          "source": "external_vaults",
          "value": 10485.409406599369
        },
        {
          "source": "v3-position",
          "value": 0.015593277755401007,
          "extraData": {
            "positionId": "1917"
          }
        },
        {
          "source": "v3-position",
          "value": 8310.742200383076,
          "extraData": {
            "positionId": "1942"
          }
        }
      ],
      "expanded": "balance: 23378.656358324366, island: 1.1062169805412183, external_vaults: 10485.409406599369, v3-position: 0.015593277755401007, v3-position: 8310.742200383076"
    }
  ],
  "lastSyncedBlock": 4726990
}
</code></pre>

#### **Get token pricing information (**`GET /tokens`)

<table><thead><tr><th width="175">Query argument</th><th width="159">Required</th><th>Description</th></tr></thead><tbody><tr><td>addresses</td><td>Yes</td><td>Comma-separated list of token addresses</td></tr></tbody></table>

Example:

```
https://backend.kodiak.finance/tokens?addresses=0xC60Ea9801B3F1B01dA373C05381e6cE8ff94d76f
```

As an answer you will get an array of token objects containing pricing and metadata information for each requested token address.\
\
Response example:

```
[
  {
    "id": "0xc60ea9801b3f1b01da373c05381e6ce8ff94d76f",
    "symbol": "KODI SolvBTC.BNB-SolvBTC",
    "name": "Kodiak Island SolvBTC.BNB-SolvBTC-2%",
    "decimals": 18,
    "price": 92597.7754576649,
    "totalSupply": 594.801589203266,
    "priceStrategy": "vault",
    "lastIndexed": "2025-08-25T17:55:46.716Z"
  }
]
```


---

# Agent Instructions: 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:

```
GET https://documentation.kodiak.finance/developers/backend-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
