---
title: "Busiest routes of one stablecoin"
method: GET
path: "/v1/tokens/{token}/routes"
tags: ["stats"]
---

# Busiest routes of one stablecoin

`GET /v1/tokens/{token}/routes`

## Request

- Base URL: `https://stablescan.achivx.com`
- URL: `https://stablescan.achivx.com/v1/tokens/{token}/routes`
- Auth: none required

Each network's top payer → recipient routes of one registry symbol, summed from the daily per-token top-N — a ranking, never a total. `window_start`..`window_end` name the requested window's UTC days, both inclusive (the `window_days` whole days ending the day before the read); read the day from them. `chains[].basis_days` is how many of those days each network's ranking is summed from, counted anywhere in the window, not back from `window_end` — the newest day is missing until it is ranked after it closes.

## Path parameters

- `token` string, required

## Query parameters

- `window` '24h' | '7d' | '30d'
- `per_chain` integer

## Response `200`

Busiest routes of one stablecoin.

- TokenRoutes
  - `basis_days` integer, required: The widest network's basis: the most days of window_start..window_end any one network's ranking is summed from. It describes no particular network — read chains[].basis_days.
  - `chains` object[], nullable, required
    - `basis_days` integer, required: Days of window_start..window_end on which this network carries a ranking of the asset, counted anywhere in the window, not back from window_end: the newest day is missing until it is ranked after it closes (around 01:00 UTC, later on a network whose indexing lags), and a day can be missing in the middle too. 0 = no ranked day in the window carries this asset on this network: the network is not ranked yet, or the asset had no ranked activity there.
    - `chain_id` integer, required
    - `chain_slug` string, required
    - `items` object[], nullable, required
      - `chain_id` integer, required
      - `chain_slug` string, required
      - `payer` string, required
      - `payer_category` string
      - `payer_name` string
      - `recipient` string, required
      - `recipient_category` string
      - `recipient_name` string
      - `tx_count` integer, required
      - `volume_usd6` integer, required
    - `name` string, required
  - `symbol` string, required
  - `window_days` integer, required
  - `window_end` string, required: Last UTC day of the requested window, inclusive (YYYY-MM-DD): the day before the UTC day the answer was read on. The day in progress is never part of a window; which of these days a network's ranking actually carries is chains[].basis_days.
  - `window_start` string, required: First UTC day of the requested window, inclusive (YYYY-MM-DD): window_end minus (window_days - 1) days.

## Other responses

- `400`: The one error envelope. Branch on `error.code`, not on the status.
- `404`: The one error envelope. Branch on `error.code`, not on the status.
- `429`: The per-IP token bucket (20 requests/second, burst 40) is empty — wait `Retry-After`.
- `500`: The one error envelope. Branch on `error.code`, not on the status.
- `503`: The one error envelope. Branch on `error.code`, not on the status.

---

[API](https://skmtc.dev/achivx/apis/stablecoin-scanner-rest-api.md) · [All operations](https://skmtc.dev/achivx/apis/stablecoin-scanner-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/achivx/apis/stablecoin-scanner-rest-api/revisions/cbd001c8925c?raw)
