# Search tokens

> Search or page available swap assets

`GET /v2/swaps/assets/tokens`

Search or page available swap assets.

**Authentication:** None. This route is public.

Several tokens can share a symbol (searching `usdc` also returns `syrupUSDC`). Match on `address` and `chainId`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `direction` | query | `"from"` · `"to"` | Yes | "from" filters to tokens usable as a source, "to" to tokens usable as a destination. |
| `chainId` | query | integer | No | Restrict the search to one chain; omit to search every available chain. |
| `q` | query | string (max 200) | No | Free-text filter on symbol, name, or address. |
| `offset` | query | integer | No (default `0`) | Number of tokens to skip, for paging the filtered catalog. |
| `limit` | query | integer (1–100) | No (default `100`) | Page size. |

## Response

`200` returns an object with:

- `tokens` · array of object · **required**
  - `address` · string · **required**
  - `symbol` · string · **required**
  - `decimals` · integer (0–36) · **required**
  - `chainId` · integer · **required** — Non-negative integer chain identifier.
  - `name` · string · **required**
  - `logoURI` · string
  - `priceUSD` · string
- `total` · integer · **required**
- `nextOffset` · integer
- `catalogStale` · boolean

Errors use the [standard error envelope](https://docs.wagyu.xyz/actions-and-retries.md#the-error-envelope): branch on `code`, never on the message.

## Example

<!-- curl -->
```bash
curl 'https://api-beta.wagyu.xyz/v2/swaps/assets/tokens?direction=from&chainId=1&q=usdc&limit=2'
```

<!-- JavaScript -->
```javascript
const res = await fetch('https://api-beta.wagyu.xyz/v2/swaps/assets/tokens?direction=from&chainId=1&q=usdc&limit=2'
);
const data = await res.json();
```

<!-- Python -->
```python
import requests

res = requests.get('https://api-beta.wagyu.xyz/v2/swaps/assets/tokens?direction=from&chainId=1&q=usdc&limit=2', timeout=30)
data = res.json()
```

<!-- Response · 200 · captured 4 Nov 2026, 08:24 UTC -->
```json
{
  "tokens": [
    {
      "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "symbol": "USDC",
      "decimals": 6,
      "chainId": 1,
      "name": "USD Coin",
      "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
      "priceUSD": "1.0004734908"
    },
    {
      "address": "0x80ac24aA929eaF5013f6436cdA2a7ba190f5Cc0b",
      "symbol": "syrupUSDC",
      "decimals": 6,
      "chainId": 1,
      "name": "syrupUSDC",
      "logoURI": "https://static.debank.com/image/eth_token/logo_url/0x80ac24aa929eaf5013f6436cda2a7ba190f5cc0b/a7faacaded044f7d84a2b8e21ae7babd.png",
      "priceUSD": "1.1917541157"
    }
  ],
  "total": 7,
  "nextOffset": 2,
  "catalogStale": false
}
```

---
Source: https://docs.wagyu.xyz/api-reference/get-swap-asset-tokens · Built from the live Wagyu API on 2026-11-04.
