Skip to main content

TL;DR

These are anti-abuse caps, not usage tiers. We do not bill per call. Revenue is split on-chain via your BarkerEngine contract. Need a higher cap for a legitimate workload? Email partners@barker.money with your use case.

Behavior on overflow

When you exceed the per-minute cap, the next request returns:
The Retry-After header is the number of seconds until the window resets. Wait that long, then resume.

Backoff with jitter

Don’t retry the same second the window resets — every client doing that creates a thundering herd. Add 0–2 seconds of random jitter on top of Retry-After:
The official SDKs (@barker/sdk-js, barker-sdk) implement this automatically.

Cache aggressively

Most Partner API responses are cacheable for 30–60 seconds without stale data concerns: A 60s edge cache reduces realistic dashboard refreshing from ~50 req/min to ~1 req/min per concurrent user.

Things that do not count against your limit

  • Webhook deliveries we send to your endpoint (those flow Barker → you, no API call from you)
  • Embed iframe requests from end-user browsers (they hit app.barker.money, not the API)
  • Hits to https://api.barker.money/health (unauthenticated liveness probe)

What if I get rate-limited and I’m not abusing?

Open https://portal.barker.money/usage to see your call distribution by endpoint and timestamp. If a single client process is hammering one endpoint, that’s almost always the source. Common causes:
  • Polling a single product every second instead of subscribing to webhooks for apy_change / tvl_alert
  • Forgetting to cache GET /products at the edge
  • Looping over thousands of users to call /position per user — instead, ask us about the bulk-position endpoint (waitlist)
Still stuck? Email partners@barker.money with the API key prefix and a 5-minute window — we can pull our access logs and pinpoint it.