For developers

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

POST/api/generate

The 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.

  • generatorId required. The slug from any namer's page address, like elf-names.
  • count optional. How many names to return, 1 to 50. Defaults to 10.
  • gender optional. male, female or neutral on namers that carry gendered forms.
  • seed optional integer. The same seed with the same generatorId and count returns the identical batch, so results are reproducible.
  • dialect optional 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"}'
GET/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"
GET/api/popular

The 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"
GET/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_ERROR a malformed body, a count outside 1 to 50, or an unrecognized gender.
  • 404 NOT_FOUND the id does not match any namer or note.
  • 429 RATE_LIMITED an 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.