# 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"
  }
]
```
