Generate data from any language
A plain RESTful API — JSON in, JSON/CSV/SQL out. No SDK required. Run the FastAPI server locally, or ship the web app to Railway or Vercel from this repo.
$ curl -X POST http://localhost:8000/generate \
-H "Content-Type: application/json" \
-d '{
"rows": 5,
"format": "json",
"fields": [
{"name": "id", "type": "integer"},
{"name": "email", "type": "email"},
{"name": "name", "type": "name"}
]
}'
RESTful
Plain HTTP endpoints with JSON request/response bodies. Works from any language that can make an HTTP call.
Self-hosted
Run the API yourself with uvicorn api.app:app. Configure auth and limits on your instance — nothing is exposed as a public SaaS API.
Three export formats
Every endpoint that returns rows can format them as JSON, CSV, or SQL INSERT statements.
Quick start
1. Send a request:
$ curl -X POST http://localhost:8000/generate \
-H "Content-Type: application/json" \
-d '{
"rows": 10,
"format": "json",
"fields": [
{"name": "id", "type": "integer", "constraints": {"min": 1, "max": 1000}},
{"name": "email", "type": "email"},
{"name": "name", "type": "name"},
{"name": "created_at", "type": "date"}
]
}'
import requests
response = requests.post(
"http://localhost:8000/generate",
json={
"rows": 10,
"format": "json",
"fields": [
{"name": "id", "type": "integer"},
{"name": "email", "type": "email"},
{"name": "name", "type": "name"}
]
}
)
print(response.json())
const response = await fetch('http://localhost:8000/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
rows: 10,
format: 'json',
fields: [
{ name: 'id', type: 'integer' },
{ name: 'email', type: 'email' }
]
})
});
const data = await response.json();
2. Get your response:
{
"success": true,
"rows_generated": 10,
"data": [
{ "id": 847, "email": "sarah.johnson@example.com", "name": "Sarah Johnson" },
// ... 9 more rows
]
}
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | / | Health check and API info |
| GET | /field-types | List all supported field types and constraints |
| POST | /generate | Generate synthetic data |
| POST | /generate/preview | Preview data generation (max 10 rows) |
| POST | /kaggle/search | Search Kaggle datasets |
| POST | /kaggle/schema | Learn schema from a Kaggle dataset |
| POST | /kaggle/clone | Generate synthetic clone of a Kaggle dataset |
Field types
Try it in the browser
The API ships with a Swagger UI and ReDoc, generated straight from the OpenAPI spec — no separate account or setup needed to explore it.
{
"types": ["integer", "email", "uuid", ...],
"count": 35
}