API Documentation

Complete integration guide for programmatically generating statistically accurate, privacy-compliant synthetic datasets.

Production Gateway Base URL

https://zentrexo.onrender.com
⚡ Performance Note: Zentrexo fits complex Gaussian Copula models in real-time. Generation requests may take between 10 to 30 seconds. Ensure your HTTP client timeout settings are configured to at least 60 seconds.

Authentication

All paid requests require a valid API key passed in the request header:

headers = {"api-key": "zen-starter-your_api_key_here"}

API Endpoints

GET/health

Ping health status of background model workers and database gateways.

Response (200 OK)

{"status": "awake"}
POST/sample

Generate 100 synthetic rows instantly without an API key. Rate limited to 3 trial runs per IP address.

Parameters

ParameterTypeRequirementDescription
fileMultipart FileRequiredSource dataset (CSV, JSON, Excel). Max size: 5MB. Min rows: 50.
output_formatStringOptionalcsv or json (default: csv)

Response (200 OK)

{
  "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"
}
POST/generate

Core production generation engine. Fits statistical models over input schemas and streams the synthetic data back.

Headers

HeaderRequirementDescription
api-keyRequiredActive Zentrexo API key

Parameters

ParameterTypeRequirementDescription
fileMultipart FileRequiredInput dataset. Max size: 10MB. Min rows: 50.
num_rowsIntegerOptionalNumber of rows to generate (default: 1,000)

Code Example (Python)

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)
POST/certificate

Evaluates Distance to Closest Record (DCR) and Singling-Out Risk. Returns an audit-ready Privacy PDF Certificate.

Parameters

ParameterTypeRequirementDescription
fileMultipart FileRequiredThe source dataset used to generate the report.

Response

Returns a binary PDF stream (application/pdf) with cryptographic attestation hash.

POST/templates/{template_name}/generate

Generate synthetic data directly from pre-built enterprise schemas without uploading raw data.

Available Templates & Access Tiers

Template Path NameDescriptionRequired Tier
hrEmployee records, compensation, attritionStarter
ecommerceCustomers, orders, fulfillment pipelinesStarter
healthcarePatient records, diagnoses, prescriptionsGrowth
financeCredit card transactions, fraud patternsGrowth
insurancePolicies, claims, risk assessment scoresGrowth
GET/usage

Retrieve active token consumption, remaining monthly quotas, and plan limits.

Response (200 OK)

{
  "plan": "starter",
  "usage": {
    "monthly_rows_used": 15000,
    "monthly_rows_limit": 1000000,
    "total_requests": 12,
    "last_used": "2026-08-11T10:00:00Z"
  }
}

Plans & Capacity Matrix

Plan TierPriceMax Rows / RequestMonthly Row QuotaRequests / Hour
Starter$99 / mo10,0001,000,00010
Growth$499 / mo100,00010,000,00030
EnterpriseCustom1,000,000+50,000,000+

Error & Status Codes

CodeMeaningResolution
400Bad RequestVerify CSV formatting. Ensure file is under 10MB and has at least 50 rows.
401UnauthorizedMissing or invalid api-key header.
403ForbiddenRequested num_rows exceeds your active plan's per-request limit.
429Rate Limit ExceededHourly or monthly capacity reached; upgrade tier in dashboard.
500Internal ErrorModel execution error or OOM crash; contact developer support.

Developer Support

Direct engineering support: ops@zentrexo.com