AppsSynthetic Data

Autessa Synthetic Data · AI synthetic data generator

Describe the data. Get the rows.

Autessa Synthetic Data is an AI synthetic data generator: describe the data you need in plain English and get realistic, validated, de-duplicated rows in a database table or a JSONL or CSV file, with an optional review step before anything is written.

Seed a table for a demo, generate test data for QA, or build LLM training data in JSONL, without writing a generator or touching real customer records. It works out of the box, and you shape it to your data in Autessa.

Start free
New dataset · Describe the dataSAMPLE

Description

Customers of a project-management SaaS: company names, a plan of Starter, Team or Business, seat counts from 1 to 200, a sales region, and a short signup note in the customer's own words.

companyShort TextplanSingle SelectseatsIntegerregionSingle Selectsignup_noteLong Text
Demo customersAwaiting reviewSAMPLE
#companyplanseatsregionsignup_note
1Harbor & Pine StudioTeam14EMEAMoved off spreadsheets after a missed launch…
2Brightline DentalStarter3NAFront desk wants reminders for recalls…
3Quillstone LogisticsBusiness86APACEvaluating for 4 depots, needs SSO…
4Maple Row BakeryStarter2NAOwner signed up from a podcast ad…
5Northwind ClinicsBusiness41NAPilot in two locations first…
Batch 1 · 50 rows · 1 excludedDiscard✓ Approve & write
Plain English
in, realistic rows out
Seconds
to see rows with quick generate
Review first
nothing lands until you approve
Table or file
seed a table or export JSONL and CSV

In one paragraph

What is Autessa Synthetic Data?

Autessa Synthetic Data is a synthetic data generator that works from plain English. You describe the data, Autessa proposes typed columns, and an AI model generates the rows in batches. Every row is validated against your columns, repaired or dropped if it does not fit, and checked for near-duplicates across the whole job. The rows land in an existing database table, a new table the job creates, or a downloadable JSONL or CSV file, and in review-first mode nothing is written until a person approves.

Good for

  • Test data generation for QA and staging environments
  • Database seeding for demos and prototypes
  • Synthetic training data for LLMs: prompt and response pairs
  • Mock data for apps, dashboards and agents
  • Fixture files in JSONL or CSV for test suites and pipelines

What makes it different

A synthetic data generator with a review step and a memory

Most fake data tools generate and forget. Autessa proposes the schema, keeps a running memory of what it has made, and lets a person check every batch before it lands.

Describe and design

From a sentence to a schema

Write what the data is and press Propose schema. Autessa suggests a table name and typed columns, each with a description, which you can edit before you generate. Add a few sample rows and every batch follows their voice.
  • Seven generatable types, with allowed values for selects
  • Dates proposed as ISO-8601 text, never a legacy type
  • Few-shot sample rows steer style and format
AI schema proposal →
New dataset · 3. SchemaSAMPLE
✦ Propose schema from descriptionSuggested table nameclinic_appointments
patient_first_nameShort TextRequired

Common first names, varied by region.

visit_typeSingle SelectRequired

Options: Checkup, Cleaning, Filling, Consult

appointment_atShort Text

UTC ISO-8601 date and time within the next 60 days.

duration_minutesInteger

Mostly 30 or 45, sometimes 60 or 90.

insuredBoolean

Roughly four in five patients are insured.

front_desk_noteLong Text

Short, informal notes, sometimes empty.

Review before write

Nothing lands until you approve

Choose Review first and the job stages every row. Page through batches, open any row, exclude the misses, regenerate a batch or append more. Then approve and write, or discard everything.
  • Typed preview grid, batch by batch
  • Exclude rows and regenerate batches
  • Approve & write or discard in one click
Review-first mode →
Demo customers · Review staged rows↻ Regenerate batchSAMPLE

Preview generated rows, exclude any that don't fit, then approve to write.

#companyplanseatsregion
1Harbor & Pine StudioTeam14EMEA
2Brightline DentalStarter3NA
3Quillstone LogisticsBusiness86APAC
4Maple Row BakeryStarter2NA
5Northwind ClinicsBusiness41NA
Batch 2 · 48 rows · 1 excludedPrevious batchNext batch
Append more rows…Discard✓ Approve & write

Quality and variety

5,000 rows that do not repeat themselves

Each row gets an identity signature that ignores case and spacing. Duplicates across the whole job are dropped, and a ledger of what has already been made is fed back into every new batch and append.
  • Near-duplicate removal across the job
  • Variety ledger shared by parallel batches
  • Appends start from the same ledger
De-duplication and the variety ledger →
Variety ledger · this jobSAMPLE

Already made (signatures)

harbor & pine studio · teambrightline dental · starterquillstone logistics · businessmaple row bakery · starter… 196 more

New batch

Copperleaf FloristsnewBrightline Dentalnear-duplicateOsprey TutoringnewHARBOR & PINE STUDIOnear-duplicateJuniper Vet Carenew

Signatures ignore case and spacing, so “Brightline Dental” and “brightline dental” count as the same row.

Where data lands

Straight into the table you are building on

Seed an existing table, or create a new one and fill it in the same job. Rows fit the table's ranges and allowed values, are written with your own permissions, and do not set off the table's triggers.
  • Existing table, new table or JSONL/CSV file
  • Media columns flagged and left empty
  • Rows written with your table permissions
Seed an existing table →
New dataset · Existing tableSAMPLE

Table

inventory_items ▾

Schema · 6 columns

skuShort TextnameShort TextcategorySingle Selectunit_priceDecimalin_stockBooleanproduct_photoImagenot generatable

Generate 500 rows into inventory_items, staged for review.

Jobs at scale

Jobs that finish, even when a worker does not

Large jobs run in parallel batches. If a job stops making progress, Autessa resumes it on its own, keeps every finished batch and redoes only the interrupted one. If it has to stop short, it says exactly why.
  • Parallel workers with live progress
  • Automatic resume, finished batches kept
  • Plain-language shortfall reasons
Automatic resume →
Seed: inventory itemsResuming…SAMPLE
Resuming… This job stopped making progress, so it is being picked up again where it left off. Rows already made are kept.
Seed: inventory itemsCompletedSAMPLE

Wrote 1,200 rows into the target table.

A worker stopped responding during this job, so it was resumed once; finished batches were kept each time.

LLM training data

Training pairs in one click

The training pairs preset sets up system, prompt and response columns. Describe the assistant and its hard cases, review the pairs, and export a JSONL file for fine-tuning or testing.
  • System, prompt and response columns
  • JSONL or CSV export
  • Up to 5,000 pairs per job
LLM training data →
support-training-set.jsonlCompletedSAMPLE
systemLong TextpromptLong TextReqresponseLong TextReq
{"system":"You are a billing assistant for a gym.","prompt":"Why was I charged twice?","response":"I'm sorry about that. One charge is a temporary hold..."}
{"system":"You are a billing assistant for a gym.","prompt":"Can I pause my plan?","response":"Yes. You can pause for up to three months..."}
{"system":"You are a billing assistant for a gym.","prompt":"cancel now pls","response":"I can help with that. Before I do..."}
Generated 2,000 rows as a JSONL dataset.⇩ Export dataset

How it works

How does Autessa generate synthetic data?

Five steps, the same whether you click through the app or run the CLI.

  1. 01

    Describe

    A sentence about the data, plus optional sample rows.

  2. 02

    Design

    AI proposes typed columns; edit them in the schema editor.

  3. 03

    Generate

    Batches run in parallel; every row validated and de-duplicated.

  4. 04

    Review

    Preview, exclude, regenerate or append before anything is written.

  5. 05

    Land

    Approve into a table, or export a JSONL or CSV file.

Product tour

A tour of Synthetic Data

From the jobs list to a finished file, here is what you can do at each step.

Synthetic Data⚡ Quick generate+ New datasetSAMPLE
NameTargetStatusRowsCreated
Support training setFile · JSONLGenerating1,850 / 3,000just now
Demo customersExisting tableAwaiting review500 / 50012 min ago
Seed: inventory itemsNew tableCompleted1,200 / 1,2002 hrs ago
Edge-case invoicesFile · CSVPartially completed940 / 1,0001 day ago
Old pilot dataExisting tableDiscarded0 / 2503 days ago

Synthetic Data home →

Every company job, newest first, with its target, a live status and rows generated against rows requested. Quick generate and New dataset sit top right.

New dataset · 1. TargetSAMPLE

Where should the generated rows go?

Existing tableGenerate rows straight into a table you already have.
New tableDesign a fresh schema and create the table as part of the job.
Dataset fileProduce a downloadable JSONL or CSV dataset, for example training data.
File formatJSONLCSV✦ Training pairs preset

New dataset: target →

Choose an existing table, a new table, or a dataset file in JSONL or CSV, with the training pairs preset one click away.

New dataset · Existing tableSAMPLE

Table

inventory_items ▾

Schema · 6 columns

skuShort TextnameShort TextcategorySingle Selectunit_priceDecimalin_stockBooleanproduct_photoImagenot generatable

Generate 500 rows into inventory_items, staged for review.

New dataset: existing table →

Pick any table you can access and see its schema, with media columns flagged as not generatable.

New dataset · 3. SchemaSAMPLE
✦ Propose schema from descriptionSuggested table nameclinic_appointments
patient_first_nameShort TextRequired

Common first names, varied by region.

visit_typeSingle SelectRequired

Options: Checkup, Cleaning, Filling, Consult

appointment_atShort Text

UTC ISO-8601 date and time within the next 60 days.

duration_minutesInteger

Mostly 30 or 45, sometimes 60 or 90.

insuredBoolean

Roughly four in five patients are insured.

front_desk_noteLong Text

Short, informal notes, sometimes empty.

New dataset: schema →

Propose a schema from the description, then refine it column by column.

Add columnSAMPLE

Column name *

ticket_priority

Type *

Single Select ▾
Short TextLong TextIntegerDecimalBooleanSingle SelectMulti Select

Description

Most tickets are Normal; about one in ten is Urgent.

Allowed values *

Low ×Normal ×High ×Urgent ×
☑ Required (never null)CancelAdd column

Add column →

Name, type, description, allowed values and a required flag, with name checks as you type.

Quick generateNew datasetSAMPLE

Up to 50 rows, back in seconds. Nothing is stored.

Support tickets for a meal-kit delivery company, with realistic complaints
10 rowsChecked against the columns and de-duplicated; 1 invalid or duplicate row was dropped.⇩ CSV⇩ JSONL
subjectchannelurgency
Box arrived warm, ice packs meltedEmailHigh
Wrong recipe card in my kitChatNormal
How do I skip next week?ChatLow
Charged after I cancelledPhoneHigh

Quick generate →

Up to 50 rows on screen in seconds, nothing stored, download as CSV or JSONL.

Support training setGeneratingSAMPLE
Generating…99 / 300 rows

3 workers generating in parallel · last progress just now

Batch 1WRITTEN50 rows
Batch 2WRITTEN49 rows · 1 rejected
Batch 3GENERATING0 rows
Batch 4GENERATING0 rows
Batch 5GENERATING0 rows
Batch 6PENDING0 rows

Dataset page: generating →

A progress bar, active workers, the time of the last progress, and every batch with its status and rejected count.

Demo customers · Review staged rows↻ Regenerate batchSAMPLE

Preview generated rows, exclude any that don't fit, then approve to write.

#companyplanseatsregion
1Harbor & Pine StudioTeam14EMEA
2Brightline DentalStarter3NA
3Quillstone LogisticsBusiness86APAC
4Maple Row BakeryStarter2NA
5Northwind ClinicsBusiness41NA
Batch 2 · 48 rows · 1 excludedPrevious batchNext batch
Append more rows…Discard✓ Approve & write

Dataset page: review →

Staged rows in a typed grid, batch by batch, with Regenerate batch, Append more rows, Discard and Approve & write.

Row 2SAMPLE
companySHORT_TEXTBrightline Dental
planSINGLE_SELECTStarter
seatsINTEGER3
regionSINGLE_SELECTNA
signup_noteLONG_TEXTFront desk wants reminders for recalls, but the owner is not sure yet.
CloseExclude row

Row detail →

Every value of one row, with its column type, and an Exclude row button.

Append more rowsSAMPLE

Additional rows

250
CancelGenerate 250 more
Demo customersGeneratingSAMPLE
Generating…540 / 750 rows

New rows reuse the schema and skip identities the job already made.

Append more rows →

Add rows to a job; the new ones reuse its schema and skip what it already made.

edge-case-invoices.csvSAMPLE
invoice_no,customer,amount,currency,status
INV-20418,Fenwick Supply,1290.50,USD,Paid
INV-20419,"Ortega, Lane & Co",0.00,USD,Void
INV-20420,Kestrel Labs,-45.00,EUR,Credit
INV-20421,Blue Fern Cafe,18990.00,USD,Overdue
CompletedFile · CSVSAMPLE

Generated 1,000 rows as a CSV dataset.

⇩ Export dataset

Opens a temporary download link to the assembled file.

Finished: file or table →

Export the dataset file through a temporary link, or open the filled table.

Job statusesSAMPLE

Working (the page keeps polling)

PendingGeneratingAwaiting reviewWriting

Final

CompletedPartially completedFailedCancelledDiscarded
Requested 1,000 but generated 940. Why it stopped short:
  • Two batches in a row produced no valid rows.

Statuses and shortfalls →

Nine plain statuses, and a list of reasons whenever a job finishes with fewer rows than requested.

Everything in Synthetic Data

Every topic and feature

Design, generate, review and ship synthetic data, with a page for every capability.

For developers

A synthetic data CLI and API

Every action in the app is an autessa synthetic-data command, and code with an API key can generate rows and run dataset file jobs over REST.

autessa synthetic-dataEXAMPLE
# 1. Draft columns from a description (creates nothing)
autessa synthetic-data propose-schema \
  --description "Customers of a project-management SaaS, with realistic signup notes"

# 2. Start a job: a JSONL dataset file by default, staged for review here
autessa synthetic-data create \
  --name "Demo customers" \
  --description "Customers of a project-management SaaS, with realistic signup notes" \
  --rowCount 500 \
  --writeMode REVIEW \
  --columnDefinitions '[{"columnName":"company","columnType":"SHORT_TEXT","required":true},
    {"columnName":"plan","columnType":"SINGLE_SELECT","allowedValues":["Starter","Team","Business"]},
    {"columnName":"signup_note","columnType":"LONG_TEXT"}]'

# 3. Poll until AWAITING_REVIEW, then review, approve and download
autessa synthetic-data get --jobId <jobId>
autessa synthetic-data preview --jobId <jobId> --batchIndex 0
autessa synthetic-data approve --jobId <jobId>
autessa synthetic-data export --jobId <jobId>
REST · quick generateEXAMPLE
curl https://api.autessa.com/clients/synthetic-data/generate \
  -H "Authorization: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Support tickets for a meal-kit delivery company",
    "rowCount": 10,
    "columnDefinitions": [
      {"columnName": "subject", "columnType": "SHORT_TEXT", "required": true},
      {"columnName": "channel", "columnType": "SINGLE_SELECT",
       "allowedValues": ["Email", "Chat", "Phone"]}
    ]
  }'

# → { "rows": [ ... ], "rowCount": 10, "rejectedRowCount": 1 }

Use cases

Who uses a synthetic data generator?

Engineering and QA

Seed staging tables and generate fixture files that match your schema, including the awkward edge cases.

AI and agent teams

Create prompt and response training pairs, and realistic test conversations for assistants.

Sales and solutions

Fill a demo environment with believable customers, tickets and orders in minutes.

Product and design

Prototype apps and dashboards against real-looking data instead of lorem ipsum.

Data and analytics

Exercise pipelines and reports with varied rows before real data arrives.

Training and enablement

Build practice datasets for onboarding without exposing customer records.

Use cases by role and industry →

Integrations

Where Synthetic Data plugs in

Your Autessa database tables, JSONL and CSV files, the Autessa CLI and REST API, and the model your company chooses, including your own provider connection.

All integrations →

Security

Your data rules apply to test data too

Jobs are scoped to your company. Descriptions, sample rows and staged rows are encrypted with your company key, table writes use your own permissions, and company PII and PHI stripping applies to prompts.

Security and data handling →

Compare

Evaluating synthetic data tools?

How Autessa Synthetic Data compares with the tools teams most often look at alongside it.

FAQ

Questions teams ask about synthetic data

What is Autessa Synthetic Data?

Autessa Synthetic Data is an AI synthetic data generator. You describe the data you need in plain English, Autessa proposes the columns, and it generates realistic rows into a database table, a new table it creates, or a downloadable JSONL or CSV file. Every row is checked against your columns and near-duplicates are removed.

Does it work out of the box?

Yes. Describe the data you need, accept the proposed columns and you have realistic rows in a table or a JSONL or CSV file in minutes. Then shape it to your company in Autessa: save column descriptions and sample rows that match your domain, choose review-first for anything sensitive, and script recurring jobs from the CLI or API.

Does Autessa Synthetic Data use my production data?

No. Autessa Synthetic Data generates rows from your description, your column definitions and any sample rows you choose to paste. It does not read or train on the existing rows in your tables, so there is no production data to copy, mask or leak.

Can I review synthetic data before it is written?

Yes. Choose "Review first" and generated rows are staged instead of written. You can preview each batch, open any row, exclude rows, regenerate a batch or append more, then approve and write or discard everything. Nothing lands until you approve.

How many rows can I generate?

A dataset job generates 1 to 5,000 rows, and appends can add more up to 5,000 in total across the job. Quick generate returns up to 50 rows in seconds without storing anything. Rows written to tables count against your database storage limit.

What kinds of columns can it generate?

Short text, long text, integer, decimal, boolean, single select and multi select. Dates are generated as text in ISO-8601 format. File, image, audio and video columns are flagged and left empty, ready for your own files.

Can it create training data for LLMs?

Yes. The training pairs preset sets up system, prompt and response columns, and the job exports them as a JSONL or CSV dataset you can use to fine-tune or test an assistant. Add a description and sample rows to set the tone and the topics.

Is there an API and a CLI?

Yes. Every action is an Autessa CLI command under `autessa synthetic-data`, and there is a REST API for code that uses an Autessa API key. With an API key you can generate rows, propose schemas and run dataset file jobs; filling tables needs a signed-in person, because rows are written with that person's table permissions.

Which AI model does it use?

Synthetic Data runs on your company default AI model, or on a model from your own provider connection if an admin picks one, in which case your provider bills those tokens directly. Company-wide PII and PHI stripping also applies to its prompts.

How does Autessa Synthetic Data protect privacy?

Every row is invented from your description and columns. Autessa Synthetic Data never reads or learns from real records, so there is no source data to leak, and sample rows are optional, so you can start with nothing real at all.

What happens if a job stops partway?

It finishes with what it has and tells you why. If a worker stops responding, the job resumes on its own and keeps finished batches. If it runs out of AI budget, hits the storage limit or keeps producing invalid rows, it ends as "Partially completed" with a plain-language reason.

Describe your first dataset

Start with a sentence. Review the rows. Write them to a table or download them as JSONL or CSV, then tailor descriptions, samples and review rules to your company in Autessa.

Start free

Describe it · review it · write it · or download JSONL and CSV

100% customizable, code and all

Make Autessa Synthetic Data fully your own.

Use it out of the box, then change anything. Ask Autobot, Autessa’s AI builder, for a new field, screen, report, workflow or agent and it builds it into your copy of the app. Or open the code and edit it yourself. Nothing is locked: the app, its data and its code are yours.

Start free and make it yours