RejectRadar

Public API

Business and Enterprise accounts can read RejectRadar from their own systems. Every route is read-only and answers with the same JSON as the web app.

Keys

An owner or admin with a verified email creates keys under Settings, API keys. A key is shown once, when it is created, so store it then. An account holds at most 5 live keys, and a key can be revoked there at any time. A key opens only /v1/public, and a signed-in session does not open it.

Requests

Send the key as a bearer token:

curl -H "Authorization: Bearer rr_live_…" \
  "https://rejectradar-staging-api.umarnazaket.com/v1/public/notices?origin=PK&commodity=100"

Routes

All under https://rejectradar-staging-api.umarnazaket.com/v1/public. The OpenAPI document describes them for code generators and API tools; it needs no key.

RouteWhat it doesQuery parameters
GET /noticesSearch notices, newest first, within the account’s history window. The answer’s next field is the cursor of the next page.destination (US, EU, UK, AU; comma-separated), origin (ISO country code), commodity, hazard, hazardCategory, source (fda_refusal, import_alert, rasff, uk_bn, au_ifis), from and to (YYYY-MM-DD), q (3 to 100 characters of product text), cursor
GET /notices/:idOne notice.—
GET /dashboards/topicMonthly counts, top hazards and the latest notices for a topic.origin (required), commodity, destination
GET /firms/searchFind firms by name or FDA FEI number, best match first.name (2 to 200 characters) or fei, country, city
GET /firms/:idA firm’s profile with its records. It uses one firm lookup of the plan, as in the app.—
GET /import-alerts/:numberAn FDA Import Alert’s text and its approved summary, for example 99-08.locale (en, ur, hi, bn)
GET /mrlThe EU maximum residue level of one pesticide in one commodity, optionally compared with a lab result.commodity (required, a commodity id), residue (required, a residue id), lab (mg/kg)
GET /mrl/residuesFind pesticide residues by name, for the residue id GET /mrl takes.q (2 to 100 characters, required)
GET /taxonomyThe commodities, hazards, destinations and countries the other routes take, with their labels.locale (en, ur, hi, bn)
GET /usageThis month’s API calls and the plan’s limit. It does not use a call.—

Quota and rate limit

  • Every call except /usage uses one of the plan’s monthly API calls: 10,000 on Business. A call with a bad query still counts.
  • Each answer carries X-Quota-Used and X-Quota-Limit.
  • Each key may make 60 calls a minute; past that, calls answer 429 RATE_LIMITED with Retry-After in seconds.

Errors

An error answers with its HTTP status and a JSON body:

{
  "code": "PLAN_LIMIT_REACHED",
  "message": "…",
  "details": { "action": "api_calls" },
  "requestId": "…"
}
  • 401 API_KEY_MISSING: no key, or a malformed one. 401 API_KEY_INVALID: an unknown or revoked key.
  • 403 PLAN_UPGRADE_REQUIRED: the plan has no API access; keys stop working after a downgrade but are kept.
  • 403 PLAN_LIMIT_REACHED: the month’s calls are used up.
  • 400 BAD_REQUEST: a query parameter is not valid; details says which.
  • 404 NOT_FOUND: no such notice, firm or alert.
  • Quote the requestId when you write to us about an error.