ecenticecentic
How it worksResourcesPricingBlog
Install now
ASCII-art illustration of a balance scale

Live headers · Retry-After on 429 · Per-key windows

ecentic API rate limits.

Every public response carries the live state of your window, so an agent can pace itself instead of discovering the limit by being rejected.

Back to the docs
01

The policy

One fixed window on the public surface, counted per credential.

120 requests / 60s · policy "public"

Requests carrying a bearer key are counted against that key; everything else is counted against the client IP, so one noisy agent cannot spend a shared address's budget.

The window is fixed, not sliding: it resets on a wall-clock boundary, and the `reset` value in the headers is the number of seconds until that boundary.

02

Headers

Both spellings are sent. Read whichever your client already understands.

`RateLimit-Policy` is always present, because the policy is true whether or not a given request could be counted. The live counters are sent only when there is a real count behind them — an environment that cannot reach the counter omits them rather than claiming a budget nobody measured.

HeaderExampleMeaning
RateLimit-Policy"public";q=120;w=60The active policy: quota and window length in seconds.
RateLimit"public";r=118;t=42Live state: requests remaining and seconds until reset.
RateLimit-Limit120Requests allowed in the current window.
RateLimit-Remaining118Requests left in the current window.
RateLimit-Reset42Seconds until the window resets.
Retry-After42Sent only on a 429. Wait this many seconds, then retry.
03

When you exceed it

A 429 is a typed problem like any other failure.

The response is `application/problem+json` with code `rate-limited`, and carries `Retry-After` alongside the rate-limit headers. Back off for the number of seconds it names rather than retrying immediately — a retry inside the same window is counted and rejected again.

HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json; charset=utf-8
RateLimit-Policy: "public";q=120;w=60
Retry-After: 42

{ "code": "rate-limited", "status": 429, "detail": "Exceeded 120 requests per 60s on the \"public\" policy." }
DocsVersioning
Get picked by AI

Ready to be the product agents recommend?

Install free on Shopify or WooCommerce and see your AI score in minutes.

Install on ShopifyInstall on WooCommerce
ecentic

Win every AI shopping agent's cart.

Built for the agent economy
Product
  • Features
  • How it works
  • Pricing
  • Product Listings
Platforms
  • Shopify
  • WooCommerce
  • Enterprise
Resources
  • Developer docs
  • API reference
  • Resources
  • Blog
  • Compare
  • UCP Validator
  • UCP Playground
  • Book a demo
Company
  • Support
  • Privacy policy
  • Terms of service

© 2026 ecentic. All rights reserved.

Made for merchants who refuse to be invisible to AI.