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.