> For the complete documentation index, see [llms.txt](https://dirolprotocols-organization.gitbook.io/dirol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dirolprotocols-organization.gitbook.io/dirol/api/liquidity-sources.md).

# Liquidity sources

### What `/liquidity-sources` returns

`GET /liquidity-sources` returns the venues Dirol uses for routing.

Use the `id` field when excluding sources from `/quote` or `/swap`.

### Example request

```bash
curl "https://api.dirol.io/api/v1/liquidity-sources"
```

### Example response

```json
{
  "sources": [
    { "id": "UniswapV2", "type": "V2" },
    { "id": "UniswapV3", "type": "V3" },
    { "id": "UniswapV4", "type": "V4" },
    { "id": "PancakeSwapV2", "type": "V2" },
    { "id": "PancakeSwapV3", "type": "V3" },
    { "id": "Purps", "type": "V2" },
    { "id": "DYOR", "type": "V2" },
    { "id": "SwyrlFinanceV2", "type": "V2" },
    { "id": "Kansei", "type": "V2" },
    { "id": "PinotV2", "type": "V2" },
    { "id": "Taya", "type": "V2" },
    { "id": "LFJ", "type": "V2" },
    { "id": "SwyrlFinanceV3", "type": "V3" },
    { "id": "MondayTrade", "type": "V3" },
    { "id": "OctoSwapV3", "type": "V3" },
    { "id": "PinotV3", "type": "V3" },
    { "id": "NoxaV3", "type": "V3" },
    { "id": "PangolinV3", "type": "V3" },
    { "id": "CapricornV3", "type": "V3" },
    { "id": "UniswapV4", "type": "V4" },
    { "id": "BalancerV3", "type": "Balancer" },
    { "id": "Kuru", "type": "CLOB" },
    { "id": "Hanji", "type": "CLOB" },
    { "id": "NadFun", "type": "BondingCurve" }
  ]
}

```

### Source types

* `V2` — constant product pools.
* `V3` and `V4` — concentrated liquidity pools.
* `Balancer` — weighted or custom pool math.
* `CLOB` — central limit order book liquidity.
* `BondingCurve` — curve-based token launch liquidity.

### Current sources

* **V2:** `UniswapV2`, `PancakeSwapV2`
* **V3 and V4:** `CapricornV3`, `UniswapV4`, `BalancerV3`
* **Other models:** `Kuru`, `Hanji`, `NadFun`

### Excluding sources

Pass one or more source IDs in `excludeSources`.

Use commas without spaces.

#### Exclude one source

```bash
curl "https://api.dirol.io/api/v1/quote?tokenIn=0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A&tokenOut=0x754704Bc059F8C67012fEd69BC8A327a5aafb603&amount=1000000000000000000&excludeSources=Kuru"
```

#### Exclude multiple sources

```bash
curl "https://api.dirol.io/api/v1/swap?tokenIn=0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A&tokenOut=0x754704Bc059F8C67012fEd69BC8A327a5aafb603&amount=1000000000000000000&recipient=0x9603e52146d02Aa2eD5B6A71E43933ac07940B12&excludeSources=Kuru,CapricornV3"
```

### Notes

* Source IDs are case-sensitive.
* The `factory` field in each route step matches the source ID.
* Available sources can change as routing support expands.
