Test Data — entry 013 of 19

RandomUser

Verified Jul 2026

RandomUser (the Random User Generator) is a free, open-source API that returns one or more fully-formed fake user profiles — name, address, email, login credentials, and photo — as JSON, XML, CSV, or YAML depending on the format query parameter. Requests can be tuned with parameters for results count, gender, nationality, and a seed value that makes the "random" output reproducible across calls. It has no authentication and no key-based rate limit, making it a common stand-in for Lorem Ipsum-style placeholder people in demos and test fixtures.

RandomUser is a free, keyless API that returns one or more fully-formed fake user profiles -- name, address, email, login credentials, and photo -- as JSON, XML, CSV, or YAML depending on the `format` query parameter. A live probe this run confirmed `seed=` output is fully reproducible byte-for-byte across separate requests, and that an unpinned request silently tracks the newest schema (`version 1.4`) rather than a fixed one.

mock-datauser-datarandom-generatortesting
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSON, XML, CSV, YAMLResponses can be requested as JSON or XML or CSV or YAML.

GreatAPIs Score

Score94out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs14/20Documentation URL provided
Formats15/15Supports 4 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 94 on greatapis.com
<a href="https://greatapis.com/api/randomuser/"><img src="https://greatapis.com/badge/randomuser.svg" alt="Scored 94 on greatapis.com"></a>

Auth quickstart

  1. No API key or signup required for any call. Every response echoes `access-control-allow-origin: *` regardless of whether an `Origin` header is sent, so browser-side calls need no proxy; the only planning gotcha is pinning behavior (schema version, result count), not authentication.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Generate a reproducible seeded profile

GEThttps://randomuser.me/api/?seed=greatapis

200 application/json; charset=utf-8

{"results":[{"gender":"female","name":{"title":"Mademoiselle","first":"Vivien","last":"Barbier"},"location":{"street":{"number":4558,"name":"Rue du Stade"},"city":"Selzach","state":"Aargau","country":"Switzerland","postcode":1395,"coordinates":{"latitude":"-60.3874","longitude":"145.8560"},"timezone":{"offset":"-10:00","description":"Hawaii"}},"email":"vivien.barbier@example.com","login":{"uuid":"f0417dc0-9952-406a-bcd7-31e1c00c5252","username":"heavyelephant209","password":"spongebo","salt":"MthcxOTX","md5":"877c1854e6c6f17ae1f5a0c7566696ae","sha1":"56eb040f80c7e7aa3722e6635342fde627756fec","sha256":"0c9c08a5990b8843667dbce746a8e25550afc9e493d24053a8ea8313b3d56ec2"},"dob":{"date":"1995-10-26T05:08:27.173Z","age":30},"registered":{"date":"2004-04-11T20:48:21.425Z","age":22},"phone":"079 313 19 78","cell":"075 731 94 94","id":{"name":"AVS","value":"756.3077.1020.57"},"picture":{"large":"https://randomuser.me/api/portraits/women/73.jpg","medium":"https://randomuser.me/api/portraits/med/women/73.jpg","thumbnail":"https://randomuser.me/api/portraits/thumb/women/73.jpg"},"nat":"CH"}],"info":{"seed":"greatapis","results":1,"page":1,"version":"1.4"}}

Try it

Developer reference

Base URLhttps://randomuser.me
Key endpoints
  • GET/api/?results={n}
  • GET/api/?seed={seed}
  • GET/api/?format=csv

Gotchas & limits

  • `seed=` output is genuinely reproducible, not just similar: two back-to-back live `GET /api/?seed=greatapis` calls this run returned byte-identical response bodies -- safe to use as fixed fixture data in tests.
  • Requesting more than 5,000 results doesn't error or clamp at a round number -- it silently falls back to exactly 1 result instead: a live `GET /api/?results=6000` this run (and three repeat attempts) all returned a single-element `results` array in well under 100ms, far too fast to have actually generated the requested count. `results=500` and `results=5000` both work as expected, so the cliff sits between 5,000 and 6,000.
  • `results=0` is not 'return nothing' -- it's treated the same as omitting the parameter and returns exactly 1 result, confirmed live this run.
  • An unpinned request silently tracks the newest schema: the `info.version` field in every response above reads `"1.4"` with no version requested; pin `/api/1.3/` (or whichever version) in the path if a schema change would break a downstream test.
  • `format=csv` (and `xml`/`yaml`) changes the wire format but not the field set: a live `GET /api/?format=csv&results=1` this run returned the same dotted-path fields (`name.first`, `location.city`, ...) as flattened CSV columns, including a Finnish `id.value` of the literal string `NaNNA456undefined` when the generated nationality has no real national-ID scheme -- don't assume `id.value` is always numeric or even well-formed.