sqids
Generate YouTube-like ids from numbers.
Decision gist · record as of 2026-08-14
Yes. Sqids is a straightforward, dependency-free library for a specific and common need—converting numbers to short IDs and back. It has no known vulnerabilities, permissive licensing, and broad Python version support. The aging maintenance status is not a blocker for a stable, focused tool. Install it if you need URL-safe ID generation; skip it if you need cryptographic security or true uniqueness guarantees.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Note: multiple IDs can decode to the same number sequence; if canonical IDs matter, re-encode decoded numbers and verify the result matches.
- Low friction: pure Python wheel with no runtime dependencies.
- Maintenance status is aging (458 days since last release), but the package is stable and supports current Python versions.
License · maintenance · safety
permissive license (permissive) — MIT license is permissive; you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.
last release 2025-05-13 (458 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 614,336 downloads/mo, #5,748 on PyPI
Alternatives
Verify before relying
pip install sqids
from sqids import Sqids
sqids = Sqids()
id = sqids.encode([1, 2, 3]) # "86Rf07"
numbers = sqids.decode(id) # [1, 2, 3]- Performance characteristics for encoding/decoding large batches of numbers or very large number values
- Whether the blocklist feature covers all common profanity or requires custom configuration for specific domains
What it is and what it does
Sqids is a lightweight library for bidirectional conversion between numbers and short, unique, URL-safe identifiers. It takes one or more non-negative numbers and generates a compact string ID that can be decoded back to the original numbers. The library is designed for public-facing use cases like link shortening and event tracking, where you need readable IDs that don't reveal sensitive information but can be looked up quickly in a database.
The package offers several customization options: you can set a minimum ID length for uniformity, provide a custom alphabet to randomize output, and block specific words from appearing in generated IDs. It's implemented as a pure Python module with no external dependencies, making it simple to integrate. The algorithm is deterministic—the same input always produces the same ID—but the library explicitly warns that multiple different number sequences can theoretically decode to the same ID, so canonical verification may be needed in strict applications.
Use it for
- Generate short, shareable links for public URLs without exposing internal database IDs
- Create event tracking IDs for internal systems that can be quickly decoded for database lookups
- Build URL-safe identifiers for APIs where sequential or predictable IDs are undesirable
- Encode multiple related numbers into a single compact token for reference in logs or reports
- Prevent profanity or blocked words from appearing in auto-generated public-facing IDs
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Sqids is a straightforward, dependency-free library for a specific and common need—converting numbers to short IDs and back. It has no known vulnerabilities, permissive licensing, and broad Python version support. The aging maintenance status is not a blocker for a stable, focused tool. Install it if you need URL-safe ID generation; skip it if you need cryptographic security or true uniqueness guarantees.
Install
sqids on PyPI
Before you install
Low friction: pure Python wheel with no runtime dependencies. Maintenance status is aging (458 days since last release), but the package is stable and supports current Python versions.
Note: multiple IDs can decode to the same number sequence; if canonical IDs matter, re-encode decoded numbers and verify the result matches.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install sqids
from sqids import Sqids
sqids = Sqids()
id = sqids.encode([1, 2, 3]) # "86Rf07"
numbers = sqids.decode(id) # [1, 2, 3]
Verify before relying
- Performance characteristics for encoding/decoding large batches of numbers or very large number values
- Whether the blocklist feature covers all common profanity or requires custom configuration for specific domains
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Aging 458 days since the last release |
| First released | |
| Downloads | 614,336 / month, #5,748 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: sqids-0.5.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “encode numbers to short ids”
- sqidsSqids encodes numbers into short, unique, URL-safe IDs and decodes…
- hashidsGenerates short, unique, non-sequential hashes from integers,…
- django-sqidsAdds a Django model field that encodes primary keys as short,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also hashids · django-sqids · shortuuid · nanoid · django-hashids · snowflake-id · cuid · typeid-python · blurhash · python-codicefiscale