Complete integration guide for programmatically generating statistically accurate, privacy-compliant synthetic datasets.
Production Gateway Base URL
https://zentrexo.onrender.com
All paid requests require a valid API key passed in the request header:
headers = {"api-key": "zen-starter-your_api_key_here"}
/health
Ping health status of background model workers and database gateways.
{"status": "awake"}
/sample
Generate 100 synthetic rows instantly without an API key. Rate limited to 3 trial runs per IP address.
| Parameter | Type | Requirement | Description |
|---|---|---|---|
| file | Multipart File | Required | Source dataset (CSV, JSON, Excel). Max size: 5MB. Min rows: 50. |
| output_format | String | Optional | csv or json (default: csv) |
{
"status": "success",
"plan": "free",
"rows_generated": 100,
"columns": ["customer_id", "age", "salary", "churned"],
"data": [...],
"upgrade_message": "Upgrade to Starter ($149/mo) or Growth ($999/mo) at zentrexo.com"
}
/generate
Core production generation engine. Fits statistical models over input schemas and streams the synthetic data back.
| Header | Requirement | Description |
|---|---|---|
| api-key | Required | Active Zentrexo API key |
| Parameter | Type | Requirement | Description |
|---|---|---|---|
| file | Multipart File | Required | Input dataset. Max size: 10MB. Min rows: 50. |
| num_rows | Integer | Optional | Number of rows to generate (default: 1,000) |
import requests
url = "https://zentrexo.onrender.com/generate"
headers = {"api-key": "zen-starter-xxxx"}
files = {"file": open("data.csv", "rb")}
params = {"num_rows": 5000}
# Note: Set timeout higher than default due to ML training time
response = requests.post(url, headers=headers, files=files, params=params, timeout=60)
# Check custom response headers
print("Generated:", response.headers.get("X-Rows-Generated"))
print("Plan Used:", response.headers.get("X-Plan"))
with open("synthetic_output.csv", "wb") as f:
f.write(response.content)
/certificate
Evaluates Distance to Closest Record (DCR) and Singling-Out Risk. Returns an audit-ready Privacy PDF Certificate.
| Parameter | Type | Requirement | Description |
|---|---|---|---|
| file | Multipart File | Required | The source dataset used to generate the report. |
Returns a binary PDF stream (application/pdf) with cryptographic attestation hash.
/templates/{template_name}/generate
Generate synthetic data directly from pre-built enterprise schemas without uploading raw data.
| Template Path Name | Description | Required Tier |
|---|---|---|
hr | Employee records, compensation, attrition | Starter |
ecommerce | Customers, orders, fulfillment pipelines | Starter |
healthcare | Patient records, diagnoses, prescriptions | Growth |
finance | Credit card transactions, fraud patterns | Growth |
insurance | Policies, claims, risk assessment scores | Growth |
/usage
Retrieve active token consumption, remaining monthly quotas, and plan limits.
{
"plan": "starter",
"usage": {
"monthly_rows_used": 15000,
"monthly_rows_limit": 1000000,
"total_requests": 12,
"last_used": "2026-08-11T10:00:00Z"
}
}
| Plan Tier | Price | Max Rows / Request | Monthly Row Quota | Requests / Hour |
|---|---|---|---|---|
| Starter | $99 / mo | 10,000 | 1,000,000 | 10 |
| Growth | $499 / mo | 100,000 | 10,000,000 | 30 |
| Enterprise | Custom | 1,000,000+ | 50,000,000+ |
| Code | Meaning | Resolution |
|---|---|---|
| 400 | Bad Request | Verify CSV formatting. Ensure file is under 10MB and has at least 50 rows. |
| 401 | Unauthorized | Missing or invalid api-key header. |
| 403 | Forbidden | Requested num_rows exceeds your active plan's per-request limit. |
| 429 | Rate Limit Exceeded | Hourly or monthly capacity reached; upgrade tier in dashboard. |
| 500 | Internal Error | Model execution error or OOM crash; contact developer support. |
Direct engineering support: ops@zentrexo.com