---
title: "Earn vault batch"
method: POST
path: "/v3/earn/vaults/batch"
tags: ["Earn"]
---

# Earn vault batch

`POST /v3/earn/vaults/batch`

Returns earn vault summaries for explicit addresses on one chain.
Pass `include: ["strategies"]` to add the same strategy objects
returned by earn vault detail.
Response preserves request order after address deduplication.
Request cap: 1000 vault addresses and 256 KiB of JSON body.

## Request body

- EarnVaultBatchRequest
  - `chainId` integer, required
  - `addresses` string[], required
  - `include` string[] — Optional related resources to expand for every returned vault.

## Response `200`

Earn vault batch

- EarnVaultBatchResponse
  - `data` EarnVaultBatchItem[]
    - `chainId` integer
    - `address` string
    - `name` string
    - `symbol` string
    - `decimals` integer
    - `asset` AssetRef
      - `address` string
      - `symbol` string
      - `decimals` integer
      - `name` string, nullable
    - `totalAssets` string — Raw underlying asset amount as a bigint string.
    - `totalShares` string — Raw vault share supply as a bigint string.
    - `lostAssets` string — Raw lost asset amount as a bigint string.
    - `exchangeRate` string — Raw exchange rate as a bigint string.
    - `totalSupplyUsd` number — Market USD number for total Earn vault assets.
    - `availableAssets` string — Raw underlying asset amount as a bigint string.
    - `availableAssetsUsd` number — Market USD number for currently available assets.
    - `supplyApy` number, nullable — Public supply APY as a percent number.
    - `apyCurrent` number, nullable — Current public APY as a percent number.
    - `apy7d` number, nullable — Seven-day public APY as a percent number, using an anchor at or up to 15 minutes before the exact cutoff. Null when no qualifying local or archive anchor is available.
    - `apy30d` number, nullable — Thirty-day public APY as a percent number, using an anchor at or up to 15 minutes before the exact cutoff. Null when no qualifying local or archive anchor is available.
    - `apy90d` number, nullable — Ninety-day public APY as a percent number, using an anchor at or up to 15 minutes before the exact cutoff. Null when no qualifying local or archive anchor is available.
    - `utilization` number — Utilization ratio number.
    - `strategyCount` integer
    - `snapshotTimestamp` string, date-time
    - `createdAt` string, date-time
    - `visibility` VaultVisibilitySummary — Platform visibility verdict for discovery surfaces. Warning stays discoverable with a badge; the per-surface booleans carve out lend/borrow discovery individually.
      - `status` 'visible' | 'warning' | 'hidden' | 'pending_review', required
      - `explorableLend` boolean, required
      - `explorableBorrow` boolean, required
      - `decidedBy` 'config-revoked' | 'consistency-revoked' | 'config-suspended' | 'consistency-suspended' | 'config-failed' | 'not-explorable' | 'unassessable' | 'deprecated' | 'unclaimed' | 'verified' | 'awaiting-verification', required — Which resolution rule decided the status. `config-*` codes come from Layer 1 (configuration safety), `consistency-*` codes from Layer 2 (label consistency).
      - `reason` string, nullable, required — Display-appropriate explanation for the decision (deprecation reason, failing check), when one is authored.
    - `strategies` EarnStrategy[]
      - `address` string
      - `vaultType` 'evk' | 'earn' | 'securitize' | 'unknown'
      - `symbol` string, nullable
      - `name` string, nullable
      - `decimals` integer, nullable
      - `suppliedAssets` string — Raw underlying asset amount supplied to the strategy.
      - `withdrawnAssets` string — Raw underlying asset amount withdrawn from the strategy.
      - `allocatedAssets` string — Raw underlying asset amount allocated to the strategy.
      - `allocatedAssetsUsd` number — Market USD number for assets allocated to this strategy.
      - `availableAssets` string — Raw underlying asset amount available from the strategy.
      - `inSupplyQueue` boolean
      - `inWithdrawQueue` boolean
      - `supplyQueueIndex` integer, nullable
      - `withdrawQueueIndex` integer, nullable
      - `allocationCap` EarnStrategyAllocationCap
        - `current` string — Raw allocation cap as a bigint string in underlying asset units.
        - `pending` string — Pending raw allocation cap as a bigint string in underlying asset units.
        - `pendingValidAt` string, date-time
      - `removableAt` string, date-time
      - `status` 'active' | 'inactive' | 'pending_removal'
      - `lastRebalancedAt` string, date-time, nullable
  - `meta` EarnVaultBatchMeta
    - `count` integer
    - `requested` integer
    - `notFound` string[]
    - `timestamp` string, date-time
    - `chainId` string

## Other responses

- `400` — Bad request
- `404` — Not found
- `413` — Request body too large
- `415` — Unsupported media type
- `429` — Rate limited
- `500` — Internal server error

---

[API](https://skmtc.dev/euler/apis/euler-data-api-v3.md) · [All operations](https://skmtc.dev/euler/apis/euler-data-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/euler/euler-data-api-v3/revisions/9573a5fbd4a6/schema)
