Claude-skill-registry api-response-mocker
Generate realistic mock API responses with fake data. Use for testing, prototyping, or creating sample data for frontend development.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/api-response-mocker" ~/.claude/skills/majiayu000-claude-skill-registry-api-response-mocker && rm -rf "$T"
manifest:
skills/data/api-response-mocker/SKILL.mdsource content
API Response Mocker
Generate realistic mock API responses with fake data using Faker.
Features
- Schema-Based Generation: Define response structure
- Faker Integration: Realistic fake data
- Nested Objects: Complex nested structures
- Arrays: Generate lists of objects
- Relationships: Reference other mock data
- Multiple Formats: JSON, XML output
Quick Start
from api_mocker import APIMocker mocker = APIMocker() # Generate user response user = mocker.generate({ "id": "uuid", "name": "name", "email": "email", "created_at": "datetime" }) # Generate list of users users = mocker.generate_list({ "id": "uuid", "name": "name", "email": "email" }, count=10)
CLI Usage
# Generate from schema file python api_mocker.py --schema user_schema.json --output user.json # Generate list python api_mocker.py --schema product.json --count 50 --output products.json # Generate with seed (reproducible) python api_mocker.py --schema order.json --seed 42 --output order.json # Preview without saving python api_mocker.py --schema customer.json --preview
Schema Format
Define fields using Faker provider names:
{ "id": "uuid", "first_name": "first_name", "last_name": "last_name", "email": "email", "phone": "phone_number", "company": "company", "address": { "street": "street_address", "city": "city", "state": "state", "zip": "zipcode", "country": "country" }, "created_at": "date_time_this_year", "is_active": "boolean" }
Available Data Types
Personal
,name
,first_namelast_name
,emailsafe_emailphone_numberssn
Address
,addressstreet_address
,city
,statestate_abbr
,zipcodepostcode
,countrycountry_code
,latitudelongitude
Internet
,urldomain_name
,ipv4ipv6
,user_namepassword
,uuiduuid4mac_address
Business
,companycompany_suffix
,jobjob_title
,bscatch_phrase
Financial
credit_card_number
,ibanbbancurrency_code
(custom: returns float)price
Date/Time
,datetime
,date_timedate_time_this_yeardate_of_birthiso8601
Text
,text
,sentenceparagraph
,wordwordsslug
Numeric
,random_intrandom_number
(userandom_float
){"type": "float", "min": 0, "max": 100}boolean
Advanced Schemas
Arrays
{ "id": "uuid", "name": "name", "tags": { "_array": true, "_count": 3, "_item": "word" }, "orders": { "_array": true, "_count": 5, "_item": { "order_id": "uuid", "amount": "random_int", "date": "date" } } }
Custom Values
{ "id": "uuid", "status": { "_choice": ["pending", "active", "completed"] }, "priority": { "_range": [1, 5] }, "score": { "_float": {"min": 0.0, "max": 100.0, "decimals": 2} } }
Nested Objects
{ "user": { "id": "uuid", "profile": { "bio": "paragraph", "avatar_url": "image_url", "social": { "twitter": "user_name", "linkedin": "url" } } } }
API Reference
APIMocker Class
class APIMocker: def __init__(self, locale: str = "en_US", seed: int = None) # Generation def generate(self, schema: dict) -> dict def generate_list(self, schema: dict, count: int = 10) -> list # File operations def from_schema_file(self, filepath: str) -> dict def save(self, data: any, filepath: str, format: str = "json") # Utilities def set_seed(self, seed: int) def get_faker(self) -> Faker
Example Schemas
User Response
{ "id": "uuid", "username": "user_name", "email": "email", "profile": { "first_name": "first_name", "last_name": "last_name", "avatar": "image_url", "bio": "sentence" }, "created_at": "iso8601", "last_login": "date_time_this_month" }
E-commerce Product
{ "sku": "uuid", "name": "catch_phrase", "description": "paragraph", "price": {"_float": {"min": 9.99, "max": 999.99}}, "currency": "currency_code", "category": {"_choice": ["Electronics", "Clothing", "Home", "Sports"]}, "in_stock": "boolean", "rating": {"_float": {"min": 1, "max": 5, "decimals": 1}}, "reviews_count": {"_range": [0, 500]} }
API Error Response
{ "error": { "code": {"_choice": ["NOT_FOUND", "UNAUTHORIZED", "BAD_REQUEST"]}, "message": "sentence", "request_id": "uuid", "timestamp": "iso8601" } }
Dependencies
- faker>=22.0.0