---
title: "One coin's price snapshot (lightweight)"
method: GET
path: "/api/coins/{slug}/price"
tags: ["public-crypto-data"]
---

# One coin's price snapshot (lightweight)

`GET /api/coins/{slug}/price`

## Request

- Base URL: `https://api.coinrithm.com`
- URL: `https://api.coinrithm.com/api/coins/{slug}/price`
- Auth: none required

Keyless price-only subset of `/api/coins/{slug}` for polling: the
same price, change, volume, market-cap, all-time high/low, supply
and BTC/ETH ratio fields with the same decimal-string numerics and
the same `fiat` behaviour, without links, chains, categories,
notices, `volumeMissingVenues` or watchlist counts.

`priceUpdatedAt` here is the write time of the coin's price-summary
row, and `priceAgeHours`/`priceStale` derive from it. A periodic
recompute can rewrite that row without a new price, so `priceStale`
can read false for a price whose feed has stopped. For a staleness
decision read `/api/coins/{slug}` or `/api/live-prices`, whose
`priceUpdatedAt` is the live-price write time, and check
`marketCapSuspect`.

Query parameters other than `fiat` are ignored. Unknown slug, or a
coin with no price summary: 404 `{"message": "not_found"}`. Also
served at `/api/v1/coins/{slug}/price` with identical behaviour.

## Path parameters

- `slug` string, required

## Query parameters

- `fiat` string

## Response `200`

Price snapshot with its as-of time

- PublicCoinPrice: Price snapshot for one coin. Market and supply numerics are decimal STRINGS, null when unknown; parse before comparing. Converted fields use the requested `fiat`; `currentPriceUsd` is always USD.
  - `ucid` string, required: CoinRithm coin id, the `coinId` of the agent endpoints.
  - `slug` string, required
  - `symbol` string, required
  - `name` string, required
  - `currentPriceUsd` string, nullable: Price in USD.
  - `currentPrice` string, nullable: Price in `fiat`.
  - `change24h` string, nullable: 24h price change in percent.
  - `high24h` string, nullable: 24h high in `fiat`.
  - `low24h` string, nullable: 24h low in `fiat`.
  - `volume24h` string, nullable: 24h volume in `fiat`.
  - `volumeChange24h` string, nullable: 24h volume change in percent.
  - `marketCap` string, nullable: Market cap in `fiat`.
  - `marketCapChange24h` string, nullable: 24h market-cap change in percent.
  - `marketCapRank` integer, nullable
  - `marketCapSuspect` boolean, nullable: true when CoinRithm does not trust the market cap; null without a price.
  - `marketCapSuspectReason` string, nullable
  - `athUsd` string, nullable: All-time high, converted to `fiat` despite the name.
  - `athDate` string, date-time, nullable
  - `atlUsd` string, nullable: All-time low, converted to `fiat` despite the name.
  - `atlDate` string, date-time, nullable
  - `supplyCirculating` string, nullable
  - `supplyTotal` string, nullable
  - `supplyMax` string, nullable: Maximum supply; `"-1"` means uncapped, null unknown.
  - `supplyPercent` string, nullable: Circulating supply as a percent of `supplyMax`. Not meaningful (negative) when `supplyMax` is `-1`.
  - `btcEquivalent` string, nullable: Price in BTC.
  - `btcChange24h` string, nullable: 24h change of the BTC ratio, in percent.
  - `ethEquivalent` string, nullable: Price in ETH.
  - `ethChange24h` string, nullable: 24h change of the ETH ratio, in percent.
  - `priceUpdatedAt` string, date-time, nullable, required: As-of time of the price. On `/api/coins/{slug}` the live-price write time; on `/api/coins/{slug}/price` the price-summary row's write time (see that operation). Null when unknown.
  - `priceAgeHours` number, nullable, required: Hours since `priceUpdatedAt`, one decimal; null when unknown.
  - `priceStale` boolean, required: true when `priceAgeHours` exceeds `priceStaleAfterHours`; false when the age is unknown.
  - `priceStaleAfterHours` number, required: Staleness threshold in hours (72).

## Other responses

- `400`: Invalid or missing parameters. On a route with a query allowlist, an undocumented query parameter returns `{"error": "unsupported_query_parameter", "message": "Unsupported query parameter: <key>. Supported: <keys>."}`.
- `404`: Unknown slug, or no price summary for the coin
- `429`: Per-IP public rate limit exceeded. Honor `Retry-After` when present, otherwise back off; `RateLimit-*` headers report the window.
- `500`: Server error

---

[API](https://skmtc.dev/coinrithm/apis/coinrithm-agent-trading-api.md) · [All operations](https://skmtc.dev/coinrithm/apis/coinrithm-agent-trading-api/llms.txt) · [OpenAPI document](https://skmtc.dev/coinrithm/apis/coinrithm-agent-trading-api/revisions/28fb59f285fe?raw)
