A DOI (Digital Object Identifier) is the persistent handle that points to a journal article, dataset, or other scholarly object. This tool produces strings that follow the exact DOI syntax — 10.registrant/suffix — so they validate and parse like the real thing, while resolving to nothing. That makes them safe placeholders for testing citation managers, reference parsers, and research database imports.
How it works
A DOI has two parts separated by a slash. The prefix always begins with the directory code 10. followed by a registrant number assigned to a publisher. The suffix is an opaque string the publisher chooses freely. This generator builds each piece:
- The registrant is a random 4 to 5 digit number that never starts with zero.
- The suffix is generated in the style you select — opaque alphanumeric, an Elsevier-like
j.word.year.number, or a Springer-likes12345-19-1234-5numeric code. - The parts are joined as
10.<registrant>/<suffix>, optionally wrapped as ahttps://doi.org/URL.
Why suffix style matters
Publishers make very different choices about how to format the suffix, and a citation parser that only handles one style will break on the others. The three styles this tool offers cover the main real-world families:
- Opaque alphanumeric — a random string like
a7f3z2q. Used by many smaller publishers and preprint servers. No internal structure for a parser to rely on. - Journal-style — dotted fields like
j.word.2021.10034. Resembles the Elsevier pattern where the code encodes journal abbreviation, year, and article number. Tests parsers that extract year or journal from the DOI itself. - Numeric — a hyphenated code like
s10234-21-0056-3. Mirrors the Springer format. Tests parsers that treat everything after the slash as numeric segments.
Generating a mix of all three in a single batch is the most useful approach when hardening a bibliographic parser.
Illustrative example
For example, a batch of three generated DOIs in journal style might look like:
10.48291/j.nexus.2020.100432
10.71053/j.cortex.2019.33811
10.52178/j.synapse.2021.77209
Each starts with 10., followed by a 4–5 digit registrant, then the suffix. Wrapping these as resolver URLs gives https://doi.org/10.48291/j.nexus.2020.100432 — a valid link shape that a citation manager will accept but that returns a not-found response when clicked, which is exactly the safe behaviour you want for test data.
Practical guidance
- Roundtrip testing. Paste a generated DOI into your parser, extract the registrant and suffix separately, then verify the parts round-trip back to the original string.
- URL form. Many reference managers store DOIs as full
https://doi.org/...links internally. Enable the URL option to match the format your software actually persists. - Never store these. A random registrant/suffix might coincidentally match a registered DOI in the future. Keep generated DOIs strictly in test fixtures and never propagate them to a bibliographic record visible to end users.