BixelDocs

Fair use & rate limits

The published request limits, request costs, and caching behavior. These are the numbers the gateway actually enforces.

These are the limits the API enforces, published so you can build against them instead of discovering them. The same numbers live in the gateway configuration; when they change, this page changes in the same commit.

Keyless (open tier)

Current-state reads work with no key at all.

  • 60 requests per hour per IP. One identifier per call; bulk endpoints require a key.
  • Responses are cached at the edge (s-maxage=300, stale-while-revalidate=600) with weak ETags. Send If-None-Match and a 304 costs you nothing.
  • When the limit store is unreachable the open tier fails closed with 503 rate_limiter_unavailable and a Retry-After.

Keyed tiers

Credits are the unit. Every response reports its own cost in X-Bixel-Request-Cost and your remaining allowance in X-Bixel-Quota-Remaining.

TierCredits / monthBurst
Free1,00060
Pro10,000300
Scale50,000900

Request costs

  • Current-state reads: 1 credit.
  • History, diffs, and change queries: 3 credits.
  • POST /v1/resolve/batch is batch-weighted: roughly 1 credit per 100 identifiers, capped at 10 credits for a full 1,000-row call. A 1,000-row list is not one request.
  • Reading your own usage meter and managing watch subscriptions: 0 credits. Webhook delivery is always free.

When you hit a limit

Every 429 carries Retry-After (seconds) plus the standard RateLimit-* headers. Honor them and you will never be blocked for long. Exhausting monthly credits with burst to spare answers credits_exhausted; a funded prepaid balance is drawn automatically first.

Misses are demand

A resolve of a tracked-but-not-yet-covered domain answers honestly (a tracked envelope, zero facts) and records demand from keyed callers. Enough distinct demand promotes the company into coverage. Asking is how the corpus grows. Keyless misses are never used to trigger ingestion.

On this page