A free fantasy name generator API
The API is free: no key, no signup, CORS open to any origin. All 1,783 generators on cuename answer over plain JSON, and a request that carries a seed returns the same names every time, because every name comes from procedural generation, not AI. Whatever it returns is yours to use, commercial work included.
Base URL
cuename.com/api
Auth
None, no key
CORS
Open to any origin
Rate limit
100 requests a minute per IP
The endpoints
Four calls cover everything
/api/generateThe heart of the API. Send a namer's id and it answers with a fresh batch. The reply carries names, each with its name, gender and source id, plus a count and the time the batch took.
generatorIdrequired. The slug from any namer's page address, like elf-names.countoptional. How many names to return, 1 to 50. Defaults to 10.genderoptional. male, female or neutral on namers that carry gendered forms.seedoptional integer. The same seed with the same generatorId and count returns the identical batch, so results are reproducible.dialectoptional integer. Narrows the namer's banks to one consistent regional flavor, and the same number always lands on the same flavor.
curl -X POST https://cuename.com/api/generate \
-H "Content-Type: application/json" \
-d '{"generatorId":"elf-names","count":5,"gender":"female"}'/api/search?q=Text search across the whole archive. Returns results, each entry with id, name, description, category, subcategory and supported genders. Queries shorter than two characters come back empty.
curl "https://cuename.com/api/search?q=elf"/api/popularThe namer ids drawing the most cues on the live site, as ids. An optional limit accepts 1 to 24 and defaults to 8. Feed any id straight back into /api/generate.
curl "https://cuename.com/api/popular?limit=8"/api/editorial/{id}A short editor's note on a namer's style, keyed by the same id used for cueing. Returns id and text, or a 404 when no note exists. Responses cache for a day.
curl "https://cuename.com/api/editorial/elf-names"When things go wrong
Errors are plain JSON too
Every failure comes back as a small JSON body with an error message and a stable code.
{"error":"count must be 1-50","code":"VALIDATION_ERROR"}400 VALIDATION_ERRORa malformed body, a count outside 1 to 50, or an unrecognized gender.404 NOT_FOUNDthe id does not match any namer or note.429 RATE_LIMITEDan IP ran past the per-minute window. Honor Retry-After and try again.
Fair use
Free, with one ask
There is no key and no quota to buy. Basic rate limits apply, a few thousand requests an hour per IP, the same as the terms describe. The one courtesy we ask: when you ship something built on this API, link back to cuename.com somewhere your users can see it. If your project needs more headroom than the limits allow, write first through the contact page.
Tabletop
Foundry VTT module
A ready-made Foundry VTT module wraps this API for the virtual tabletop, so names land directly in your game. It lives at integrations/foundry in the cuename GitHub repo and will be published to the Foundry package registry.
Chat
Discord slash commands
The server also speaks Discord's interactions webhook at POST /api/discord/interactions, built for a slash-command bot. Register a Discord application, point its Interactions Endpoint URL at https://cuename.com/api/discord/interactions, and have the server operator set DISCORD_PUBLIC_KEY to the application's public key so signatures verify. Successful rolls post publicly in the channel; errors stay ephemeral, visible only to whoever ran the command.
/cue generator:<namer id or search words> count:<1-15, optional> gender:<male|female|neutral, optional>
/kit seed:<1-2147483647, optional> theme:<one of twelve tongues, optional>A hosted instance of this bot already exists. Server admins can add it with one click, no setup, and the generator field autocompletes as you type: add cuename to your Discord server.
Questions
Quick answers
What are the rate limits?
About 100 requests a minute per IP, which works out to a few thousand an hour if you pace them. Past the per-minute window the API answers 429 with a stable RATE_LIMITED code and a Retry-After header: back off and retry. Projects that need more headroom can write through the contact page.
Can I use the names commercially?
Yes. Every name the API returns is yours to ship, commercial work included. The one courtesy we ask is a visible link back to cuename.com. Appreciated, never required.
Can I get the same names twice?
Yes. Send a seed with /api/generate and the same generatorId, count and seed return the identical batch every time. Leave the seed out and every call draws fresh.
Is this AI?
No. Nothing here touches a language model. Every generator is procedural, drawing from its own name banks through a deterministic engine, which is exactly why a seeded request reproduces.