Skip to main content
GET
Get top pools.
This endpoint was removed and now returns 410 Gone. Use GET /pools/search instead. It searches pools across networks; pass a chains filter to scope it (for example chains=ethereum,base).

Migration

For a single network, use GET /networks/{network}/pools/search.

Response

Monthly credit allowance exhausted. Retrying will not help, because the body names the available next step per tier: register (anonymous), upgrade (free key), or buy a credit pack / enable overage / raise your spend cap (Pro). resets_at is when the allowance rolls over (calendar month or billing period, UTC). Deliberately carries no Retry-After header.

Structured body carried by every 402 and 429 emitted by the billing gate. The shape is constant across scenarios; only fields describing an available action appear. message is always a top-level string, so clients parsing the legacy {"message": ...} shape keep working.

error
enum<string>
required

Machine-readable discriminator matching the status code.

Available options:
payment_required,
rate_limited
tier
enum<string>
required

The billing tier the request was evaluated against.

Available options:
anonymous,
free_registered,
pro
message
string
required

Human-readable message naming the next action.

credits
object

Credit counters for the current period. One credit is one request. plan and packs are split out for Pro keys only. limit is plan + packs; usage served through overage can exceed it.

overage
object

Overage state, present on Pro 402 bodies. Money amounts are decimal strings, never floats.

resets_at
string<date-time>

When the monthly allowance rolls over (UTC). 402 only.

retry_after
integer

Seconds to wait before retrying. 429 only.

offer
object

Early-adopter offer, present on the free-tier 402 only.

Next-step URLs. Keys vary by scenario: register, upgrade, packs, portal, usage, docs. Absent until the customer-facing pages go live.