Generation & Mock Data

8 endpoints for generating random identifiers, fake content, QR codes, TypeScript interfaces, and fully structured mock datasets.

Endpoints

Method Endpoint Purpose
GET /v1/uuid Generate UUIDs, ULIDs, or Nano IDs
GET /v1/password-gen Generate secure random passwords
GET /v1/lorem-ipsum Generate Lorem Ipsum placeholder text
GET /v1/fake-data Generate fake emails, names, addresses, and more
GET /v1/qr-generate Generate a QR code (PNG or SVG)
POST /v1/mock-data Generate structured mock datasets (JSON, CSV, SQL, XML)
POST /v1/mock-schema Reverse-engineer a field schema from a sample object
POST /v1/json-to-typescript Generate TypeScript interfaces from JSON

Examples

Generate UUIDs

curl "https://dev.toolkitapi.io/v1/uuid?version=v4&count=5" \
  -H "X-API-Key: YOUR_KEY"
import requests

resp = requests.get(
    "https://dev.toolkitapi.io/v1/uuid",
    params={"version": "v7", "count": 3},
    headers={"X-API-Key": "YOUR_KEY"},
)
data = resp.json()
for uuid in data["ids"]:
    print(uuid)
const params = new URLSearchParams({ version: "v4", count: "5" });
const resp = await fetch(
  `https://dev.toolkitapi.io/v1/uuid?${params}`,
  { headers: { "X-API-Key": "YOUR_KEY" } }
);
const data = await resp.json();
console.log(data.ids);
Response
{
  "ids": [
    "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
    "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e",
    "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f"
  ],
  "version": "v4",
  "count": 3
}

Supported ID types: v4 (standard UUID v4), v7 (time-ordered UUID v7), ulid (sortable), nanoid (URL-safe compact).

Generate secure passwords

curl "https://dev.toolkitapi.io/v1/password-gen?length=20&count=3&uppercase=true&lowercase=true&numbers=true&symbols=true" \
  -H "X-API-Key: YOUR_KEY"
import requests

resp = requests.get(
    "https://dev.toolkitapi.io/v1/password-gen",
    params={"length": 20, "count": 3, "uppercase": True, "lowercase": True, "numbers": True, "symbols": True},
    headers={"X-API-Key": "YOUR_KEY"},
)
data = resp.json()
for pw in data["passwords"]:
    print(pw)
const params = new URLSearchParams({
  length: "20", count: "3",
  uppercase: "true", lowercase: "true", numbers: "true", symbols: "true",
});
const resp = await fetch(
  `https://dev.toolkitapi.io/v1/password-gen?${params}`,
  { headers: { "X-API-Key": "YOUR_KEY" } }
);
const data = await resp.json();
console.log(data.passwords);

Generate fake data

curl "https://dev.toolkitapi.io/v1/fake-data?type=email&count=10" \
  -H "X-API-Key: YOUR_KEY"
import requests

resp = requests.get(
    "https://dev.toolkitapi.io/v1/fake-data",
    params={"type": "email", "count": 5},
    headers={"X-API-Key": "YOUR_KEY"},
)
data = resp.json()
print(data["items"])
const params = new URLSearchParams({ type: "email", count: "5" });
const resp = await fetch(
  `https://dev.toolkitapi.io/v1/fake-data?${params}`,
  { headers: { "X-API-Key": "YOUR_KEY" } }
);
const data = await resp.json();
console.log(data.items);
Response
{
  "type": "email",
  "count": 5,
  "items": [
    "[email protected]",
    "[email protected]",
    "[email protected]",
    "[email protected]",
    "[email protected]"
  ]
}

Supported types: email, name, address, phone, company, url, ipv4, ipv6, mac_address, user_agent.

Generate structured mock data

curl -X POST "https://dev.toolkitapi.io/v1/mock-data" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fields": [
      {"name": "id", "type": "uuid"},
      {"name": "name", "type": "name"},
      {"name": "email", "type": "email"},
      {"name": "score", "type": "float", "options": {"min": 0, "max": 100}}
    ],
    "rows": 5,
    "output_format": "json",
    "seed": 42
  }'
import requests

fields = [
    {"name": "id", "type": "uuid"},
    {"name": "name", "type": "name"},
    {"name": "email", "type": "email"},
    {"name": "score", "type": "float", "options": {"min": 0, "max": 100}},
]

resp = requests.post(
    "https://dev.toolkitapi.io/v1/mock-data",
    headers={"X-API-Key": "YOUR_KEY"},
    json={"fields": fields, "rows": 5, "output_format": "json", "seed": 42},
)
data = resp.json()
print(data["data"])  # Array of 5 generated objects
const resp = await fetch("https://dev.toolkitapi.io/v1/mock-data", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    fields: [
      { name: "id", type: "uuid" },
      { name: "name", type: "name" },
      { name: "email", type: "email" },
    ],
    rows: 5, output_format: "json", seed: 42,
  }),
});
const data = await resp.json();
console.log(data.data);
Response
{
  "rows": 5,
  "seed": 42,
  "format": "json",
  "data": [
    {"id": "a1b2c3d4-...", "name": "Alice Johnson", "email": "[email protected]", "score": 87.34},
    {"id": "e5f6a7b8-...", "name": "Bob Smith", "email": "[email protected]", "score": 42.19}
  ],
  "query_time_ms": 28.5
}

Use a seed for reproducible output. Supported formats: json, csv, sql, xml.

Generate TypeScript interfaces

curl -X POST "https://devtools.toolkitapi.io/v1/json-to-typescript" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {"id": 1, "name": "Widget", "active": true, "tags": ["sale"]},
    "root_name": "Product"
  }'
import requests

sample = {"id": 1, "name": "Widget A", "active": True, "tags": ["sale", "new"], "meta": {"created": "2024-01-01"}}
resp = requests.post(
    "https://devtools.toolkitapi.io/v1/json-to-typescript",
    headers={"X-API-Key": "YOUR_KEY"},
    json={"data": sample, "root_name": "Product"},
)
data = resp.json()
print(data["typescript"])
const resp = await fetch("https://devtools.toolkitapi.io/v1/json-to-typescript", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    data: { id: 1, name: "Widget", active: true },
    root_name: "Product",
  }),
});
const data = await resp.json();
console.log(data.typescript);

Reverse-engineer a mock schema

curl -X POST "https://dev.toolkitapi.io/v1/mock-schema" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sample": {"id": 1, "name": "Alice", "email": "[email protected]", "score": 87.5, "active": true}}'
import requests

sample = {"id": 1, "name": "Alice", "email": "[email protected]", "score": 87.5, "active": True}
resp = requests.post(
    "https://dev.toolkitapi.io/v1/mock-schema",
    headers={"X-API-Key": "YOUR_KEY"},
    json={"sample": sample},
)
data = resp.json()
# Returns a fields array ready to pass back to mock_data
print(data["fields"])
const resp = await fetch("https://dev.toolkitapi.io/v1/mock-schema", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    sample: { id: 1, name: "Alice", score: 87.5, active: true },
  }),
});
const data = await resp.json();
console.log(data.fields);

Request Parameters

GET /v1/uuid

Parameter Type Required Default Description
version string No v4 ID type: v4, v7, ulid, nanoid
count integer No 1 How many to generate (max 100)

GET /v1/password-gen

Parameter Type Required Default Description
length integer No 20 Password length (8–256)
uppercase boolean No true Include uppercase letters
lowercase boolean No true Include lowercase letters
numbers boolean No true Include digits
symbols boolean No true Include special characters
count integer No 1 Number of passwords (max 100)

GET /v1/fake-data

Parameter Type Required Description
type string Yes Type: email, name, address, phone, company, url, ipv4, ipv6, mac_address, user_agent
count integer No Default 1, max 100

POST /v1/mock-data

Parameter Type Required Description
fields array Yes Field definitions: {name, type, options?, null_pct?}
rows integer No Default 10, max 1000
output_format string No Default json. One of: json, csv, sql, xml
seed integer No Random seed for reproducible output
table_name string No Table name for SQL output. Default: mock_data
locale string No Faker locale. Default: en_US

Tip

Use mock-schema to auto-detect field types from a real API response, then feed the output directly into mock-data to generate a matching test dataset. This makes test fixture generation a two-call workflow.