---
title: "ULID & NanoID Generator"
description: "Generate ULIDs, 26-character time-sortable ids, or NanoIDs, short URL-safe ids with a custom alphabet and length. Batches of up to 100, crypto-random, in your browser. No signup."
url: https://findutils.com/developers/id-generator/
category: developers
---

# ULID & NanoID Generator

Generate ULIDs, 26-character time-sortable ids, or NanoIDs, short URL-safe ids with a custom alphabet and length. Batches of up to 100, crypto-random, in your browser. No signup.

**Use this tool:** [ULID & NanoID Generator](https://findutils.com/developers/id-generator/)

## Programmatic access

- REST id `ulid-generate`: POST https://api.findutils.com/api/tools/ulid-generate/execute (reference: https://findutils.com/api/ulid-generate/)
- MCP tool `ulid_generate` on https://mcp.findutils.com (reference: https://findutils.com/mcp/ulid-generate/)

## Why use a ULID or NanoID instead of a UUID?

A UUID v4 is random, so a database that indexes by it inserts in random places and its B-tree fragments. A ULID puts a millisecond timestamp first and sorts by creation time, which keeps inserts at the end of the index and makes the id useful in a URL or a log line. A NanoID is the opposite trade: it is short, URL-safe by default, and lets you pick the alphabet and length when a 36-character UUID is too long for a share link or a coupon code. This page makes both, in batches, from the same modules the REST API and the MCP server run.

## Frequently Asked Questions

### What is a ULID?

A Universally Unique Lexicographically Sortable Identifier: 128 bits, written as 26 characters of Crockford base32 (no I, L, O or U, so it reads well aloud). The first 48 bits are a millisecond Unix timestamp, the remaining 80 are random. Two ULIDs made a millisecond apart sort in creation order as plain strings.

### What is a NanoID?

A short random id in the style of the npm nanoid package: each character is drawn from an alphabet with cryptographically secure random bytes. The default is 21 characters from a 64-character URL-safe alphabet, which gives collision odds comparable to a UUID v4 in a third of the length.

### When should I use a ULID and when a NanoID?

Use a ULID for database keys, event ids and anything you want to sort or paginate by time without a separate timestamp column. Use a NanoID for short links, invite codes, public handles and anywhere length or a specific alphabet matters. Neither should be a secret on its own.

### Can I choose the NanoID alphabet and length?

Yes. Edit the Alphabet field (at least two characters) and set the length from 2 to 256. A digits-only alphabet gives numeric codes; removing look-alike letters gives codes that are easy to read over the phone. The collision odds fall as the alphabet shrinks or the length drops, so lengthen the id when you shorten the alphabet.

### Are the ids cryptographically random?

Yes. Both generators take their random bits from the Web Crypto API (crypto.getRandomValues), in your browser on this page and in the runtime on the REST and MCP surfaces. Nothing is seeded from the clock except the ULID timestamp, which is public by design.

### Does the ULID & NanoID Generator require a signup?

No. It is available with no signup and no usage limits. The ids are generated in your browser, so none of them are stored or sent anywhere.

### Can I generate ids from a script or an AI client?

Yes. The same functions are the REST tools ulid-generate and nanoid-generate at api.findutils.com and the MCP tools ulid_generate and nanoid_generate at mcp.findutils.com. ULID takes a count and an optional timestamp; NanoID takes a count, a size and an alphabet.

### Do ULIDs made in the same millisecond stay sorted?

Not in this generator. The ULID specification has an optional monotonic mode that increments the random part within one millisecond; this tool draws fresh random bits for each id, so two ids from the same millisecond share a prefix but are not ordered between themselves. Across milliseconds they always sort correctly.

### Is a ULID or NanoID a good secret token?

A NanoID of 21 or more characters from the default alphabet has about 126 bits of randomness and works as a session token or a one-time link. A ULID exposes its creation time and has 80 random bits, so keep it as an identifier, not a secret.

### How do I make a UUID instead?

Open the UUID Generator, which makes random v4, time-ordered v7, time-based v1 and nil UUIDs in the standard 36-character form. v7 and ULID solve the same sorting problem; pick by the format your database and libraries expect.

## Related Tools

- [UUID Generator](https://findutils.com/generate/uuid-generator/)
- [JWT Decoder](https://findutils.com/developers/jwt-decoder/)
- [Base64 Encoder](https://findutils.com/developers/base64-encoder/)
- [JSON Faker](https://findutils.com/developers/json-faker/)
- [Random Picker](https://findutils.com/generate/random-picker/)
- [Password Generator](https://findutils.com/security/password-generator/)
