Integrations

From API call to dataframe
in under 60 seconds.

SynthPipe returns clean JSON. Every tool that can read JSON or CSV can use it — no connectors, no setup, no schemas to define.

API reference
Python

Pandas & Python.

Three lines to get a fully populated DataFrame. No schema files, no CSV downloads.

Python — load into Pandas DataFrame
import requests, pandas as pd

API_KEY = "your_api_key"

response = requests.post(
    "https://synthpipe.replit.app/api/generate",
    headers={"X-API-Key": API_KEY},
    json={"query": "100 employee records with salaries"}
)

df = pd.DataFrame(response.json()["data"])
print(df.head())
print(df.describe())  # salary stats, age distribution, etc.
Python — save to CSV
df.to_csv("employees.csv", index=False)
# or save as JSON
df.to_json("employees.json", orient="records", indent=2)
Jupyter

Jupyter Notebooks.

Generate and explore data interactively. Useful for prototyping ML pipelines and data quality checks.

Jupyter — generate, explore, and plot in one cell
import requests, pandas as pd
import matplotlib.pyplot as plt

# Generate 500 medical records
data = requests.post(
    "https://synthpipe.replit.app/api/generate",
    headers={"X-API-Key": "your_api_key"},
    json={"query": "500 patient records", "size": 500}
).json()["data"]

df = pd.DataFrame(data)

# Age distribution plot
df["age"].plot(kind="hist", bins=20, title="Patient Age Distribution")
plt.show()
SQL

PostgreSQL & MySQL.

Load synthetic data directly into a relational database for integration testing or query benchmarking.

Python — insert into PostgreSQL with psycopg2
import requests, psycopg2, json

data = requests.post(
    "https://synthpipe.replit.app/api/generate",
    headers={"X-API-Key": "your_api_key"},
    json={"query": "200 financial transactions"}
).json()["data"]

conn = psycopg2.connect("postgresql://user:pass@localhost/mydb")
cur = conn.cursor()

for row in data:
    cur.execute(
        """INSERT INTO transactions (transaction_id, amount, merchant, date)
           VALUES (%(transaction_id)s, %(amount)s, %(merchant)s, %(date)s)""",
        row
    )

conn.commit()
print(f"Inserted {len(data)} rows")
SQLAlchemy (works with any dialect)
from sqlalchemy import create_engine
import pandas as pd, requests

df = pd.DataFrame(requests.post(
    "https://synthpipe.replit.app/api/generate",
    headers={"X-API-Key": "your_api_key"},
    json={"query": "500 customer records"}
).json()["data"])

engine = create_engine("postgresql+psycopg2://user:pass@localhost/mydb")
df.to_sql("customers", engine, if_exists="append", index=False)
print(f"{len(df)} rows loaded")
Data Warehouses

BigQuery, Snowflake & Redshift.

Load synthetic data into your warehouse for query performance testing, dashboard prototyping, or training data pipelines.

Google BigQuery

from google.cloud import bigquery
import pandas as pd, requests

df = pd.DataFrame(requests.post(
  "https://synthpipe.replit.app/api/generate",
  headers={"X-API-Key": "your_key"},
  json={"query": "1000 sales records"}
).json()["data"])

client = bigquery.Client()
client.load_table_from_dataframe(
  df,
  "project.dataset.sales"
).result()

Snowflake

import snowflake.connector
import pandas as pd, requests
from snowflake.connector.pandas_tools import write_pandas

df = pd.DataFrame(requests.post(
  "https://synthpipe.replit.app/api/generate",
  headers={"X-API-Key": "your_key"},
  json={"query": "1000 sales records"}
).json()["data"])

conn = snowflake.connector.connect(...)
write_pandas(conn, df, "SALES")

Amazon Redshift

import pandas as pd, requests
from sqlalchemy import create_engine

df = pd.DataFrame(requests.post(
  "https://synthpipe.replit.app/api/generate",
  headers={"X-API-Key": "your_key"},
  json={"query": "1000 sales records"}
).json()["data"])

engine = create_engine(
  "redshift+psycopg2://user:pass@host/db"
)
df.to_sql("sales", engine, index=False,
          if_exists="append")
R

R & tidyverse.

Load data directly into an R dataframe for statistical analysis or data science workflows.

R — load into dataframe with httr
library(httr)
library(jsonlite)

response <- POST(
  "https://synthpipe.replit.app/api/generate",
  add_headers("X-API-Key" = "your_api_key"),
  body = list(query = "200 medical records", size = 200),
  encode = "json"
)

df <- fromJSON(content(response, "text"))$data
summary(df)
head(df)
Templates

Ready-made queries for common tasks.

Copy any of these into your code and swap the API key. Each one returns data that's ready to use.

ML training data — classification

{"query": "5000 customer churn records with features",
 "size": 5000}

API integration testing

{"query": "100 e-commerce orders with line items",
 "size": 100}

Dashboard prototyping

{"query": "500 sales transactions with product and region",
 "size": 500}

GDPR-safe analytics testing

{"query": "1000 user sessions with demographics",
 "size": 1000}

Healthcare ML pipeline

{"query": "2000 patient records for diabetes prediction",
 "category": "medical", "size": 2000}

Load testing a payments API

{"query": "10000 payment transactions with fraud labels",
 "category": "finance", "size": 10000}
Get your API key

Free to start.

500 records/month on the free tier. No credit card. Works with every example on this page.

Full API reference Privacy & compliance