# Yield history

Use observed protocol rates to inform the Earn experience.

These records have protocol scope. APY uses decimal fractions and can be absent when there are no observations. Use `USDC` or `USDT0`; these asset identifiers differ from the sandbox.

[Authentication](/build/authentication/) · [Errors](/build/errors/) · [Amounts and units](/build/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.


## Blended APY history for an asset

`GET /yield/history/{asset}`


Protocol-wide blended APY across active Thesauros vaults for the asset. The series is identical for every caller and contains no partner-attributed data, so a partner binding is not required — any key with `read` or `partner:read` works.


**Access:** `read`, `partner:read`.


**SDK methods:** TypeScript `client.rates.history(…)`; Python `client.rates.history(…)`.


### Parameters

| Name | Location | Type | Required | Description |

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

| `asset` | path | `"USDC"`, `"USDT0"` | Yes |  |

### Request example

```bash
curl --fail-with-body -X GET "$THESAUROS_API_BASE/yield/history/USDC" \
  -H "Authorization: Bearer $THESAUROS_API_KEY"
```

### Response · 200

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | `string` | Yes |   |
| `data` | [YieldHistory](/api/partner-models/#yieldhistory) | Yes |   |


<details><summary>View example response</summary>

```json
{
  "object": "yield_history",
  "data": {
    "object": "yield_history",
    "scope": "protocol",
    "asset": "USDC",
    "blend_apy": 0.0526,
    "observations": 0,
    "history": [],
    "breakdown": [
      {
        "vault_id": "vault_morpho_base_usdc",
        "name": "Morpho Blue USDC Yield",
        "provider": "morpho",
        "chain": "base",
        "risk_tier": "core",
        "apy": 0.068,
        "apy_7d_avg": null,
        "allocation_pct": 0.22,
        "tvl_usd": 21700000
      },
      {
        "vault_id": "vault_aave_base_usdc",
        "name": "Aave V3 USDC Core",
        "provider": "aave",
        "chain": "base",
        "risk_tier": "bluechip",
        "apy": 0.052,
        "apy_7d_avg": null,
        "allocation_pct": 0.28,
        "tvl_usd": 48200000
      },
      {
        "vault_id": "vault_compound_base_usdc",
        "name": "Compound V3 USDC Base",
        "provider": "compound",
        "chain": "base",
        "risk_tier": "core",
        "apy": 0.048,
        "apy_7d_avg": null,
        "allocation_pct": 0.05,
        "tvl_usd": 18100000
      },
      {
        "vault_id": "vault_compound_arb_usdc",
        "name": "Compound V3 USDC",
        "provider": "compound",
        "chain": "arbitrum",
        "risk_tier": "bluechip",
        "apy": 0.045,
        "apy_7d_avg": null,
        "allocation_pct": 0.18,
        "tvl_usd": 33900000
      },
      {
        "vault_id": "vault_treasury_base_usdc",
        "name": "Tokenized Treasury USDC",
        "provider": "treasury",
        "chain": "base",
        "risk_tier": "bluechip",
        "apy": 0.039,
        "apy_7d_avg": null,
        "allocation_pct": 0.12,
        "tvl_usd": 74500000
      }
    ]
  }
}
```

</details>


For failed requests, inspect `error.code`, `error.message` and the request ID. [Error handling](/build/errors/).

