Dispatch
Clear quota responses when you hit a free-tier limit. If your key is over its monthly quota, or the free tier is over its daily ceiling for everyone, requests now return a 429 with a Retry-After header instead of a misleading error. This applies to both the HTTP and /mcp surfaces across Dispatch, SEO, and media-encoding.
- The
429response isproblem+jsonwithcode: free_tier_quota, areasonof eitheraccount_quotaorfleet_quota, and aresets_attimestamp.Retry-Aftercounts down to the reset from the current moment. - A quota block is distinct from a key problem: you'll get a
429when you're over quota, not a401. There's nothing to rotate and nothing to retry in the short term. resets_atis spelled and formatted the same way from every service.
Discovery surfaces document the new behavior. Each service's llms.txt and OpenAPI now describe the free-tier 429 so agents know a quota verdict from a key verdict. Media-encoding's 429 references a typed QuotaProblem schema (code, reason, resets_at), matching Dispatch and SEO.
AI SEO
Clear signal when you hit a free-tier quota. A key over its monthly free-tier quota, or any self-serve key while the fleet is over its daily ceiling, now gets a 429 with a Retry-After header instead of a confusing 401 or 503. Nothing to rotate, nothing to retry right away: the response tells you exactly when access resets.
- The
429isproblem+jsonwith a typed body:code(free_tier_quota),reason(account_quotaorfleet_quota), andresets_at.Retry-Aftercounts down to the reset from the current moment. - It applies across surfaces. On the SEO service every authenticated operation advertises it, on both HTTP and
/mcp. - Each service's
llms.txtand OpenAPI now document the free-tier429, so an agent can tell a quota verdict apart from a key verdict. Theresets_atfield is spelled the same way in every service.
A quota reset time that isn't a real calendar instant is rejected rather than silently shifted to a nearby date, so the reset you see is the reset you get.
Dispatch
Get your API key yourself. Every discovery surface now points to https://majr.app/keys, where you sign in with MAJR identity to get a key. No more emailing for access.
Find our MCP servers in the official registry. The SEO, Dispatch, and media-encoding servers are now listed in the MCP Registry. Each entry declares its remote streamable-http endpoint, its required Authorization header, and links to the quickstart so agents can discover and connect.
AI SEO
Get your own API key, no email required. Every discovery surface now points to https://majr.app/keys, where you can sign in with majr-identity and provision a key yourself. This replaces the old "email jamie@majr.app for a key" step across the SEO, dispatch, and media-encoding services and the platform catalog entry.
Find MAJR servers in the official MCP Registry. All three MCP servers (SEO, dispatch, media-encoding) are now listed in the official MCP Registry as remote streamable-http endpoints, each with its required Authorization header declared and a link to the quickstart. If you use Smithery or cursor.directory, the registry README covers the one-time setup steps.
Canonical host clarified for dispatch. The dispatch docs now name https://dispatch.majr.app as the canonical origin, matching what the live service already advertises. release-notes.majr.app remains a permanent alias.