# Complete lending metadata

Endpoint reference for the 1delta API. Index: https://docs.1delta.io/llms.txt · every endpoint: https://docs.1delta.io/llms-full.txt

---

### GET /v1/data/meta/lending/complete

- operationId: `complete-lending-metadata`
- docs: https://docs.1delta.io/1delta-api/complete-lending-metadata/
- markdown: https://docs.1delta.io/1delta-api/complete-lending-metadata.md
- tags: General

Complete lending metadata

Returns the full lending-protocol metadata bundle for the requested chains and lenders. This is the single source of truth for static lender/chain/market configuration consumed by the SDKs and the position-builder UI.

**Response includes**, per `(chainId, lenderKey)`:
- Supported markets and their underlying assets (address, symbol, decimals, asset group)
- Per-market risk parameters (LTV, liquidation threshold, factor, mode/e-mode IDs)
- Pool configuration IDs and which markets are eligible as collateral / borrowable per config
- Protocol contract addresses (pool, oracle, IRM, composer wiring)

Filter with `chainIds` and/or `lenders` to keep payloads small — both filters are AND-combined.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `chainIds` | query | string[] | no | Filter by chain IDs (repeatable) See the `ChainId` schema for the full set of supported chains. |
| `lenders` | query | string[] | no | Filter by lender keys (repeatable) See the `LenderId` schema for the full set of accepted values. |

**Response `200`** — Lending metadata

| Field | Type | Description |
| --- | --- | --- |
| `success` | true |  |
| `data` | object |  |
| `data.count` | integer | Number of entries in `items`. |
| `data.items` | object | The result set for this response. |
| `actions` | null |  |

**Example response**

```json
{
  "success": true,
  "data": {
    "count": 1,
    "items": {}
  }
}
```

**Response `429`** — Rate limited. Unauthenticated callers share a per-IP budget; send an `x-api-key` header to lift it. Retry with exponential backoff.

**Response `500`** — Unexpected server error. Safe to retry with backoff.

**Response `502`** — An upstream data source or protocol origin failed (`error.code` is `ORIGIN_FAILED`). `error.details` carries the per-origin status. This is also what a missing or malformed required parameter currently returns, rather than a 400.
