ThesaurosDocs
Partner API

Vaults

Read available vault records and their observed rate history.

Partner API

Authentication · Errors · Amounts and units

Response examples below come from a local test account. IDs, balances and timestamps are sample data. Replace IDs and credentials with values from your account.

Vaults with observed trailing APY averages and risk tier

GET /vaults

Scope: read or partner:read (protocol-level). apy_7d_avg/apy_30d_avg come from recorded hourly observations and are null until enough exist.

Access: read, partner:read.

SDK methods: TypeScript client.vaults.list(…); Python client.vaults.list(…).

Parameters

| Name | Location | Type | Required | Description |

| --- | --- | --- | --- | --- |

| asset | query | "USDC", "USDT0" | No | Filter by asset symbol. |

| network | query | "arbitrum", "base", "plasma", "monad", "mainnet" | No | Filter to one chain. Omit for every chain — no server state is switched. |

Request example

bash
curl --fail-with-body -X GET "$THESAUROS_API_BASE/vaults" \
  -H "Authorization: Bearer $THESAUROS_API_KEY"

Response · 200

Field Type Required Description
object string Yes
data VaultDto[] Yes
View example response
json
{
  "object": "list",
  "data": [
    {
      "object": "vault",
      "id": "vault_plasma_usdt0",
      "name": "Thesauros USDT0 Vault",
      "provider": "morpho",
      "asset": "USDT0",
      "chain": "plasma",
      "apy": 0.076,
      "apy_7d_avg": null,
      "apy_30d_avg": null,
      "tvl_usd": 12800000,
      "capacity_usd": 40000000,
      "risk_tier": "core",
      "status": "active",
      "allocation_pct": 0.07
    },
    {
      "object": "vault",
      "id": "vault_morpho_base_usdc",
      "name": "Morpho Blue USDC Yield",
      "provider": "morpho",
      "asset": "USDC",
      "chain": "base",
      "apy": 0.068,
      "apy_7d_avg": null,
      "apy_30d_avg": null,
      "tvl_usd": 21700000,
      "capacity_usd": 60000000,
      "risk_tier": "core",
      "status": "active",
      "allocation_pct": 0.22
    },
    {
      "object": "vault",
      "id": "vault_aave_base_usdc",
      "name": "Aave V3 USDC Core",
      "provider": "aave",
      "asset": "USDC",
      "chain": "base",
      "apy": 0.052,
      "apy_7d_avg": null,
      "apy_30d_avg": null,
      "tvl_usd": 48200000,
      "capacity_usd": 120000000,
      "risk_tier": "bluechip",
      "status": "active",
      "allocation_pct": 0.28
    },
    {
      "object": "vault",
      "id": "vault_compound_base_usdc",
      "name": "Compound V3 USDC Base",
      "provider": "compound",
      "asset": "USDC",
      "chain": "base",
      "apy": 0.048,
      "apy_7d_avg": null,
      "apy_30d_avg": null,
      "tvl_usd": 18100000,
      "capacity_usd": 55000000,
      "risk_tier": "core",
      "status": "active",
      "allocation_pct": 0.05
    },
    {
      "object": "vault",
      "id": "vault_compound_arb_usdc",
      "name": "Compound V3 USDC",
      "provider": "compound",
      "asset": "USDC",
      "chain": "arbitrum",
      "apy": 0.045,
      "apy_7d_avg": null,
      "apy_30d_avg": null,
      "tvl_usd": 33900000,
      "capacity_usd": 90000000,
      "risk_tier": "bluechip",
      "status": "active",
      "allocation_pct": 0.18
    },
    {
      "object": "vault",
      "id": "vault_treasury_base_usdc",
      "name": "Tokenized Treasury USDC",
      "provider": "treasury",
      "asset": "USDC",
      "chain": "base",
      "apy": 0.039,
      "apy_7d_avg": null,
      "apy_30d_avg": null,
      "tvl_usd": 74500000,
      "capacity_usd": 250000000,
      "risk_tier": "bluechip",
      "status": "active",
      "allocation_pct": 0.12
    }
  ]
}

For failed requests, inspect error.code, error.message and the request ID. Error handling.

Observed APY series for one vault

GET /apy/history

Scope: read or partner:read (protocol-level). vault is required; days is 1-90 (default 7). Points are the recorded hourly observations, oldest first.

Access: read, partner:read.

SDK methods: TypeScript client.vaults.history(…); Python client.vaults.history(…).

Parameters

| Name | Location | Type | Required | Description |

| --- | --- | --- | --- | --- |

| vault | query | string | No | Vault id. Required. |

| days | query | number | No | Window in days, 1-90 (default 7). |

Request example

bash
curl --fail-with-body -X GET "$THESAUROS_API_BASE/apy/history?vault=vault_plasma_usdt0" \
  -H "Authorization: Bearer $THESAUROS_API_KEY"

Response · 200

Field Type Required Description
object string Yes
data ApyHistoryDto Yes
View example response
json
{
  "object": "apy_history",
  "data": {
    "object": "apy_history",
    "vault_id": "vault_plasma_usdt0",
    "name": "Thesauros USDT0 Vault",
    "asset": "USDT0",
    "chain": "plasma",
    "days": 7,
    "apy_avg": null,
    "observations": 0,
    "points": []
  }
}

For failed requests, inspect error.code, error.message and the request ID. Error handling.

Build with us.

Bring your product flow. We'll map the integration together.

Discuss your integration
Continue readingPartner data models

Find an integration guide, API method or SDK example.

Thesauros documentationSearch runs in your browser