Skip to content
javinfo

Rate limits & billing

What a call costs, how fast you can send it, and what happens when credit runs out.

Cost per call

You pay for answers, not attempts: only a 200 is charged. Errors, timeouts and empty searches are free.

EndpointPer 1,000 calls
/movie$0.80
/query$0.40
/idols$0.50
/random$0.20
/discover/*$0.40
/resolve/compare, /resolve/provenance, /resolve/streams$0.40
/resolve (card)$1.20
/resolve/batch$0.40 per started group of 10 unique codes
/analytics/*$0.60
GET /statsfree

/discover/* is Discover, /analytics/* Analytics, /resolve* Resolve. GET /stats is the public catalog counter (Stats), free and keyless. A /resolve/batch call takes up to 100 codes, billed one group per started 10 unique codes.

New accounts start with $0.02 of free credit, about 50 searches — enough to build something small.

Bigger pages cost more

/query, /idols and /random take a num from 1 to 50. Prices above buy 10 results; more scales with page size, rounded up:

cost = max(base price, base price × num ÷ 10)

So for /query, per 1,000 calls:

numPer 1,000 calls
1–10$0.40
20$0.80
50$2.00

Five calls at num=10 cost what one call at num=50 does. Page size is convenience, not a discount.

Same formula for /discover/* and /analytics/*, where several endpoints default to a num above 10 and cost more than the base rate:

EndpointDefault numPer 1,000 calls
/discover/similar12$0.48
/discover/trending20$0.80
/discover/underrated20$0.80
/discover/series20$0.80
/discover/for-you20$0.80
/discover/studios30 (20 with q)$1.20 ($0.80 with q)
/discover/tags30$1.20
/discover/genres60$2.40
/analytics/leaderboard20$1.20
/analytics/idols/costars15$0.90

Pass num=10 or less to pay the base price. Unlisted endpoints take no num (or default to 10 or less) and always cost the base rate.

/random now returns 10 results by default, down from 20. Pass num=20 to keep the old size; same results, twice the price.

Nothing found is not an error

A /query with no matches returns 200 with count: 0 and an empty results array, free. Check count, not the status code.

Preview delivery

Preview clips come from cdn.javinfo.dev, billed by data, not call: $0.30 per GB, charged once on first pull from the source. After that they live in our object storage and every later view is free, for everyone.

Quality follows your account: after one top-up you get the best version a title has; before, previews are standard.

Video URLs are tied to your account and never expire, so a link saved last year still plays. Anyone you hand it to streams on your balance: treat preview URLs like an API key.

How fast you can call

Limits are per account, shared across every key you own.

Account stateRequests per minute
Before first top-up10
After first top-up60

Over the cap you get 429 with Retry-After. It lifts on its own once your first payment settles — nothing to request.

Hourly limits on live providers

FANZA, DMM and providers served from our own catalog have no hourly cap. Providers fetched from the source at request time cost a real upstream request, so they share an hourly budget:

  • 6,000 results per hour, per account. Over it, /query returns 429 with Retry-After.
  • 3,000 calls per hour, per provider, across everyone. When one is busy we drop it and answer from the others; if you pinned it with providers=, there is no fallback and you get 503 with Retry-After.

Ordinary use doesn't come close: the account budget sits well above the busiest legitimate hour on record. It stops one runaway script from getting a source blocked for everyone.

One related guard: paging past page 50 with an empty q returns 422. Deep paging with no search text enumerates a catalog, not search. Add a q, or narrow the filter.

When credit runs out

The API returns 402 Payment Required and charges nothing. Retry-After is an hour — a hint for automated clients, not a lockout. Top up and the next call goes through.

Top up from your dashboard. Payments of $15 or more earn bonus credit; $50 or more earns the largest, up to 10%, rolled per payment.

Response headers

  • X-Response-Time-Ms — server time in milliseconds.
  • X-Balance-Remaining — credit left after the call.
  • X-Cache: HIT | MISS — cache hit or miss. Present on /movie, /query, /idols and cached discovery, analytics and resolve endpoints. A hit is free.
  • X-Degraded — number of failed index reads while assembling the answer; such answers are free and not cached.
  • Retry-After — seconds to wait on 429, 402 and 503. Respect it.

For the full status-code list, see Errors.

On this page