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"]},
...
]
}