Every project with resource endpoints automatically exposes a read-only GraphQL API:
POST /api/gql/{project}
Authorization: Bearer <api_key>
{ posts(limit: 10, sort: "-created_at") { id title category { name } } }
How the schema is built
Each resource becomes a type (fields from your schema); each relationship with an embed_as becomes a nested field. Nested data is batch-loaded through the same engine as REST embeds: no N+1 queries.
Arguments
Every resource query accepts id, locale, limit, offset, page, search and sort (prefix a field with - for descending). locale behaves exactly like the REST gateway, fallback included.
Guard rails
Query depth and complexity are capped (configurable), standard validation stays on (unknown fields are GraphQL errors), and access requires a project API key: no anonymous introspection of your content model.
Docs
The panel generates a dedicated GraphQL reference per project (every query, its arguments, copy-paste examples and the full SDL), downloadable as Markdown for your team. Writes stay on REST (or the CMS/MCP); mutations are deliberately not exposed.
Try it on a real project
Reading is slower than building here. Spin up a workspace and see for yourself.
Get startedKeep reading
Your first backend in 10 minutes
Create a project, model a resource, grab an API key and make your first authenticated requ...
TutorialsLet Claude build your backend (MCP)
Connect Claude, Cursor or ChatGPT to your personal MCP URL and build a complete backend by...
TutorialsDynamic Next.js pages backed by APIForge
One catch-all route + one pages resource = your whole marketing site, editable in the CMS...