API endpoints

POST /generate

Generate synthetic data based on the provided schema.

Request body
Parameter Type Required Description
rows integer Required Number of rows to generate (1-100,000)
format string Optional Output format: json, csv, or sql. Default: json
table_name string Optional Table name for SQL format. Default: synthetic_data
fields array Required Array of field definitions (see below)
Field object
Property Type Required Description
name string Required Field name (column name)
type string Required Data type (see supported types)
constraints object Optional Type-specific constraints
Example request
{ "rows": 100, "format": "json", "fields": [ { "name": "id", "type": "integer", "constraints": {"min": 1, "max": 10000} }, { "name": "email", "type": "email" }, { "name": "created_at", "type": "date", "constraints": {"start": "2024-01-01", "end": "2024-12-31"} } ] }
Response
{ "success": true, "rows_generated": 100, "format": "json", "data": [ {"id": 4521, "email": "john@example.com", "created_at": "2024-03-15"}, ... ] }

POST /generate/preview

Same as /generate but capped at 10 rows and always returns JSON. Requires authentication.

POST /kaggle/search · /kaggle/schema · /kaggle/clone

Search public Kaggle datasets, learn their schema, or generate a synthetic clone in one call. All endpoints require API key authentication.

  • /kaggle/search — search datasets by keyword
  • /kaggle/schema — infer field types from a dataset sample (no real rows returned)
  • /kaggle/clone — learn schema and generate synthetic data in one step

Kaggle credentials are sent per-request. In the web UI, you can save them encrypted on your Profile.

GET /health

Check if the API is running and healthy. No authentication required.

Response
{ "status": "healthy", "version": "1.0.0" }

GET /field-types

Get all 35+ supported field types and their constraints. No authentication required.

Response
{ "field_types": [ {"type": "integer", "description": "Random integer within range", "supported_constraints": ["min", "max"]}, {"type": "csat_score", "description": "Customer satisfaction score", "supported_constraints": ["scale", "choices", "weights"]}, ... ] }