SELECT * FROM your_database
Your SQLite database, as a REST API.
Create databases and tables in your browser, generate an API key, and read or write JSON from React, PHP, or anything that speaks HTTP. No backend to write.
No ORM to learn. No boilerplate CRUD. Make a table, get a route.
Three steps from table to endpoint
- 1
Create a database
One private SQLite file per database. Name it, and it is ready in a second.
- 2
Define your tables
Pick columns and types in the dashboard, or create them over the API. Every table gets
idandcreated_at. - 3
Call it from anywhere
Generate a key — read-only or read & write, for one database or all — and fetch JSON from any language.
Works with what you already write
const res = await fetch("https://ndsql.top/api/shop/products?price[gt]=10", {
headers: { "X-API-Key": import.meta.env.VITE_NDSQL_KEY },
});
const { data } = await res.json(); // typed rows, ready for your components$res = Http::withHeaders(['X-API-Key' => env('NDSQL_KEY')])
->post('https://ndsql.top/api/shop/products', ['name' => 'Keyboard', 'price' => 49.5]);
$id = $res->json('data.id');curl -X PATCH "https://ndsql.top/api/shop/products/7" \
-H "X-API-Key: $NDSQL_KEY" -H "Content-Type: application/json" \
-d '{"price": 44}'- Scoped keysRead-only or read & write, limited to one database if you want. Stored hashed.
- Filters built in
?price[gt]=10&order=-id&limit=20— no query code needed. - Safe by designTyped columns, prepared statements, per-key rate limits and size caps.
- CORS readyCall it straight from the browser; preflight is handled for you.
Bring your data, get an endpoint today
Free to start. Create an account, make a database, and your first request is a minute away.