Realistic fake data. Live REST API. Yours instantly.
Create a table, pick your columns, get a URL you can call from any app - curl, Python, JavaScript, whatever. Relational data, error injection, custom value lists. Free forever.
or let your AI build it for you ↓
// suppliers → products → orders - three levels, two cables
"email" : "string, rule:email"
"salary": "number, rule:decimal,
range(1000-8000)"
"joined": "date, rule:from(2020-01-01)
:until(2025-12-31)"
"tier" : "string,
rule:enum(bronze|silver|gold)"
// customers table
"email": "string, rule:email,
bind:cust_email"
// messages table - same email
"email": "string, rule:email,
bind:cust_email"
// payments - 5% chance different
"email": "string, rule:email,
bind:cust_email, drift(0.05)"
// clean data
{ "error_rate": 0.0 }
// 10% bad rows
{ "error_rate": 0.1 }
// chaos mode
{ "error_rate": 1.0 }
// what gets injected:
// null · wrong_type · bad_format
// out_of_range · swapped columns
POST /users/marek/datasets
{
"name": "agents",
"values": ["Alice","Bob","Fero"]
}
// use in column:
"agent": "string,
rule:dataset(agents)"
// composed IDs:
{ "values": ["ACC-", 1, 999],
"composed": true }
→ ACC-1, ACC-2 ... ACC-999
POST /users/marek/tables
{
"table": "invoices",
"bounded": {
"ref_table": "customers",
"ref_key": "",
"rows": 3
}
}
// → 3 invoices × each customer
// customers_key auto-populated
// running balance per account type: sequence source: 50, step: 10 group_by: account_id // conditional status type: if if amount > 1000 → status = "high_value" else → status = "normal"
// permanent URL
GET /users/{id}/snapshot
/tables/orders?token=...
// SQL across all tables
POST /snapshot/query
{
"sql": "SELECT * FROM orders
JOIN customers
ON orders.customer_key
= customers.key"
}
// user generates smai_ token // AI agent gets token + user_id // AI calls: POST /tables → customers POST /tables → orders POST /table-links → wire FK POST /rule-nodes → compute // 5 min TTL · create-only // no read · no delete
Generate an smai_ token and give it to your AI. It can call the API directly - or generate curl commands you run yourself. Either way, your schema is ready in seconds.
Works with any AI that can write HTTP calls - ChatGPT, Claude, Cursor, n8n, LangChain. The token is create-only for row data - it can read schema structure to build on top of it, but cannot read, modify, or delete your generated data.
→ get your smai_ token// available from token tier (username only, no email) · 5 min TTL · 20 calls · no row data access · no deletes
Jump straight into the workspace - no signup, no username. Guest sessions are temporary. Sign up later to keep your data.
Hi, I'm Marek - an engineer who automates the boring parts. I work with production data daily. smart-mock is the tool I built because I needed it - and then decided to ship it.