Build an API from your data.
Create the tables your app needs and an API comes with them, behind the same sign-in your app already uses.

The Billing Ops data model maps to generated REST API endpoints and an OpenAPI schema.
How it works
An API from your schema, scoped by default.
The API is off until you turn it on. Turn it on for a table and you get REST routes, MCP tools and an OpenAPI file. Each request checks who is signed in.

A REST endpoint for every entity
Define a table and it gets GET, POST, PATCH and DELETE routes.

A live OpenAPI schema, always in sync
Your app publishes an OpenAPI 3.0 file generated from the same schema as your API routes.

Scoped and secured by default.
Each request checks the signed-in user first and filters results to allowed data.
Routes for the tables you choose
Open a table and set its Generated API. Choose Off, Read, Read and write, or Full, for REST and for MCP. You can also set each action on its own, such as create over REST only, or delete not at all.

A REST endpoint for every entity
Define a table and it gets GET, POST, PATCH and DELETE routes.
REST for code, MCP for agents
The Interface tab shows what your app serves: every REST route, every MCP tool, and who can call each one. The footer counts them and tells you how many tools can delete. Your app also publishes an OpenAPI file at /openapi.json, and every deploy updates it.

A live OpenAPI schema, always in sync
Your app publishes an OpenAPI 3.0 file generated from the same schema as your API routes.
Scoped and secured by default.
Each request checks who is signed in before it touches data. For each table, set who can read, create, update and delete. The levels are Anyone (read only), Signed in, Viewer, Editor, Admin and Owner. You can also limit reads to each person’s own rows.

Scoped and secured by default.
Each request checks the signed-in user first and filters results to allowed data.
Where it fits
The API comes from your data.
You do not build the API separately. It comes from your data model, so when your schema changes the API changes with it.
Get an API without writing one
Define your data model and get a documented API, scoped to your users from the start.