A database playground for students building their first apps. Just POST JSON to save and GET to retrieve — no setup, no login, no backend. Anonymous databases work instantly with safe defaults. Register for free to get persistent databases with full control over every setting.
Pick any name you want. Your own database will be created automatically
on that name with the first request. In this documentation we'll call it my_database.
POST a JSON document to create a database. The database is created automatically on first request!
const response = await fetch('https://tinkr.tech/sdb/my_database', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'John', age: 25 })
});
const data = await response.json();
console.log(data); // {"id": "...", "name": "John", "age": 25}
GET all documents from your database as a JSON array
async function getAll() {
const response = await fetch('https://tinkr.tech/sdb/my_database');
const documents = await response.json();
console.log(documents); // Array of all documents
}
PATCH a document by its ID to update it
const docId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(`https://tinkr.tech/sdb/my_database/${docId}`, {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'Jane', age: 26 })
});
const updated = await response.json();
DELETE a document by its ID
const docId = '550e8400-e29b-41d4-a716-446655440000';
await fetch(`https://tinkr.tech/sdb/my_database/${docId}`, {
method: 'DELETE'
});
Use the since
parameter to fetch only documents created after a specific ID
const lastId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(`https://tinkr.tech/sdb/my_database?since=${lastId}`);
const newDocuments = await response.json();
| Method | Endpoint | Description |
|---|---|---|
POST |
/sdb/:db_name |
Create a document (creates database on first request) |
GET |
/sdb/:db_name |
Get all documents |
GET |
/sdb/:db_name?since=:id |
Get documents created after the given ID |
PATCH |
/sdb/:db_name/:id |
Update a document by ID |
DELETE |
/sdb/:db_name/:id |
Delete a document by ID |
Registered users can create persistent databases with namespaces. Just add the namespace before the database name:
POST
/sdb/:namespace/:db_name
GET
/sdb/:namespace/:db_name
PATCH
/sdb/:namespace/:db_name/:id
DELETE
/sdb/:namespace/:db_name/:id
Every anonymous database starts with these defaults. Register for free to get persistent databases where you can change everything.
| Field | Type | Required |
|---|---|---|
| name | String | |
| score | Number | |
| active | Boolean |
Teachers: create a namespaced database and configure it for your class. Build a safe sandbox with API keys and schemas, raise limits for bigger projects, or turn off XSS protection when it's time to teach web security.
When a database operation is set to "private", include your API key as a Bearer token:
const response = await fetch('https://tinkr.tech/sdb/my_namespace/my_database', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({ name: 'John', age: 25 })
});
You can find your API key in the database settings page. Each database has its own key.
Practice building web apps without setting up a backend
Quickly test ideas and build proof-of-concepts
Perfect for classroom assignments and coding bootcamps
Add real database functionality to your demos
Get started fast without backend setup
Simple forms and surveys for small projects
Build multiplayer games with SDB as your backend. Pick a game, read the docs, and start coding your own frontend.
Shared pixel world — move and talk
easyHex-grid territory conquest game
mediumMore games on the way
More games on the way
More games on the way
More games on the way