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.

terminal
$ 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

MethodEndpointDescription
GET/Health check and API info
GET/field-typesList all supported field types and constraints
POST/generateGenerate synthetic data
POST/generate/previewPreview data generation (max 10 rows)
POST/kaggle/searchSearch Kaggle datasets
POST/kaggle/schemaLearn schema from a Kaggle dataset
POST/kaggle/cloneGenerate synthetic clone of a Kaggle dataset

View the full API reference →

Field types

integer float string name email phone company address city country date datetime boolean uuid url

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.

/field-types
{ "types": ["integer", "email", "uuid", ...], "count": 35 }