Generator · Danish data

Danish person

Endpoint GET /v1/dk/person

What it covers

Returns a mutually consistent synthetic Danish person: given name(s), surname, initials, birth date, and a matching CPR. Takes the same inputs as `/v1/dk/cpr` — `sex`, any combination of age/birth-date filters, `checksum`, and `format` (contradictory combinations are rejected with a 400). Set `invalid=true` for a person whose CPR has a deliberately wrong mod-11 check (birth date and sex stay valid). `edge=true` also makes second given names and double-barrelled surnames far more likely. Set `caseStrict=false` to deliberately mangle the name/surname casing.

Parameters

ParameterTypeDescription
atAgeintegerExact age in years at request time.
bornAfterstringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$Born after this date or fragment (YYYY, YYYY-MM, YYYY-MM-DD).
bornBeforestringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$Born before this date or fragment (YYYY, YYYY-MM, YYYY-MM-DD).
bornOnstringpattern ^\d{4}(?:-\d{2}(?:-\d{2})?)?$Born on a date or within a fragment: YYYY, YYYY-MM, or YYYY-MM-DD.
caseStrictbooleanDefaults to true (proper casing). Set false to deliberately mangle the casing of name and surname (all-lower, all-upper, or random); initials stay proper uppercase.
checksum"modulus-11" | "none"Checksum standard: `modulus-11` (default) or `none` (post-2007 model).
countinteger1–1000Number of records to return, 1–1000 (your plan may lower this). Omitted returns a single record; set it for a batch.
edgebooleanRestrict output to edge-case values.
extremebooleanReturn a correct person whose name and surname are wrapped in a hostile encoding (untrimmed whitespace, invisible/zero-width characters, BOM, homoglyph letters, or bidi/combining marks). initials, birthDate, and the national identifier stay clean.
format"plain" | "with-hyphen"Rendering: bare 10 digits (default) or `DDMMYY-SSSS`.
invalidbooleanReturn a CPR with a deliberately wrong mod-11 check; date/sex stay valid.
olderThanintegerMinimum age in years at request time.
seedintegerInteger seed for reproducible output: the same seed always yields the same record.
sex"m" | "f"Encoded sex: "m" or "f".
youngerThanintegerMaximum age in years at request time.

Response fields

FieldTypeDescription
namestringGiven (first) name(s), agreeing with the encoded sex.
surnamestringSurname, e.g. `Nielsen`.
initialsstringUppercase initials of name and surname, no dots, e.g. `AN`.
birthDatestringThe birth date, ISO `YYYY-MM-DD`.
cprstringThe matching CPR, rendered per the requested format.

Other generators for Denmark

See all generators for Denmark →

The same kind of identifier elsewhere

Try it

Generate a live example below — every response is valid by format and entirely synthetic.