# Crypto Intraday & Seasonality API
> The time-of-day and day-of-week patterns hiding in a crypto pair's price history, computed live from Binance candles — no key, nothing stored. Crypto trades 24/7, but it does not trade evenly: some hours (the US equity open, the Asia session) carry far more volume and volatility than others, and some weekdays run hotter than weekends. The hourly endpoint buckets recent hourly candles by UTC hour of day and returns, for each of the 24 hours, the average return, the average volume, the average high-low range (a volatility proxy) and the up-rate (how often that hour closed green) — plus the most volatile and most bullish hours. The dayofweek endpoint does the same across the seven weekdays from daily candles, with the best and worst day. The symbols endpoint lists tradable pairs. This is the intraday / seasonality pattern cut for crypto — distinct from the raw OHLCV candle feed, the realised-volatility API and the FX-seasonality (calendar-month) API in the catalogue. It tells you WHEN a market tends to move, not just how much. Patterns are descriptive, not predictive. Pairs are Binance symbols (BTCUSDT) or a coin=BTC&quote=USDT form; all times are UTC.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/cryptoseasonality-api/..."
```

## Pricing
- **Free** (Free) — 500 calls/Mo, 2 req/s
- **Starter** ($10/Mo) — 14,500 calls/Mo, 6 req/s
- **Pro** ($33/Mo) — 76,000 calls/Mo, 16 req/s
- **Business** ($76/Mo) — 400,000 calls/Mo, 40 req/s

## Endpoints

### Seasonality

#### `GET /v1/dayofweek` — Seven-weekday profile

**Parameters:**
- `symbol` (query, required, string) — Binance pair Example: `BTCUSDT`
- `days` (query, optional, string) — Daily candles to scan (60-1000, default 365) Example: `365`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptoseasonality-api/v1/dayofweek?symbol=BTCUSDT&days=365"
```

**Response:**
```json
{
    "data": {
        "days": [
            {
                "day": "Sunday",
                "samples": 52,
                "weekday": 0,
                "avg_volume": 12989.2724,
                "up_rate_pct": 55.8,
                "avg_range_pct": 2.7645,
                "avg_return_pct": 0.2467
            },
            {
                "day": "Monday",
                "samples": 52,
                "weekday": 1,
                "avg_volume": 21035.1056,
                "up_rate_pct": 55.8,
                "avg_range_pct": 3.61,
                "avg_return_pct": 0.2904
            },
            {
                "day": "Tuesday",
                "samples": 52,
                "weekday": 2,
                "avg_volume": 20846.414,
                "up_rate_pct": 36.5,
                "avg_range_pct": 3.7197,
                "avg_return_pct": -0.3798
            },
            {
                "day": "Wednesday",
                "samples": 52,
                "weekday": 3,
                "avg_volume": 19890.2683,
                "up_rate_pct": 53.8,
                "avg_range_pct": 3.5529,
                "avg_return_pct": 0.2794
            },
            {
                "day": "Thursday",
                "samples": 52,
                "weekday": 4,
                "avg_volume": 20916.3878,
                "up_rate_pct": 42.3,
                "avg_range_pct": 3.5929,
                "avg_return_pct": -0.7599
            },
            {
                "day": "Fri
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/hourly` — 24-hour UTC intraday profile

**Parameters:**
- `symbol` (query, required, string) — Binance pair Example: `BTCUSDT`
- `candles` (query, optional, string) — Hourly candles to scan (168-1000, default 1000) Example: `1000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptoseasonality-api/v1/hourly?symbol=BTCUSDT&candles=1000"
```

**Response:**
```json
{
    "data": {
        "note": "UTC hour-of-day profile from hourly candles. avg_return_pct/avg_range_pct are per-hour open-to-close move and high-low range; up_rate_pct is how often that hour closed green. Patterns are descriptive, not predictive.",
        "hours": [
            {
                "samples": 42,
                "hour_utc": 0,
                "avg_volume": 682.9217,
                "up_rate_pct": 57.1,
                "avg_range_pct": 0.5878,
                "avg_return_pct": -0.0315
            },
            {
                "samples": 42,
                "hour_utc": 1,
                "avg_volume": 700.1833,
                "up_rate_pct": 47.6,
                "avg_range_pct": 0.6443,
                "avg_return_pct": -0.0718
            },
            {
                "samples": 41,
                "hour_utc": 2,
                "avg_volume": 712.9592,
                "up_rate_pct": 48.8,
                "avg_range_pct": 0.6021,
                "avg_return_pct": -0.0057
            },
            {
                "samples": 41,
                "hour_utc": 3,
                "avg_volume": 663.966,
                "up_rate_pct": 61,
                "avg_range_pct": 0.5477,
                "avg_return_pct": 0.0094
            },
            {
                "samples": 41,
                "hour_utc": 4,
                "avg_volume": 562.4001,
                "up_rate_pct": 53.7,
                "avg_range_pct": 0.5225,
                "avg_return_pct": 0
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/symbols` — Tradable Binance pairs

**Parameters:**
- `quote` (query, optional, string) — Filter by quote asset Example: `USDT`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptoseasonality-api/v1/symbols?quote=USDT"
```

**Response:**
```json
{
    "data": {
        "count": 435,
        "quote": "USDT",
        "source": "Binance",
        "symbols": [
            "0GUSDT",
            "1000CATUSDT",
            "1000CHEEMSUSDT",
            "1000SATSUSDT",
            "1INCHUSDT",
            "1MBABYDOGEUSDT",
            "2ZUSDT",
            "AAVEUSDT",
            "ACEUSDT",
            "ACHUSDT",
            "ACMUSDT",
            "ACTUSDT",
            "ACXUSDT",
            "ADAUSDT",
            "ADXUSDT",
            "AEURUSDT",
            "AEVOUSDT",
            "AGLDUSDT",
            "AIGENSYNUSDT",
            "AIUSDT",
            "AIXBTUSDT",
            "ALCXUSDT",
            "ALGOUSDT",
            "ALICEUSDT",
            "ALLOUSDT",
            "ALPINEUSDT",
            "ALTUSDT",
            "AMPUSDT",
            "ANIMEUSDT",
            "ANKRUSDT",
            "APEUSDT",
            "API3USDT",
            "APTUSDT",
            "ARBUSDT",
            "ARDRUSDT",
            "ARKMUSDT",
            "ARKUSDT",
            "ARPAUSDT",
            "ARUSDT",
            "ASRUSDT",
            "ASTERUSDT",
            "ASTRUSDT",
            "ATMUSDT",
            "ATOMUSDT",
            "ATUSDT",
            "AUCTIONUSDT",
            "AUDIOUSDT",
            "AUSDT",
            "AVAUSDT",
            "AVAXUSDT",
            "AVNTUSDT",
            "AWEUSDT",
            "AXLUSDT",
            "AXSUSDT",
            "BABYUSDT",
            "BANANAS31USDT",
            "BANANAUSDT",
          
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Spec

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cryptoseasonality-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "symbol is a Binance pair (BTCUSDT) or coin=BTC&quote=USDT. hourly uses up to ~41 days of hourly candles (candles=1000); dayofweek up to a year of daily candles (days=365). All times UTC. Patterns are descriptive, not predictive. Read fresh per call; only the tradable-symbol list is cached hourly.",
        "source": "Binance public REST (api.binance.com/api/v3/klines, live)",
        "service": "cryptoseasonality-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/hourly": "24-hour UTC profile: avg return, volume, range and up-rate per hour (symbol=BTCUSDT).",
            "GET /v1/symbols": "Tradable Binance pairs, optionally filtered by quote (quote=USDT).",
            "GET /v1/dayofweek": "Seven-weekday profile from daily candles (symbol=BTCUSDT, days=365)."
        },
        "description": "Crypto intraday and day-of-week seasonality, computed live from Binance candles (no key, nothing stored). hourly buckets recent hourly candles by UTC hour of day and returns each hour's average return, volume, high-low range and up-rate, plus the most volatile and most bullish hours. dayofweek does the same across the seven weekdays from daily candles. symbols lists tradable pairs. The intraday/seasonality pattern cut for crypto — distinct from the raw OHLCV candle feed, the realised-volatility API and the FX-seasonality (calendar-month) API. It tells you WHEN a market tends to move.",
        "trading_symb
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/cryptoseasonality-api
OpenAPI spec: https://www.oanor.com/api/cryptoseasonality-api/openapi.json
