# What Identifier Types Does Maigret Support Besides Usernames?

> Discover the nine identifier types Maigret supports beyond usernames, including Google GAIA and Steam numeric IDs. Use the --id-type CLI option to specify.

- Repository: [Soxoj/maigret](https://github.com/soxoj/maigret)
- Tags: deep-dive
- Published: 2026-04-30

---

**Maigret supports nine distinct identifier types—including Google GAIA IDs, Steam numeric IDs, and VK user IDs—defined in the `SUPPORTED_IDS` constant within [`maigret/checking.py`](https://github.com/soxoj/maigret/blob/main/maigret/checking.py) and accessible via the `--id-type` CLI option.**

While Maigret is commonly known for username enumeration, the soxoj/maigret repository actually supports platform-specific identifiers that bypass screen name variations. These alternative identifiers enable direct searches for internal numeric IDs and platform-specific tokens across hundreds of supported sites.

## Supported Identifier Types in Maigret

The complete list of supported identifiers is maintained in [`maigret/checking.py`](https://github.com/soxoj/maigret/blob/main/maigret/checking.py) lines 36-46 within the `SUPPORTED_IDS` dictionary. According to the source code and documentation in `docs/source/supported-identifier-types.rst`, Maigret recognizes the following identifier categories:

- **username**: The default screen name or handle used on a service.
- **gaia_id**: Google’s internal numeric identifier, formerly visible in Google+ profile URLs.
- **vk_id**: Numeric user ID for VK.com profiles.
- **ok_id**: Numeric identifier for OK.ru (Odnoklassniki) users.
- **steam_id**: Numeric Steam user identifier used across Valve’s gaming platform.
- **yandex_public_id**: Alphanumeric public ID used by Yandex services and YaSeeker.
- **wikimapia_uid**: Numeric user ID specific to Wikimapia.org.
- **uidme_uguid**: Numeric identifier for uID.me profiles.
- **yelp_userid**: Internal user identifier assigned by Yelp.

These identifiers map to specific URL patterns and API endpoints within the site database, allowing Maigret to query platforms using their native ID formats rather than public usernames.

## How Identifier Types Work in the Source Code

In [`maigret/checking.py`](https://github.com/soxoj/maigret/blob/main/maigret/checking.py), the `SUPPORTED_IDS` constant serves as the master registry for valid identifier types. This dictionary validates user input before execution. When you specify an identifier type via the command line, [`maigret/maigret.py`](https://github.com/soxoj/maigret/blob/main/maigret/maigret.py) parses the `--id-type` argument and passes it to the core checking logic.

The Python API accepts these identifiers through the `id_type` parameter in the `maigret` function, which then applies the appropriate URL templates from the site database based on the selected identifier schema.

## Using Alternative Identifiers in Practice

### Command Line Examples

Specify the identifier type using the `--id-type` flag followed by the target value:

```bash

# Search by Google GAIA ID

maigret 112233445566778899 --id-type gaia_id

# Query a VK.com numeric profile ID

maigret 123456789 --id-type vk_id

# Search using Yandex public ID format

maigret "AB-CDE-1234" --id-type yandex_public_id

```

### Python API Integration

When integrating Maigret into Python applications, pass the identifier type to the `maigret` function:

```python
from maigret.maigret import maigret

# Search for a Steam ID

results = await maigret(
    username="76561198000000000",
    site_dict=site_database,
    logger=my_logger,
    id_type="steam_id",
)

```

## Summary

- Maigret supports **nine identifier types** including platform-specific numeric IDs and alphanumeric tokens.
- Valid types are defined in **[`maigret/checking.py`](https://github.com/soxoj/maigret/blob/main/maigret/checking.py)** within the **`SUPPORTED_IDS`** constant.
- Use the **`--id-type`** CLI option to specify non-username identifiers like `gaia_id`, `steam_id`, or `vk_id`.
- The Python API accepts identifier types through the **`id_type`** parameter in the `maigret` function.
- Documentation in **`docs/source/supported-identifier-types.rst`** provides the authoritative reference for each identifier format.

## Frequently Asked Questions

### What is the default identifier type in Maigret?

The default identifier type is **username**, which instructs Maigret to treat the input as a standard screen name or handle across supported platforms. This default is applied when the `--id-type` parameter is omitted from CLI commands or when `id_type` is not specified in Python API calls.

### Can I search multiple identifier types simultaneously in a single command?

No, Maigret processes one identifier type per execution. To search across different identifier formats—such as both a `gaia_id` and a `steam_id`—you must run separate commands or API calls for each identifier type, as each requires distinct URL templates and validation logic defined in the site database.

### Where is the complete list of supported identifier types documented?

The canonical documentation resides in **`docs/source/supported-identifier-types.rst`** within the repository. The programmatic source of truth is the **`SUPPORTED_IDS`** dictionary in **[`maigret/checking.py`](https://github.com/soxoj/maigret/blob/main/maigret/checking.py)** (lines 36-46), which contains the active registry of identifier schemas recognized by the tool.

### How do I search for a Steam ID or VK numeric ID specifically?

Pass the numeric value to Maigret using the `--id-type` flag with the appropriate key. For Steam, use `--id-type steam_id` (e.g., `maigret 76561198000000000 --id-type steam_id`). For VK.com profiles, use `--id-type vk_id` followed by the numeric user ID. These platform-specific identifiers bypass username variations and query the platforms' internal ID systems directly.