# Synthetic Data Generator

## Links

- Product page URL: https://www.agentpmt.com/marketplace/synthetic-data-generator
- Product markdown URL: https://www.agentpmt.com/marketplace/synthetic-data-generator?format=agent-md
- Product JSON URL: https://www.agentpmt.com/marketplace/synthetic-data-generator?format=agent-json

## Overview

- Product ID: 69488f73b54506f955d789e8
- Vendor: Apoth3osis
- Type: data
- Unit type: request
- Price: 1000 credits
- Generated at: 2026-05-30T20:19:11.168Z

### Page Description

The Synthetic Data Generator creates production-quality fake data for development, testing, and demonstrations.

Data Types
The tool generates nine data types. Person Profiles include demographics, contact info, and addresses. Company Profiles contain industry classification, revenue, employee counts, and org structures. Family Units provide related household members with shared addresses and relationship mappings. Technical Data covers IPs, UUIDs, MAC addresses, URLs, domains, API keys, and system information. Financial Data generates fake credit cards, bank accounts, transactions, and investment portfolios. Edge Cases produce boundary testing data with unicode, special characters, injection patterns, and null values. E-commerce Datasets create complete online store ecosystems with customers, products, orders, and reviews. Auth System Datasets provide full IAM data with users, roles, permissions, sessions, and audit logs. CRM Datasets generate sales pipeline data with companies, contacts, leads, opportunities, and deals.

Locale Support
Data can be generated in 10 locales: en_US, en_GB, de_DE, fr_FR, es_ES, it_IT, pt_BR, nl_NL, pl_PL, and ja_JP.

Complexity Control
Simple mode requires only data type and count. Detailed mode enables extended fields and relationships. Dataset sizes range from small (100 records) to medium (500) to large (2000+). Advanced options provide granular control over age ranges, industries, family sizes, currencies, and more.

Testing Features
Edge case testing includes unicode, boundary values, special characters, and injection patterns at low, medium, or high severity levels. The generator maintains realistic relationships such as parent-child, customer-order, and user-role mappings. Security testing patterns include SQL injection, XSS attempts, and malformed data.

Scale
Simple types support 1–1000 records per request. Datasets generate hundreds to thousands of related records with preserved relationships and data integrity across entities.

### Agent Description

Generate synthetic test data: persons, companies, families, e-commerce, auth systems, CRM, financial, technical IDs. 10 locales, edge cases, deterministic seeding.

## Details

### Details

The Synthetic Data Generator creates production-quality fake data for development, testing, and demonstrations.

Data Types
The tool generates nine data types. Person Profiles include demographics, contact info, and addresses. Company Profiles contain industry classification, revenue, employee counts, and org structures. Family Units provide related household members with shared addresses and relationship mappings. Technical Data covers IPs, UUIDs, MAC addresses, URLs, domains, API keys, and system information. Financial Data generates fake credit cards, bank accounts, transactions, and investment portfolios. Edge Cases produce boundary testing data with unicode, special characters, injection patterns, and null values. E-commerce Datasets create complete online store ecosystems with customers, products, orders, and reviews. Auth System Datasets provide full IAM data with users, roles, permissions, sessions, and audit logs. CRM Datasets generate sales pipeline data with companies, contacts, leads, opportunities, and deals.

Locale Support
Data can be generated in 10 locales: en_US, en_GB, de_DE, fr_FR, es_ES, it_IT, pt_BR, nl_NL, pl_PL, and ja_JP.

Complexity Control
Simple mode requires only data type and count. Detailed mode enables extended fields and relationships. Dataset sizes range from small (100 records) to medium (500) to large (2000+). Advanced options provide granular control over age ranges, industries, family sizes, currencies, and more.

Testing Features
Edge case testing includes unicode, boundary values, special characters, and injection patterns at low, medium, or high severity levels. The generator maintains realistic relationships such as parent-child, customer-order, and user-role mappings. Security testing patterns include SQL injection, XSS attempts, and malformed data.

Scale
Simple types support 1–1000 records per request. Datasets generate hundreds to thousands of related records with preserved relationships and data integrity across entities.

### Actions

- `generate` (10 credits): Generate synthetic data of a specified type. Supports person profiles, company profiles, family units, technical data, financial data, edge cases, and complete relational datasets (e-commerce, auth system, CRM).

### Use Cases

Generate realistic customer data, usage patterns, and transaction history, edge cases to validate UI robustness, large datasets for stress testing, valid-format credit card numbers

### Workflows Using This Tool

No public workflows currently reference this product.

### Related Content

No related content is currently linked to this product.

## Integration Details

### DynamicMCP

- Setup page URL: https://www.agentpmt.com/dynamic-mcp
- Claude setup guide: https://www.agentpmt.com/dynamic-mcp?platform=claude#videos
- ChatGPT setup guide: https://www.agentpmt.com/dynamic-mcp?platform=chatgpt#videos
- Cursor setup guide: https://www.agentpmt.com/dynamic-mcp?platform=cursor#videos
- Windsurf setup guide: https://www.agentpmt.com/dynamic-mcp?platform=windsurf#videos

Use the local router for command-based MCP clients. It forwards requests to `https://api.agentpmt.com/mcp` and does not execute tools locally.

```bash
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

### REST API

The live page renders cURL, Python, JavaScript, and Node.js examples. Logged-in users see those examples prefilled with their own API and budget credentials.

- Purchase endpoint: https://api.agentpmt.com/products/purchase
- Authorization format: `Bearer <base64(apiKey:budgetKey)>`

```bash
curl -X POST "https://api.agentpmt.com/products/purchase" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eW91ci1hcGkta2V5LWhlcmU6eW91ci1idWRnZXQta2V5LWhlcmU=" \
  -d '{
    "product_id": "69488f73b54506f955d789e8",
    "parameters": {
      "action": "generate",
      "data_type": "person",
      "count": 1,
      "locale": "en_US",
      "include_details": true,
      "include_edge_cases": false,
      "size": "medium"
    }
  }'
```

### Autonomous Agents

Autonomous agents can access this tool through AgentAddress credit balances or direct x402 payments. Use the Autonomous Agent API reference for endpoint shapes after choosing the access pattern below.

- Autonomous Agent API reference URL: https://www.agentpmt.com/docs/api-reference/autonomous-agents
- Autonomous Agent API reference markdown URL: https://www.agentpmt.com/docs/api-reference/autonomous-agents?format=agent-md
- Credit-Based Access Using AgentAddress: https://www.agentpmt.com/docs/autonomous-agents/credit-based-tool-usage-with-agentaddress
- AgentAddress is preferred for persistent file access, stored platform state, and maximum tool use ability across repeated calls.
- Direct x402 is for independent one-off tool calls that do not require shared files or stored platform state.
- Direct x402 public payments: USDC on Base, Arbitrum, Optimism, Polygon, and Avalanche.

### Schema

#### Parameters

- Schema type: actions

```json
{
  "actions": {
    "generate": {
      "description": "Generate synthetic data of a specified type. Supports person profiles, company profiles, family units, technical data, financial data, edge cases, and complete relational datasets (e-commerce, auth system, CRM).",
      "properties": {
        "data_type": {
          "type": "string",
          "description": "Type of synthetic data to generate. Options: 'person' (individual profiles with names, emails, addresses, demographics), 'company' (business profiles with industry, size, revenue, employees), 'family' (related family units with parents, children, shared addresses), 'technical' (IPs, UUIDs, URLs, domains, API keys), 'financial' (credit cards, bank accounts, transactions), 'edge_cases' (unicode, special chars, injection patterns for security testing), 'ecommerce_dataset' (customers, products, orders, reviews), 'auth_system_dataset' (users, roles, permissions, sessions), 'crm_dataset' (companies, contacts, deals, pipeline).",
          "required": true,
          "enum": [
            "person",
            "company",
            "family",
            "technical",
            "financial",
            "edge_cases",
            "ecommerce_dataset",
            "auth_system_dataset",
            "crm_dataset"
          ]
        },
        "count": {
          "type": "integer",
          "description": "Number of records to generate (1-1000). For simple types this is exact record count. For dataset types, this affects the size multiplier.",
          "required": false,
          "default": 1,
          "minimum": 1,
          "maximum": 1000
        },
        "locale": {
          "type": "string",
          "description": "Locale for region-specific data generation (names, addresses, phone formats). Supports: en_US, en_GB, de_DE, fr_FR, es_ES, it_IT, pt_BR, nl_NL, pl_PL, ja_JP.",
          "required": false,
          "default": "en_US",
          "enum": [
            "en_US",
            "en_GB",
            "de_DE",
            "fr_FR",
            "es_ES",
            "it_IT",
            "pt_BR",
            "nl_NL",
            "pl_PL",
            "ja_JP"
          ]
        },
        "seed": {
          "type": "integer",
          "description": "Random seed for reproducible results. Same seed + same parameters = same data every time. Omit for random data each request.",
          "required": false
        },
        "include_details": {
          "type": "boolean",
          "description": "Include extended details in generated data. For 'person': adds addresses, contact info, occupation. For 'company': adds employee lists. For 'family': adds relationship mappings. For datasets: includes all relationships. Set to false for minimal data.",
          "required": false,
          "default": true
        },
        "include_edge_cases": {
          "type": "boolean",
          "description": "Mix in edge case data for robustness testing. Adds unicode characters, special characters, long strings, boundary values. Works with all data types.",
          "required": false,
          "default": false
        },
        "size": {
          "type": "string",
          "description": "Dataset size - ONLY for dataset types (ecommerce_dataset, auth_system_dataset, crm_dataset). 'small': ~100 records, 'medium': ~500 records, 'large': ~2000+ records. Ignored for non-dataset types.",
          "required": false,
          "default": "medium",
          "enum": [
            "small",
            "medium",
            "large"
          ]
        },
        "options": {
          "type": "object",
          "description": "Advanced type-specific options. Available by data_type: [person] age_range, [company] industry_filter/size_category, [family] family_size_range, [technical] data_types, [financial] currency/include_transactions, [edge_cases] severity_level/categories.",
          "required": false,
          "properties": {
            "age_range": {
              "type": "array",
              "description": "[person only] Age range as [min_age, max_age]. Example: [25, 65].",
              "required": false,
              "items": {
                "type": "integer",
                "minimum": 0,
                "maximum": 120
              },
              "minItems": 2,
              "maxItems": 2
            },
            "industry_filter": {
              "type": "string",
              "description": "[company only] Filter to specific industry.",
              "required": false,
              "enum": [
                "Technology",
                "Healthcare",
                "Finance",
                "Manufacturing",
                "Retail",
                "Education"
              ]
            },
            "size_category": {
              "type": "string",
              "description": "[company only] Company size: small (1-50), medium (51-500), large (501-5000), enterprise (5000+).",
              "required": false,
              "enum": [
                "small",
                "medium",
                "large",
                "enterprise"
              ]
            },
            "family_size_range": {
              "type": "array",
              "description": "[family only] Family size range as [min, max]. Default: [2, 6].",
              "required": false,
              "items": {
                "type": "integer",
                "minimum": 2,
                "maximum": 10
              },
              "minItems": 2,
              "maxItems": 2
            },
            "data_types": {
              "type": "array",
              "description": "[technical only] Technical data types to include.",
              "required": false,
              "items": {
                "type": "string",
                "enum": [
                  "ip",
                  "ipv6",
                  "mac",
                  "uuid",
                  "url",
                  "domain",
                  "email",
                  "user_agent",
                  "api_key",
                  "token"
                ]
              }
            },
            "currency": {
              "type": "string",
              "description": "[financial only] ISO 4217 currency code. Default: USD.",
              "required": false,
              "default": "USD"
            },
            "include_transactions": {
              "type": "boolean",
              "description": "[financial only] Include transaction history. Default: false.",
              "required": false,
              "default": false
            },
            "severity_level": {
              "type": "string",
              "description": "[edge_cases only] Severity: low, medium, high.",
              "required": false,
              "default": "medium",
              "enum": [
                "low",
                "medium",
                "high"
              ]
            },
            "categories": {
              "type": "array",
              "description": "[edge_cases only] Categories to generate.",
              "required": false,
              "items": {
                "type": "string",
                "enum": [
                  "unicode",
                  "length",
                  "null",
                  "boundary",
                  "malformed",
                  "injection",
                  "special_chars",
                  "numeric"
                ]
              }
            }
          }
        }
      }
    }
  },
  "properties": {
    "action": {
      "type": "string",
      "description": "Use 'get_instructions' to retrieve documentation. Action to perform: generate",
      "required": true,
      "default": "generate",
      "enum": [
        "get_instructions",
        "generate"
      ]
    },
    "data_type": {
      "type": "string",
      "description": "Type of synthetic data to generate. Options: 'person' (individual profiles with names, emails, addresses, demographics - for user registration, contact forms, CRM testing), 'company' (business profiles with industry, size, revenue, employees - for B2B systems, vendor management), 'family' (related family units with parents, children, shared addresses - for household data, family plans), 'technical' (IPs, UUIDs, URLs, domains, API keys - for network testing, API development), 'financial' (credit cards, bank accounts, transactions - for payment systems, banking apps), 'edge_cases' (unicode, special chars, injection patterns - for security testing, validation), 'ecommerce_dataset' (customers, products, orders, reviews - for e-commerce platforms), 'auth_system_dataset' (users, roles, permissions, sessions - for IAM/auth systems), 'crm_dataset' (companies, contacts, deals, pipeline - for CRM/sales platforms). Required for generate action.",
      "required": false,
      "enum": [
        "person",
        "company",
        "family",
        "technical",
        "financial",
        "edge_cases",
        "ecommerce_dataset",
        "auth_system_dataset",
        "crm_dataset"
      ]
    },
    "count": {
      "type": "integer",
      "description": "Number of records to generate (1-1000). For simple types (person, company, family, technical, financial, edge_cases), this is the exact number of records. For datasets (ecommerce_dataset, auth_system_dataset, crm_dataset), this affects the size multiplier.",
      "required": false,
      "default": 1,
      "minimum": 1,
      "maximum": 1000
    },
    "locale": {
      "type": "string",
      "description": "Locale for region-specific data generation (names, addresses, phone formats). Supports: en_US (United States), en_GB (United Kingdom), de_DE (Germany), fr_FR (France), es_ES (Spain), it_IT (Italy), pt_BR (Brazil), nl_NL (Netherlands), pl_PL (Poland), ja_JP (Japan)",
      "required": false,
      "default": "en_US",
      "enum": [
        "en_US",
        "en_GB",
        "de_DE",
        "fr_FR",
        "es_ES",
        "it_IT",
        "pt_BR",
        "nl_NL",
        "pl_PL",
        "ja_JP"
      ]
    },
    "seed": {
      "type": "integer",
      "description": "Random seed for reproducible results. Using the same seed with identical parameters generates the exact same data every time. Useful for: consistent test fixtures across environments, version-controlled test data, CI/CD pipelines, regression testing. Omit this field for random data each request.",
      "required": false
    },
    "include_details": {
      "type": "boolean",
      "description": "Include extended details in generated data. For 'person': adds addresses, contact info, occupation, annual income. For 'company': adds employee lists, detailed financials. For 'family': adds relationship mappings between members. For datasets: includes all relationships (customer-order links, user-role assignments, etc). Set to false for minimal data.",
      "required": false,
      "default": true
    },
    "include_edge_cases": {
      "type": "boolean",
      "description": "Mix in edge case data for robustness testing. Adds unicode characters (Chinese, Arabic, emojis), special characters, long strings, boundary values. Useful for testing: input validation, internationalization, XSS/injection protection, string length limits. Works with all data types.",
      "required": false
    },
    "size": {
      "type": "string",
      "description": "Dataset size - ONLY applies to dataset types (ecommerce_dataset, auth_system_dataset, crm_dataset). 'small': ~100 total records (fast, for quick tests), 'medium': ~500 total records (balanced, standard testing), 'large': ~2000+ total records (comprehensive, load testing). Ignored for non-dataset types (person, company, etc).",
      "required": false,
      "default": "medium",
      "enum": [
        "small",
        "medium",
        "large"
      ]
    },
    "options": {
      "type": "object",
      "description": "Advanced type-specific options for customizing data generation. All nested options are optional. Available options by data_type: [person] age_range (array), [company] industry_filter (string), size_category (string), [family] family_size_range (array), [technical] data_types (array), [financial] currency (string), include_transactions (boolean), [edge_cases] severity_level (string), categories (array). See nested properties for details.",
      "required": false,
      "default": "[object Object]",
      "properties": {
        "age_range": {
          "type": "array",
          "description": "[person only] Age range as [min_age, max_age]. Example: [25, 65] generates only people aged 25-65. Useful for: adult-only apps, senior care systems, age-restricted services. Array must have exactly 2 integers between 0-120.",
          "required": false,
          "items": {
            "type": "integer",
            "minimum": 0,
            "maximum": 120
          },
          "minItems": 2,
          "maxItems": 2
        },
        "industry_filter": {
          "type": "string",
          "description": "[company only] Filter to specific industry. Generates only companies in this industry category. Options: 'Technology' (software, hardware, SaaS, AI/ML), 'Healthcare' (pharma, medical devices, biotech), 'Finance' (banking, insurance, fintech), 'Manufacturing' (automotive, aerospace, industrial), 'Retail' (e-commerce, fashion, grocery), 'Education' (K-12, higher education, EdTech).",
          "required": false,
          "enum": [
            "Technology",
            "Healthcare",
            "Finance",
            "Manufacturing",
            "Retail",
            "Education"
          ]
        },
        "size_category": {
          "type": "string",
          "description": "[company only] Company size category based on employee count. 'small': 1-50 employees (startups, SMBs), 'medium': 51-500 employees (mid-market), 'large': 501-5000 employees (large corporations), 'enterprise': 5000+ employees (Fortune 500).",
          "required": false,
          "enum": [
            "small",
            "medium",
            "large",
            "enterprise"
          ]
        },
        "family_size_range": {
          "type": "array",
          "description": "[family only] Family size range as [min_members, max_members]. Example: [3, 5] generates families with 3-5 members. Includes parents and children. Default: [2, 6]. Array must have exactly 2 integers between 2-10.",
          "required": false,
          "items": {
            "type": "integer",
            "minimum": 2,
            "maximum": 10
          },
          "minItems": 2,
          "maxItems": 2
        },
        "data_types": {
          "type": "array",
          "description": "[technical only] Specific technical data types to include. Options: 'ip' (IPv4 addresses), 'ipv6' (IPv6 addresses), 'mac' (MAC addresses), 'uuid' (UUID v1/v4), 'url' (full URLs), 'domain' (domain names), 'email' (email addresses), 'user_agent' (browser user agents), 'api_key' (API keys), 'token' (JWT tokens, session tokens). Omit to include common types (ip, uuid, url, email, user_agent).",
          "required": false,
          "items": {
            "type": "string",
            "enum": [
              "ip",
              "ipv6",
              "mac",
              "uuid",
              "url",
              "domain",
              "email",
              "user_agent",
              "api_key",
              "token"
            ]
          }
        },
        "currency": {
          "type": "string",
          "description": "[financial only] Currency code for financial data (ISO 4217 format). Affects number formatting and ranges. Examples: 'USD' (US Dollars), 'EUR' (Euros), 'GBP' (British Pounds), 'JPY' (Japanese Yen), 'CAD' (Canadian Dollars). Must be 3 uppercase letters.",
          "required": false,
          "default": "USD",
          "pattern": "^[A-Z]{3}$"
        },
        "include_transactions": {
          "type": "boolean",
          "description": "[financial only] Include detailed transaction history. When true, each financial record includes 5-50 transactions with dates, amounts, merchants, categories. Increases data size significantly but provides realistic spending patterns. Useful for: transaction analysis, fraud detection testing, financial reporting.",
          "required": false
        },
        "severity_level": {
          "type": "string",
          "description": "[edge_cases only] Edge case severity level. 'low': mild edge cases (basic unicode, short long strings), 'medium': moderate edge cases (balanced testing), 'high': extreme edge cases (maximum boundary testing, all edge case types, largest data). Use 'high' for comprehensive security/validation testing.",
          "required": false,
          "default": "medium",
          "enum": [
            "low",
            "medium",
            "high"
          ]
        },
        "categories": {
          "type": "array",
          "description": "[edge_cases only] Specific edge case categories to generate. Options: 'unicode' (Chinese, Arabic, Cyrillic, emojis), 'length' (empty strings, single chars, very long strings), 'null' (null values, empty objects/arrays), 'boundary' (max/min integers, float precision issues), 'malformed' (invalid emails, URLs, dates), 'injection' (SQL injection patterns, XSS attempts - safe for testing), 'special_chars' (all special characters), 'numeric' (division by zero, Infinity, NaN). Omit to include all categories.",
          "required": false,
          "items": {
            "type": "string",
            "enum": [
              "unicode",
              "length",
              "null",
              "boundary",
              "malformed",
              "injection",
              "special_chars",
              "numeric"
            ]
          },
          "uniqueItems": true
        }
      }
    }
  }
}
```

### Usage Instructions

# Synthetic Data Generator - Instructions

## Overview
Generate realistic synthetic data for testing, development, and prototyping. Supports individual records (person, company, family, technical, financial, edge cases) and complete relational datasets (e-commerce, auth system, CRM). Data is locale-aware with support for 10 regions. Use a seed for reproducible results across runs.

## Actions

### generate
Generate synthetic data of a specified type.

**Required Fields:**
- `action` (string): `"generate"`
- `data_type` (string): Type of data to generate. One of: `person`, `company`, `family`, `technical`, `financial`, `edge_cases`, `ecommerce_dataset`, `auth_system_dataset`, `crm_dataset`

**Optional Fields:**
- `count` (integer, default: 1): Number of records to generate (1-1000). For dataset types, this is ignored in favor of the `size` parameter.
- `locale` (string, default: `"en_US"`): Region for names, addresses, phone formats. Options: `en_US`, `en_GB`, `de_DE`, `fr_FR`, `es_ES`, `it_IT`, `pt_BR`, `nl_NL`, `pl_PL`, `ja_JP`
- `seed` (integer, default: null): Random seed for reproducible output. Same seed + same parameters = same data every time. Omit for random data.
- `include_details` (boolean, default: true): Include extended fields (addresses, financials, relationships). Set false for minimal records.
- `include_edge_cases` (boolean, default: false): Mix in unicode, special characters, and boundary values for robustness testing.
- `size` (string, default: `"medium"`): Only for dataset types (`ecommerce_dataset`, `auth_system_dataset`, `crm_dataset`). Options: `small` (~100 records), `medium` (~500 records), `large` (~2000+ records). Ignored for non-dataset types.
- `options` (object): Type-specific advanced options (see below).

---

## Data Types

### person
Individual profiles with names, emails, addresses, demographics.

**Options:**
- `age_range` (array of 2 integers, 0-120): Filter by age range, e.g. `[25, 65]`

**Example:**
```json
{
  "action": "generate",
  "data_type": "person",
  "count": 5,
  "locale": "fr_FR",
  "options": { "age_range": [25, 45] }
}
```

### company
Business profiles with industry, size, revenue, and sample employees.

**Options:**
- `industry_filter` (string): Filter to a specific industry. Options: `Technology`, `Healthcare`, `Finance`, `Manufacturing`, `Retail`, `Education`
- `size_category` (string): Company size. Options: `small` (1-50 employees), `medium` (51-500), `large` (501-5000), `enterprise` (5000+)

**Example:**
```json
{
  "action": "generate",
  "data_type": "company",
  "count": 3,
  "options": { "industry_filter": "Technology", "size_category": "medium" }
}
```

### family
Family units with parents, children, shared addresses, and relationship mappings.

**Options:**
- `family_size_range` (array of 2 integers, 2-10): Min and max family members, e.g. `[3, 5]`

**Example:**
```json
{
  "action": "generate",
  "data_type": "family",
  "count": 2,
  "include_details": true,
  "options": { "family_size_range": [3, 5] }
}
```

### technical
IPs, UUIDs, URLs, domains, API keys, tokens, and system info.

**Options:**
- `data_types` (array of strings): Which technical types to include. Options: `ip`, `ipv6`, `mac`, `uuid`, `url`, `domain`, `email`, `user_agent`, `api_key`, `token`. Default: `["ip", "uuid", "url", "email", "user_agent"]`

**Example:**
```json
{
  "action": "generate",
  "data_type": "technical",
  "count": 10,
  "options": { "data_types": ["ip", "ipv6", "mac", "uuid", "api_key"] }
}
```

### financial
Credit cards, bank accounts, balances, and transaction history.

**Options:**
- `currency` (string, default: `"USD"`): ISO 4217 currency code (e.g. `USD`, `EUR`, `GBP`, `JPY`)
- `include_transactions` (boolean, default: false): Include 5-50 detailed transactions per record

**Example:**
```json
{
  "action": "generate",
  "data_type": "financial",
  "count": 3,
  "options": { "currency": "EUR", "include_transactions": true }
}
```

### edge_cases
Unicode, special characters, boundary values, injection patterns, and malformed data for robustness testing.

**Options:**
- `severity_level` (string, default: `"medium"`): Options: `low`, `medium`, `high`. Higher severity produces more extreme test values.
- `categories` (array of strings): Which edge case types to include. Options: `unicode`, `length`, `null`, `boundary`, `malformed`, `injection`, `special_chars`, `numeric`. Default: `["unicode", "length", "null", "boundary"]`

**Example:**
```json
{
  "action": "generate",
  "data_type": "edge_cases",
  "count": 5,
  "options": { "severity_level": "high", "categories": ["unicode", "injection", "boundary", "malformed"] }
}
```

### ecommerce_dataset
Complete e-commerce dataset with interlinked customers, products, and orders.

**Example:**
```json
{
  "action": "generate",
  "data_type": "ecommerce_dataset",
  "size": "small",
  "seed": 42
}
```

### auth_system_dataset
Authentication/authorization dataset with users, roles, permissions, and sessions.

**Example:**
```json
{
  "action": "generate",
  "data_type": "auth_system_dataset",
  "size": "medium",
  "locale": "en_GB"
}
```

### crm_dataset
CRM dataset with companies, contacts, and deals/opportunities with pipeline stages.

**Example:**
```json
{
  "action": "generate",
  "data_type": "crm_dataset",
  "size": "large",
  "seed": 123
}
```

---

## Common Workflows

### Reproducible Test Fixtures
Use `seed` to generate identical data across environments:
```json
{
  "action": "generate",
  "data_type": "person",
  "count": 100,
  "seed": 12345,
  "locale": "en_US"
}
```

### Security and Validation Testing
Combine edge cases with regular data:
```json
{
  "action": "generate",
  "data_type": "person",
  "count": 50,
  "include_edge_cases": true
}
```

### Minimal Data for Quick Tests
Disable extended details for lightweight records:
```json
{
  "action": "generate",
  "data_type": "company",
  "count": 20,
  "include_details": false
}
```

---

## Important Notes
- `count` ranges from 1 to 1000. For dataset types, use `size` instead to control volume.
- Dataset types (`ecommerce_dataset`, `auth_system_dataset`, `crm_dataset`) return multiple interlinked collections with a `record_counts` summary.
- Single-record requests (count=1) return the object directly; multiple records return a list wrapped in a named key.
- All generated data is fake and safe for testing. Financial data (credit cards, accounts) is not real.
- Edge case injection patterns are safe strings for testing input validation -- they do not perform actual attacks.
- The `locale` parameter affects names, addresses, and phone number formats but not all fields (e.g., currency must be set separately via options).

### Frequently Asked Questions

#### How do I connect this tool to an external agent?

- Page URL: https://www.agentpmt.com/faq
- Markdown URL: https://www.agentpmt.com/faq?format=agent-md

You can install the local MCP server by opening a terminal and running:

```
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

This will connect you to local agents like Claude Code, Windsurf, Grok Build, Cursor, etc.

Alternatively you can connect to the hosted version with this config block, no installation required:

```
{
  "mcpServers": {
    "agentpmt": {
      "type": "streamable-http",
      "url": "https://api.agentpmt.com/mcp",
      "headers": {
        "Authorization": "Bearer <AGENTPMT_BEARER_TOKEN>",
        "x-instance-metadata": "{\"client\":\"generic-mcp\",\"platform\":\"remote\"}"
      }
    }
  }
}
```

[View MCP Connection Instructions](/docs/mcp-reference/connection) for more details.

#### How does an external agent use this tool?

- Page URL: https://www.agentpmt.com/faq
- Markdown URL: https://www.agentpmt.com/faq?format=agent-md

After the external agent is connected to an Agent Group that can use this tool, paste this prompt into the agent:

> Call the AgentPMT-Tool-Search-and-Execution tool with action 'get\_schema' and tool\_id 69488f73b54506f955d789e8 ("Synthetic Data Generator"). Then call the same tool with action 'call\_tool', tool\_id 69488f73b54506f955d789e8, and the parameters needed for my request.

The agent should fetch the tool schema first, collect the required parameters for your request, and then call the tool through AgentPMT.

### Dependencies

This product has no public dependency products.