Now with MCP support for AI agents

Realistic test data in one API call

Send a schema or plain English description, get back production-quality fake data with proper names, valid formats, and referential integrity.

156

Field Types

22

Locales

<50ms

Generation

SchemaPOST /v1/generate
{ "tables": [{
    "name": "users",
    "count": 3,
    "fields": [
      { "name": "id", "type": "uuid" },
      { "name": "name", "type": "full_name" },
      { "name": "email", "type": "email" }
    ]
}]}
Response4ms
{
  "data": {
    "users": [{
      "id": "a7c3e1d0-9f24...",
      "name": "Maximilian Bergmann",
      "email": "max.bergmann@web.de"
    }, ...]
  },
  "meta": { "total_records": 3, "generation_time_ms": 4 }
}

Everything you need to seed any database

One API, six powerful capabilities. No other test data tool comes close.

Relational Data

Generate multiple tables with proper foreign key relationships. Orders reference real user IDs. No orphan records.

Auto-Locale Detection

Add a country field and MockHero auto-detects locale per row. German names for DE, French for FR, Japanese for JP.

156 Field Types

From UUIDs to Luhn-valid credit cards, bcrypt hashes to EAN-13 barcodes. The most comprehensive catalog available.

Multiple Output Formats

JSON by default, CSV and SQL INSERT statements for Pro users. PostgreSQL, MySQL, and SQLite dialects supported.

Plain English Prompts

Describe what you need in plain English. MockHero converts it to a structured schema and generates the data.

AI Agent Ready

MCP server from day one. Claude, Cursor, Copilot, and other AI agents can call MockHero natively to seed databases.

Auto-Locale Detection

One schema. Every nationality.

Add a country field and MockHero generates culturally accurate data per row. 22 locales supported.

Schema Input
{
  "tables": [{
    "name": "contacts",
    "count": 4,
    "fields": [
      { "name": "country", "type": "enum",
        "params": { "values": ["DE","FR","JP","BR"] } },
      { "name": "first_name", "type": "first_name" },
      { "name": "last_name", "type": "last_name" },
      { "name": "email", "type": "email" },
      { "name": "phone", "type": "phone" }
    ]
  }]
}
Generated Output
Auto-detected
πŸ‡©πŸ‡ͺ
DEMaximilian Bergmann

maximilian.bergmann@web.de

+49 151 2345 6789

πŸ‡«πŸ‡·
FRCamille Dubois

camille.dubois@orange.fr

+33 6 12 34 56 78

πŸ‡―πŸ‡΅
JPη”°δΈ­ ε€ͺιƒŽ

tanaka.taro@yahoo.co.jp

+81 90 1234 5678

πŸ‡§πŸ‡·
BRLucas Silva

lucas.silva@uol.com.br

+55 11 91234 5678

Relational Data

Seed your entire database. One call.

Generate multiple related tables with proper foreign keys. Every reference points to a real record. Tables are created in dependency order via topological sort.

customers
3 rows
idnameemail
1Maximilian Bergmannmax@web.de
2Camille Duboiscamille@orange.fr
3Lucas Silvalucas@uol.com.br
orders
3 rows
idcustomer_idtotalstatus
11$129.99completed
21$49.50pending
33$299.00completed
order_items
3 rows
idorder_idproduct_idqty
1121
2143
3312
products
4 rows
idnamepricesku
1Wireless Headphones$79.99WH-1000
2USB-C Cable$12.99UC-200
3Laptop Stand$49.99LS-300
4Mouse Pad XL$24.99MP-400
Field Type Catalog

156 field types. Every edge case covered.

From UUIDs to Luhn-valid credit card numbers. From password hashes to chaos-testing payloads.

Identity

5
first_nameMaximilian
last_nameBergmann
emailmax@web.de
ssn412-68-1932
usernamembergmann94

Location

5
address742 Evergreen Terrace
cityMunich
postal_code80331
latitude48.1351
country_codeDE

Financial

4
credit_card_number4532015112830366
ibanDE89370400440532013000
currencyEUR
price129.99

Temporal

4
date2024-03-15
datetime2024-03-15T14:30:00Z
timestamp1710510600
age34

Technical

5
uuidf47ac10b-58cc...
ip_address192.168.1.42
mac_address00:1B:44:11:3A:B7
user_agentMozilla/5.0 (Mac...)
semver3.12.1

Content

4
sentenceThe quick brown fox...
paragraphLorem ipsum dolor sit...
slugmy-blog-post-title
color_hex#6D28D9

Social

3
avatar_urlapi.dicebear.com/7.x/...
bioFull-stack dev. Coffee...
twitter_handle@maxbergmann

HR

4
job_titleSenior Engineer
departmentEngineering
salary{ amount, currency, period }
company_nameTechCorp GmbH

E-Commerce

4
product_nameWireless Headphones
skuWH-1000XM5
barcode_ean134006381333931
rating4.7

Security

3
password_hash$2b$10$K4f3...
jwt_tokeneyJhbGciOiJI...
api_keymk_live_9f3a...

AI / ML

3
embedding_vector[0.023, -0.441, ...]
labelpositive
confidence_score0.947

Edge Cases

5
nullablenull | value
unicode_stringΓ„Γ–ΓœΓŸΓ©Γ±ΓΌΓ¨
empty_string""
boundary_integer2147483647
xss_string<script>alert("x")
Templates

Pre-built templates. Zero config.

One API call. Complete database seed. All relationships included.

E-Commerce
Storefront with locale-aware customers, product catalog, order flow, and reviews.
5tables
1.5Krecords
customersproductsordersorder_itemsreviews
Blog
Multi-author blog with proper many-to-many tags, comments, and locale-aware authors.
5tables
1.2Krecords
authorspostscommentstagspost_tags
SaaS
Multi-tenant SaaS with team roles, subscription billing, and invoice history.
4tables
260records
organizationsmemberssubscriptionsinvoices
Social Network
Social graph with follower relationships, engagement data, and DM threads.
5tables
6.8Krecords
userspostslikesfollowsmessages

Try it now

Edit the schema below and hit generate. Watch locale-aware names appear based on country codes.

Quick start:
Schema Input
JSON Output
{
  "data": {
    "users": [
      {
        "id": "a7c3e1d0-9f24-4b18-ae52-d3f7b8c01e95",
        "country": "DE",
        "first_name": "Maximilian",
        "last_name": "Bergmann",
        "email": "maximilian.bergmann@web.de",
        "role": "admin",
        "created_at": "2025-11-03T09:14:22Z"
      },
      {
        "id": "f2b8d4a1-6e73-4c09-b1d5-8a2f9e7c34b6",
        "country": "FR",
        "first_name": "Camille",
        "last_name": "Dubois",
        "email": "camille.dubois@orange.fr",
        "role": "editor",
        "created_at": "2026-01-17T15:42:08Z"
      },
      {
        "id": "c9e5f3b2-1a48-4d67-9c83-5b0e2d6f18a7",
        "country": "ES",
        "first_name": "Alejandro",
        "last_name": "Morales",
        "email": "alejandro.morales@telefonica.es",
        "role": "viewer",
        "created_at": "2026-02-28T11:05:37Z"
      }
    ]
  },
  "meta": {
    "tables": 1,
    "total_records": 3,
    "generation_time_ms": 4
  }
}
3 records4ms1 table

Integrate in seconds

One API call. Any language. Plain English prompts on every tier.

curl -X POST https://api.mockhero.dev/api/v1/generate \
  -H "Authorization: Bearer mh_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "tables": [{
      "name": "users",
      "count": 50,
      "fields": [
        { "name": "id", "type": "uuid" },
        { "name": "email", "type": "email" },
        { "name": "name", "type": "full_name" },
        { "name": "created_at", "type": "datetime" }
      ]
    }],
    "format": "json"
  }'

TipReplace mh_xxxxx with your actual API key from the dashboard.

Simple, transparent pricing

Start free, scale as you grow. No hidden fees.

Free
Perfect for getting started
$0forever
  • 1,000 records/day
  • 100 records per request
  • All 156 field types
  • Plain English prompts
  • JSON output
  • All 22 locales
Most Popular
Pro
For serious developers
$29/month
  • 100,000 records/day
  • 10,000 records per request
  • Plain English prompts
  • JSON + CSV + SQL output
  • Seed for reproducibility
  • Schema detection endpoint
  • 60 requests/minute
Scale
For teams and high-volume
$79/month
  • 1,000,000 records/day
  • 50,000 records per request
  • Plain English prompts
  • Everything in Pro
  • Webhook delivery
  • Bulk async generation
  • 120 requests/minute

No contracts. Cancel anytime.