{"openapi":"3.1.0","info":{"title":"FakeName Generator API","version":"1.0.0","summary":"Free, unauthenticated fake identity, address, name and IMEI data.","description":"A free public API for synthetic test data. No API key, no sign-up, no quota beyond a per-IP rate limit.\n\nEvery record is fictional. Pass a `seed` to make any response reproducible — the same seed always returns byte-identical records, which makes API output usable as a committed test fixture.\n\nRate limit: roughly 120 requests per minute per IP. For datasets larger than a single request, use the bulk exporter (up to 100,000 rows as CSV, JSON or SQL).\n\nDo not use this data for fraud, impersonation, shipping, billing, KYC, tax, government, employment, banking, medical or legal identity purposes.","license":{"name":"Free to use, including commercially. Attribution appreciated, not required.","url":"https://fakenamely.com/terms"},"contact":{"name":"FakeName Generator","url":"https://fakenamely.com/contact","email":"hello@fakenamely.com"}},"servers":[{"url":"https://fakenamely.com","description":"Production"}],"externalDocs":{"description":"Human documentation","url":"https://fakenamely.com/api"},"tags":[{"name":"generators","description":"Read-only endpoints that return synthetic records."}],"paths":{"/api/v1/identity":{"get":{"summary":"Complete fictional identities","description":"A full profile per record: name, address with a valid postal code, phone, email, username, birthday, physical traits, masked national-ID placeholder, sandbox payment-card format and vehicle. This is the same engine output the site's own generator renders, so a seed replayed here matches the page exactly.","operationId":"identity","tags":["generators"],"parameters":[{"name":"count","in":"query","required":false,"description":"How many records to return. Larger datasets are available from the bulk exporter, which does up to 100,000 rows.","schema":{"type":"integer","minimum":1,"maximum":100,"default":1},"example":"10"},{"name":"seed","in":"query","required":false,"description":"Any string. The same seed always returns byte-identical records, so a seeded request is reproducible and safe to commit as a test fixture. Omit it for fresh random data.","schema":{"type":"string"},"example":"checkout-suite-v3"},{"name":"country","in":"query","required":false,"description":"Country slug or ISO-3166 alpha-2 code. Controls the name pools, address format, phone format, postal-code shape and currency.","schema":{"type":"string"},"example":"de"},{"name":"gender","in":"query","required":false,"description":"Pins the given-name pool.","schema":{"type":"string","enum":["male","female"]},"example":"male"},{"name":"state","in":"query","required":false,"description":"US state slug or two-letter code. Pins the locality so the ZIP code and area code are valid for that state. Only valid when country is the United States.","schema":{"type":"string"},"example":"CA"},{"name":"fields","in":"query","required":false,"description":"Comma-separated column keys. Switches the response from nested objects to flat, column-selected rows — the same column set the bulk exporter uses.","schema":{"type":"string"},"example":"fullName,email,city,postalCode"},{"name":"format","in":"query","required":false,"description":"Response format. csv and sql return text rather than the JSON envelope; sql emits INSERT statements against an `identities` table.","schema":{"type":"string","enum":["json","csv","sql"]},"example":"json"}],"responses":{"200":{"description":"An array of nested identity objects.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","additionalProperties":true},"nullable":true,"description":"The generated records. Null on error."},"error":{"type":"string","nullable":true,"description":"Human-readable failure reason. Null on success."},"meta":{"type":"object","properties":{"count":{"type":"integer"},"seed":{"type":"string","description":"Replay this seed to reproduce the response exactly."},"deterministic":{"type":"boolean"},"country":{"type":"string"},"fictional":{"type":"boolean","enum":[true],"description":"Always true. Every record is synthetic and describes no real person."},"disclaimer":{"type":"string"},"docs":{"type":"string","format":"uri"}}}}}},"text/csv":{"schema":{"type":"string"},"example":"fullName,city\nMara Lindqvist,Uppsala"},"application/sql":{"schema":{"type":"string"}}}},"400":{"description":"A parameter failed validation. The message names the parameter and the accepted values.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"429":{"description":"Rate limited. The free tier allows roughly 120 requests per minute per IP.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"500":{"description":"Unexpected generation failure.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}}}}},"/api/v1/address":{"get":{"summary":"Fictional postal addresses","description":"Street, city, region, postal code, country and coordinates. The locality is real and the postal code is genuinely valid for it, while the street name and house number are both randomized — so the record passes region validation without resolving to a real address.","operationId":"address","tags":["generators"],"parameters":[{"name":"count","in":"query","required":false,"description":"How many records to return. Larger datasets are available from the bulk exporter, which does up to 100,000 rows.","schema":{"type":"integer","minimum":1,"maximum":100,"default":1},"example":"10"},{"name":"seed","in":"query","required":false,"description":"Any string. The same seed always returns byte-identical records, so a seeded request is reproducible and safe to commit as a test fixture. Omit it for fresh random data.","schema":{"type":"string"},"example":"checkout-suite-v3"},{"name":"country","in":"query","required":false,"description":"Country slug or ISO-3166 alpha-2 code. Controls the name pools, address format, phone format, postal-code shape and currency.","schema":{"type":"string"},"example":"de"},{"name":"state","in":"query","required":false,"description":"US state slug or two-letter code. Pins the locality so the ZIP code and area code are valid for that state. Only valid when country is the United States.","schema":{"type":"string"},"example":"CA"},{"name":"fields","in":"query","required":false,"description":"Comma-separated column keys. Switches the response from nested objects to flat, column-selected rows — the same column set the bulk exporter uses.","schema":{"type":"string"},"example":"fullName,email,city,postalCode"},{"name":"format","in":"query","required":false,"description":"Response format. csv and sql return text rather than the JSON envelope; sql emits INSERT statements against an `identities` table.","schema":{"type":"string","enum":["json","csv","sql"]},"example":"json"}],"responses":{"200":{"description":"An array of address objects.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","additionalProperties":true},"nullable":true,"description":"The generated records. Null on error."},"error":{"type":"string","nullable":true,"description":"Human-readable failure reason. Null on success."},"meta":{"type":"object","properties":{"count":{"type":"integer"},"seed":{"type":"string","description":"Replay this seed to reproduce the response exactly."},"deterministic":{"type":"boolean"},"country":{"type":"string"},"fictional":{"type":"boolean","enum":[true],"description":"Always true. Every record is synthetic and describes no real person."},"disclaimer":{"type":"string"},"docs":{"type":"string","format":"uri"}}}}}},"text/csv":{"schema":{"type":"string"},"example":"fullName,city\nMara Lindqvist,Uppsala"},"application/sql":{"schema":{"type":"string"}}}},"400":{"description":"A parameter failed validation. The message names the parameter and the accepted values.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"429":{"description":"Rate limited. The free tier allows roughly 120 requests per minute per IP.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"500":{"description":"Unexpected generation failure.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}}}}},"/api/v1/name":{"get":{"summary":"Fictional personal names","description":"Full, first, middle and last name plus prefix and initials, drawn from the requested country's own name pools rather than transliterated English ones.","operationId":"name","tags":["generators"],"parameters":[{"name":"count","in":"query","required":false,"description":"How many records to return. Larger datasets are available from the bulk exporter, which does up to 100,000 rows.","schema":{"type":"integer","minimum":1,"maximum":100,"default":1},"example":"10"},{"name":"seed","in":"query","required":false,"description":"Any string. The same seed always returns byte-identical records, so a seeded request is reproducible and safe to commit as a test fixture. Omit it for fresh random data.","schema":{"type":"string"},"example":"checkout-suite-v3"},{"name":"country","in":"query","required":false,"description":"Country slug or ISO-3166 alpha-2 code. Controls the name pools, address format, phone format, postal-code shape and currency.","schema":{"type":"string"},"example":"de"},{"name":"gender","in":"query","required":false,"description":"Pins the given-name pool.","schema":{"type":"string","enum":["male","female"]},"example":"male"},{"name":"fields","in":"query","required":false,"description":"Comma-separated column keys. Switches the response from nested objects to flat, column-selected rows — the same column set the bulk exporter uses.","schema":{"type":"string"},"example":"fullName,email,city,postalCode"},{"name":"format","in":"query","required":false,"description":"Response format. csv and sql return text rather than the JSON envelope; sql emits INSERT statements against an `identities` table.","schema":{"type":"string","enum":["json","csv","sql"]},"example":"json"}],"responses":{"200":{"description":"An array of name objects.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","additionalProperties":true},"nullable":true,"description":"The generated records. Null on error."},"error":{"type":"string","nullable":true,"description":"Human-readable failure reason. Null on success."},"meta":{"type":"object","properties":{"count":{"type":"integer"},"seed":{"type":"string","description":"Replay this seed to reproduce the response exactly."},"deterministic":{"type":"boolean"},"country":{"type":"string"},"fictional":{"type":"boolean","enum":[true],"description":"Always true. Every record is synthetic and describes no real person."},"disclaimer":{"type":"string"},"docs":{"type":"string","format":"uri"}}}}}},"text/csv":{"schema":{"type":"string"},"example":"fullName,city\nMara Lindqvist,Uppsala"},"application/sql":{"schema":{"type":"string"}}}},"400":{"description":"A parameter failed validation. The message names the parameter and the accepted values.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"429":{"description":"Rate limited. The free tier allows roughly 120 requests per minute per IP.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"500":{"description":"Unexpected generation failure.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}}}}},"/api/v1/field":{"get":{"summary":"One generated field at a time","description":"A single field per record — phone, email, username, password, guid, zip, coordinates, company or imei — using the same implementation as the corresponding generator page, so a seed replayed against either gives the same value. Values come back bare, with any surrounding context (the state a ZIP belongs to, for instance) in a separate object rather than embedded in the string.","operationId":"field","tags":["generators"],"parameters":[{"name":"type","in":"query","required":true,"description":"Which kind to generate or validate. The error message for an unknown value lists every supported one, so the endpoint is discoverable without the docs.","schema":{"type":"string","enum":["phone","email","username","password","guid","zip","coordinates","company","imei"]},"example":"phone"},{"name":"count","in":"query","required":false,"description":"How many records to return. Larger datasets are available from the bulk exporter, which does up to 100,000 rows.","schema":{"type":"integer","minimum":1,"maximum":100,"default":1},"example":"10"},{"name":"seed","in":"query","required":false,"description":"Any string. The same seed always returns byte-identical records, so a seeded request is reproducible and safe to commit as a test fixture. Omit it for fresh random data.","schema":{"type":"string"},"example":"checkout-suite-v3"},{"name":"country","in":"query","required":false,"description":"Country slug or ISO-3166 alpha-2 code. Controls the name pools, address format, phone format, postal-code shape and currency.","schema":{"type":"string"},"example":"de"}],"responses":{"200":{"description":"An array of objects with type, value and an optional context object.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","additionalProperties":true},"nullable":true,"description":"The generated records. Null on error."},"error":{"type":"string","nullable":true,"description":"Human-readable failure reason. Null on success."},"meta":{"type":"object","properties":{"count":{"type":"integer"},"seed":{"type":"string","description":"Replay this seed to reproduce the response exactly."},"deterministic":{"type":"boolean"},"country":{"type":"string"},"fictional":{"type":"boolean","enum":[true],"description":"Always true. Every record is synthetic and describes no real person."},"disclaimer":{"type":"string"},"docs":{"type":"string","format":"uri"}}}}}},"text/csv":{"schema":{"type":"string"},"example":"fullName,city\nMara Lindqvist,Uppsala"},"application/sql":{"schema":{"type":"string"}}}},"400":{"description":"A parameter failed validation. The message names the parameter and the accepted values.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"429":{"description":"Rate limited. The free tier allows roughly 120 requests per minute per IP.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"500":{"description":"Unexpected generation failure.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}}}}},"/api/v1/validate":{"get":{"summary":"Checksum and format validation","description":"Verify a value against the same pure validators the on-site tool pages use: luhn, card, iban, aba, vin and password. Returns a verdict plus structured detail — the detected card scheme, the expected VIN check digit, a password's score and character classes. National-identity validators are deliberately not exposed here. Nothing submitted is logged or stored.","operationId":"validate","tags":["generators"],"parameters":[{"name":"type","in":"query","required":true,"description":"Which kind to generate or validate. The error message for an unknown value lists every supported one, so the endpoint is discoverable without the docs.","schema":{"type":"string","enum":["luhn","card","iban","aba","vin","password"]},"example":"luhn"},{"name":"value","in":"query","required":true,"description":"The value to check, up to 256 characters. It is validated and discarded — nothing is logged or stored.","schema":{"type":"string"},"example":"GB82WEST12345698765432"}],"responses":{"200":{"description":"An object with type, input, valid and an optional details object.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","additionalProperties":true},"nullable":true,"description":"The generated records. Null on error."},"error":{"type":"string","nullable":true,"description":"Human-readable failure reason. Null on success."},"meta":{"type":"object","properties":{"count":{"type":"integer"},"seed":{"type":"string","description":"Replay this seed to reproduce the response exactly."},"deterministic":{"type":"boolean"},"country":{"type":"string"},"fictional":{"type":"boolean","enum":[true],"description":"Always true. Every record is synthetic and describes no real person."},"disclaimer":{"type":"string"},"docs":{"type":"string","format":"uri"}}}}}},"text/csv":{"schema":{"type":"string"},"example":"fullName,city\nMara Lindqvist,Uppsala"},"application/sql":{"schema":{"type":"string"}}}},"400":{"description":"A parameter failed validation. The message names the parameter and the accepted values.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"429":{"description":"Rate limited. The free tier allows roughly 120 requests per minute per IP.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"500":{"description":"Unexpected generation failure.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}}}}},"/api/v1/imei":{"get":{"summary":"Luhn-valid test IMEI numbers","description":"A 15-digit IMEI per record, plus its structural decomposition — reporting body identifier, type allocation code, serial and Luhn check digit — so validation tests can assert against the parts, not just the string. Values use a reserved test TAC and are not assigned to any real device.","operationId":"imei","tags":["generators"],"parameters":[{"name":"count","in":"query","required":false,"description":"How many records to return. Larger datasets are available from the bulk exporter, which does up to 100,000 rows.","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1},"example":"10"},{"name":"seed","in":"query","required":false,"description":"Any string. The same seed always returns byte-identical records, so a seeded request is reproducible and safe to commit as a test fixture. Omit it for fresh random data.","schema":{"type":"string"},"example":"checkout-suite-v3"}],"responses":{"200":{"description":"An array of objects with imei, rbi, tac, serial, checkDigit and body.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","additionalProperties":true},"nullable":true,"description":"The generated records. Null on error."},"error":{"type":"string","nullable":true,"description":"Human-readable failure reason. Null on success."},"meta":{"type":"object","properties":{"count":{"type":"integer"},"seed":{"type":"string","description":"Replay this seed to reproduce the response exactly."},"deterministic":{"type":"boolean"},"country":{"type":"string"},"fictional":{"type":"boolean","enum":[true],"description":"Always true. Every record is synthetic and describes no real person."},"disclaimer":{"type":"string"},"docs":{"type":"string","format":"uri"}}}}}},"text/csv":{"schema":{"type":"string"},"example":"fullName,city\nMara Lindqvist,Uppsala"},"application/sql":{"schema":{"type":"string"}}}},"400":{"description":"A parameter failed validation. The message names the parameter and the accepted values.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"429":{"description":"Rate limited. The free tier allows roughly 120 requests per minute per IP.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}},"500":{"description":"Unexpected generation failure.","content":{"application/json":{"schema":{"type":"object","required":["success","data","error"],"properties":{"success":{"type":"boolean","enum":[false]},"data":{"type":"null"},"error":{"type":"string"}}}}}}}}}}}