mxHeadless
REST API gateway for headless frontends on MODX 3. Resources, objects, OpenAPI, API keys, and OAuth

/api/v1 index.phpmxheadless_api_prefix matches the URLapi.php?route=/v1/healthservice_disabled mxheadless_enabled=false. Re-enable or keep only health for maintenance.
scope_deniedinvalid_tokenRate limit. Check X-RateLimit-*. Raise global or per-key limit. Verify trusted proxies (otherwise everyone behind LB shares one IP).
Unknown field/filter/sort, bad JSON, page+offset together, max_fields exceeded.
mxheadless_cors_enabled=true and the SPA origin is in mxheadless_cors_allowed_origins* with mxheadless_cors_allow_credentials=trueOPTIONS reaches MODX (rewrite, not blocked by WAF)data.cors in discovery (GET /api/v1)Details: CORS.
mxheadless_webhook_deliveriesSend X-CSRF-Token. Bearer API keys do not need CSRF.
Enable mxheadless_debug temporarily on staging only. For request history, see audit-log.