Priority Fee Slots
Free
GET /priority-fees/slots
Completed auction results, participant time shares, daily spending by IP, and monthly totals for each reported read priority slot.
Rate limits
| Free | Dev | Pro | Team |
|---|---|---|---|
| 30/min | 60/min | 120/min | 120/min |
All priority-fee endpoints, for every range, use the live request quota. This quota is shared with other live endpoints and across all API keys on your account.
On a 429 response, wait for the Retry-After period before retrying. See Rate limits.
Response fields
| Field | Meaning |
|---|---|
| range, start_time, end_time | Selected range and its UTC bounds. |
| slots[].slot_id | Read priority slot identifier. |
| slots[].latest_round | Most recent completed auction, or null. Includes its bidding window, winner IP/wallet, and closing price. |
| slots[].history | Up to 50 completed auctions, newest first, with the same fields as latest_round. |
| slots[].price_timeseries | Closing prices by IP at metadata.price_interval granularity. Hourly and daily points are average closing prices for that IP within the bucket; round_count is the number of auctions represented. |
| slots[].daily_spend | Daily payment amounts by IP. series declares the keys used by each data point: values is HYPE, and usdc_values is historical USDC. May include an Other series. |
| slots[].monthly | Monthly rows by IP with wins, auction_rounds, auction_win_share_pct, share_pct, fees, payment_count, and average closing prices. Months follow the selected range. |
| slots[].time_share | observed_seconds is recorded priority time, including empty intervals. rows contains participant key, wallet, ip, seconds held, and share_pct. |
| slots[].winner_timeline | Priority holding intervals for the most recent 24 hours, independently of the selected range. Each row identifies the winner and the closing price that secured that interval. |
| slots[].winner_timeline_start, slots[].winner_timeline_end | UTC bounds for winner_timeline. |
| metadata | price_interval is round for 4h/1d, hour for 7d, and day for 30d/all. coverage_end_time and generated_at are UTC timestamps. |
Reading the response
- Amounts ending in _hype are paid in HYPE. Amounts ending in _usdc are historical USDC value estimates, not additional USDC payments.
- Timestamps are UTC. Use metadata.coverage_end_time for the end of the reported data and metadata.generated_at for the time the analytics result was generated.
- Null means no reported value. It is distinct from a genuine zero.
- Auction results in latest_round and history describe the bidding window. The resulting winner holds priority in the following interval, shown in winner_timeline and Winners.
- A time_share row is seconds / observed_seconds × 100. Empty recorded intervals count in observed_seconds and have no participant row, so participant shares can sum to less than 100%. A wallet can combine time across multiple IP addresses; ip may then be null.
- In monthly rows, auction_win_share_pct includes empty auctions in its denominator. The separate share_pct is the share of filled auctions won in the same slot and month.
- The _usd price/fee fields and usd_values are compatibility aliases for the corresponding _usdc fields and usdc_values. Use the _usdc names for new integrations.
- Use range=all to retrieve all available monthly totals. For exact per-auction prices across longer ranges, use Winners. Result arrays in the example are shortened for readability.
Authentication
Requires a valid API key in the X-Api-Key header. Available on all plans.
Parameters
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
range | string | – | 4h, 1d, 7d, 30d, or all. Defaults to all. All available history begins on 10 April 2026. |
Example request
bash
curl -H "X-Api-Key: lk_live_your_key_here" \
"https://api.loris.tools/priority-fees/slots?range=4h"Example response
json
{
"range": "4h",
"start_time": "2026-11-01T00:00:00Z",
"end_time": "2026-11-01T04:00:00Z",
"slots": [
{
"slot_id": 0,
"latest_round": {
"window_start": "2026-11-01T00:03:00Z",
"window_end": "2026-11-01T00:06:00Z",
"winner_ip": null,
"winner_wallet": null,
"closing_price_hype": null,
"closing_price_usdc": null,
"closing_price_usd": null
},
"history": [
{
"window_start": "2026-11-01T00:03:00Z",
"window_end": "2026-11-01T00:06:00Z",
"winner_ip": null,
"winner_wallet": null,
"closing_price_hype": null,
"closing_price_usdc": null,
"closing_price_usd": null
},
{
"window_start": "2026-11-01T00:00:00Z",
"window_end": "2026-11-01T00:03:00Z",
"winner_ip": null,
"winner_wallet": null,
"closing_price_hype": null,
"closing_price_usdc": null,
"closing_price_usd": null
},
{
"window_start": "2026-10-31T23:57:00Z",
"window_end": "2026-11-01T00:00:00Z",
"winner_ip": "192.0.2.1",
"winner_wallet": "0x0000000000000000000000000000000000000001",
"closing_price_hype": 1.25,
"closing_price_usdc": 50,
"closing_price_usd": 50
}
],
"price_timeseries": [
{
"time": "2026-11-01T00:00:00Z",
"ip": "192.0.2.1",
"closing_price_hype": 1.25,
"closing_price_usdc": 50,
"closing_price_usd": 50,
"round_count": 1
}
],
"daily_spend": {
"series": [
{
"key": "192.0.2.1",
"ip": "192.0.2.1",
"wallet": null
}
],
"data": [
{
"time": "2026-11-01T00:00:00Z",
"values": {
"192.0.2.1": 1.25
},
"usdc_values": {
"192.0.2.1": 50
},
"usd_values": {
"192.0.2.1": 50
}
}
]
},
"monthly": [
{
"month": "2026-11",
"ip": "192.0.2.1",
"wallet": null,
"wins": 1,
"auction_rounds": 3,
"auction_win_share_pct": 33.33333333333333,
"share_pct": 100,
"fees_hype": 1.25,
"fees_usdc": 50,
"fees_usd": 50,
"payment_count": 1,
"avg_closing_price_hype": 1.25,
"avg_closing_price_usdc": 50,
"avg_closing_price_usd": 50
}
],
"time_share": {
"observed_seconds": 360,
"rows": [
{
"key": "0x0000000000000000000000000000000000000001",
"wallet": "0x0000000000000000000000000000000000000001",
"ip": "192.0.2.1",
"seconds": 180,
"share_pct": 50
}
]
},
"winner_timeline": [
{
"window_start": "2026-11-01T00:00:00Z",
"window_end": "2026-11-01T00:03:00Z",
"winner_ip": "192.0.2.1",
"winner_wallet": "0x0000000000000000000000000000000000000001",
"closing_price_hype": 1.25,
"closing_price_usdc": 50,
"closing_price_usd": 50
},
{
"window_start": "2026-11-01T00:03:00Z",
"window_end": "2026-11-01T00:06:00Z",
"winner_ip": null,
"winner_wallet": null,
"closing_price_hype": null,
"closing_price_usdc": null,
"closing_price_usd": null
}
],
"winner_timeline_start": "2026-10-31T04:00:00Z",
"winner_timeline_end": "2026-11-01T04:00:00Z"
}
],
"metadata": {
"price_interval": "round",
"coverage_end_time": "2026-11-01T04:00:00Z",
"generated_at": "2026-11-01T04:05:00Z"
}
}Errors
400— Invalid range.405— Use GET for this endpoint.429— Live request quota exceeded. Wait for the Retry-After period before retrying.503— Priority fee data is temporarily unavailable. Try again shortly.
For authentication errors (401) and rate limit responses (429), see Errors.