krti.js reads. It needs no secret: a public key identifies the store,
and every answer is the same for every shopper.
Conventions
- JSON responses. Errors are
application/problem+json(RFC 9457) with a stablecode; thedetailtext is for humans and may change. - Money is a decimal string with the currency’s number of decimals (KWD has 3), next to a
currencyfield. Never a float. GET /public/promoallows any browser origin (Access-Control-Allow-Origin: *, no credentials) and is cacheable for 60 seconds.- Rate limits: 600 requests per minute per key and 60 per minute per client IP. Past them the
answer is
429 too_many_requestswith aRetry-Afterheader; wait that long before asking again. - Language:
?lang=ar|en, else theAccept-Languageheader, else English. Only the shopper facing strings follow it.