---
title: "Movers of the last two hours"
method: GET
path: "/arc/trending"
tags: ["Arc data"]
---

# Movers of the last two hours

`GET /arc/trending`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/arc/trending`
- Auth: none declared

Tokens scored on volume and trade acceleration over the last two hours, from the hourly rollup. Each row is a full token row plus the score and its inputs.

## Query parameters

- `limit` integer

## Response `200`

- object
  - `chain` 5042
  - `window` '2h'
  - `tokens` ArcTrendingRow[]
    - `address` string: EVM address, hex, case-insensitive.
    - `symbol` string, nullable
    - `name` string, nullable
    - `decimals` integer, nullable
    - `logoURI` string, nullable: Logo through Chord's proxy (`/v1/logo/5042/{address}`, 128 px WebP).
    - `logoUriRaw` string, nullable: The upstream logo URL the proxy fetched, when there is one.
    - `tags` string[]: `stablecoin`, `fx`, `stock`, … — from the curated list; empty for unlisted tokens.
    - `listed` boolean: On the curated Arc token list (metadata and logo vetted).
    - `priceUsd` number, nullable: Last trade price on the token's dominant venue, USD.
    - `change24hPct` number, nullable
    - `volume24h` number: USD, every venue, no dust floor.
    - `buyVolume24h` number
    - `sellVolume24h` number
    - `trades24h` integer
    - `buys24h` integer
    - `sells24h` integer
    - `traders` integer: Distinct attributed wallets over the board's day window. Routers, executors and bots are not wallets.
    - `lastTradeTs` integer: Unix time, seconds, UTC.
    - `totalSupply` number, nullable: `totalSupply()` in whole tokens. Null when unreadable.
    - `marketCapUsd` number, nullable: totalSupply × price — fully diluted, since nothing on-chain says what is locked.
    - `pools` object: Indexed pools holding the token.
      - `v3` integer
      - `v2` integer
      - `v4` integer
      - `byDex` object: Pool count per venue id (`uniswap_v3`, `uniswap_v4`, `pools_trade`, `slipstream_fork`, `v3fork_<8hex>`, …).
    - `routable` boolean: The engine can quote this token today (at least one pool against a routing anchor).
    - `flags` string[]: Honesty flags. `wash` = a day's volume carried by one or two wallets; `impostor` = an unlisted token wearing a listed symbol. Absent when clean.
    - `score` number: Trending score (higher = hotter).
    - `volNow` number: USD in the 2-hour window.
    - `tradesNow` integer
    - `change1hPct` number, nullable
    - `momentum` number, nullable
  - `updatedAt` integer: Unix time, milliseconds — when the server built this answer.

## Other responses

- `400`: Invalid parameters — `error` names the check that failed (`INVALID_PARAMS`, `BAD_ADDRESS`, `BAD_LIMIT`, `BAD_HOURS`, …).
- `503`: The lane behind this endpoint is not ready or not enabled here (`NOT_READY`, `CHAIN_NOT_ENABLED`, `NOT_ENABLED`, `*_UNAVAILABLE`). Retry later; do not treat it as an empty answer.

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
