Nomancy

2–4 initials or a username. Prefix short usernames with @. Names, initials, and name prefixes may be recognized; numbers are ignored.
Style
Age

Age uses partial birth-year cohort data from Armenia, Austria, New South Wales, Ontario, British Columbia and Alberta, Switzerland, Chile, France, Britain (UK), French Guiana, Guadeloupe, Ireland, Kazakhstan, Martinique, New Zealand, Puerto Rico, Réunion, United States, Montevideo (Uruguay), and Mayotte. Coverage varies by birth year.

API

Send 2–4 initials or a username and get a ranked list of possible names. No API key required.

curl '<your-nomancy-url>/api/v1/guess?initials=JRB&country=CA&limit=3'

For a username, replace initials=JRB with username=alexjsmith. Send one or the other. Username parsing is experimental; a leading @ is optional.

Options

country
Country code, such as CA or US. Omit for worldwide guesses.
order
Order of the initials: given name first, or surname first.first-last · last-firstDefault: first-last
sex
Name style: any, feminine-associated, or masculine-associated.any · female · maleDefault: any
ageGroup
Optional age hint. Birth-year coverage is partial and varies by country.any · under-30 · 30-59 · 60-plusDefault: any
limit
Guesses per page, from 1 to 50.Default: 10

Read the response

guesses lists country-supported matches first, then worldwide alternatives. Send nextCursor as cursor to continue; null means the end.

Request limits

60 requests per minute and 1,000 per day per client, with bursts capped at 12 in 10 seconds. The website shares this allowance. Service-wide caps also apply. On 429, wait the number of seconds in Retry-After before trying again.

When it goes wrong

Errors return {"error":{"code":"…","message":"…"}}. A 400 means the input or cursor needs correcting; the message explains why.

Developer resources

GET /api/v1/options lists countries, filters, defaults, and request limits. The Data page covers sources, credits, and coverage.

JSON requests

POST /api/v1/guess accepts the same fields as JSON with Content-Type: application/json. Browser CORS is enabled without credentials.

Detailed responses

Add details=true for structured name parts, applied filters, coverage, and username parsing. This format uses pagination.nextCursor. Keep filters unchanged between pages; page size and response format may change. There are no confidence scores.

Location hints

useLocation=true uses a country hint from a configured trusted hosting edge. An explicit country wins; unavailable location falls back worldwide. No external IP lookup is made.

Other errors

408 means a body took over five seconds, 413 exceeds 4 KB, 415 needs JSON, and 422 means the search is too expensive. 503 means guessing is temporarily unavailable; 500 is a server failure.

FAQ

Will this be maintained? Is this serious? Should I use this in production?
Absolutely not.

Nomancy is rigorously unscientific. The data is flawed, incomplete, and uneven. Being right is exceedingly unlikely.