---
title: "List your unlocked leaks with advanced filters"
method: GET
path: "/profile/unlocked/advanced"
tags: ["Unlocked Leaks"]
---

# List your unlocked leaks with advanced filters

`GET /profile/unlocked/advanced`

## Request

- Base URL: `https://api.leakradar.io`
- URL: `https://api.leakradar.io/profile/unlocked/advanced`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/leakradar/apis/leakradar-io-api/docs/profile/unlocked/advanced/get.ts> (a function with typed inputs; its response is checked against the schema)

Return a paginated list of your unlocked leaks filtered by the same fields supported by `LeakSearchFilters`. Filters are passed as query parameters. Optional `search` can further narrow results.

Pagination
- `page` starts at 1.
- `page_size` is 1 to 1000 (default 100).

Filtering
- Any combination of `LeakSearchFilters` fields.
- `search` optional free-text filter applied to URL or username.
- `list_id` optional integer: filter leaks assigned to this list.
- `list_none` optional boolean: filter leaks with no list assignment.

Response semantics
- `total` and `total_unlocked` both equal the number of unlocked items matching the filters.

## Query parameters

- `page` integer: Page number (starts at 1).
- `page_size` integer: Items per page (1–1000, default 100).
- `search` string, nullable: Optional free-text filter on URL or username.
- `list_id` integer, nullable: Filter by list id.
- `list_none` boolean, nullable: Only leaks without a list when true.
- `status` string, nullable: Filter by remediation status: new, in_progress, fixed, accepted_risk
- `username` string[], nullable: Username values to match.
- `username_not` string[], nullable: Username values to exclude.
- `username_match_type` 'contains' | 'starts_with' | 'ends_with'
- `username_not_match_type` 'contains' | 'starts_with' | 'ends_with'
- `password` string[], nullable: Password values to match.
- `password_not` string[], nullable: Password values to exclude.
- `password_match_type` 'contains' | 'starts_with' | 'ends_with'
- `password_not_match_type` 'contains' | 'starts_with' | 'ends_with'
- `url` string[], nullable: URL values to match.
- `url_not` string[], nullable: URL values to exclude.
- `url_match_type` 'contains' | 'starts_with' | 'ends_with'
- `url_not_match_type` 'contains' | 'starts_with' | 'ends_with'
- `url_domain` string[], nullable: URL domain values to match.
- `url_domain_not` string[], nullable: URL domain values to exclude.
- `url_domain_match_type` 'contains' | 'starts_with' | 'ends_with'
- `url_domain_not_match_type` 'contains' | 'starts_with' | 'ends_with'
- `url_host` string[], nullable: URL host values to match.
- `url_host_not` string[], nullable: URL host values to exclude.
- `url_host_match_type` 'contains' | 'starts_with' | 'ends_with'
- `url_host_not_match_type` 'contains' | 'starts_with' | 'ends_with'
- `username_hash` string[], nullable: Username SHA-1 hash prefix (hex).
- `password_hash` string[], nullable: Password SHA-1 hash prefix (hex).
- `url_scheme` string[], nullable: URL scheme(s) to include (multi).
- `url_scheme_not` string[], nullable: URL scheme(s) to exclude (multi).
- `url_port` integer[], nullable: URL port(s) to include (multi).
- `url_port_not` integer[], nullable: URL port(s) to exclude (multi).
- `url_tld` string[], nullable: URL TLD(s) to include (multi).
- `url_tld_not` string[], nullable: URL TLD(s) to exclude (multi).
- `is_email` boolean, nullable: Identifier type filter: true=email only, false=username only, null=both.
- `email_domain` string[], nullable: Email domain values to match.
- `email_domain_not` string[], nullable: Email domain values to exclude.
- `email_domain_match_type` 'contains' | 'starts_with' | 'ends_with'
- `email_domain_not_match_type` 'contains' | 'starts_with' | 'ends_with'
- `email_host` string[], nullable: Email host values to match.
- `email_host_not` string[], nullable: Email host values to exclude.
- `email_host_match_type` 'contains' | 'starts_with' | 'ends_with'
- `email_host_not_match_type` 'contains' | 'starts_with' | 'ends_with'
- `email_tld` string[], nullable: Email TLD(s) to include (multi).
- `email_tld_not` string[], nullable: Email TLD(s) to exclude (multi).
- `password_strength` 'too_weak' | 'weak' | 'medium' | 'strong'
- `added_from` string, date-time, nullable: Only include leaks indexed on/after this UTC datetime.
- `added_to` string, date-time, nullable: Only include leaks indexed on/before this UTC datetime.
- `force_and` boolean, nullable: When true, values within each field are combined with AND instead of OR.

## Response `200`

Unlocked leaks returned successfully.

- PaginatedUnlockedLeaksResponse
  - `items` UnlockedLeakDetails[], required: List of unlocked leak records for the current page.
    - `id` string, required: Unique leak identifier.
    - `url` string, required: Source URL where the credentials were found.
    - `username` string, required: Leaked username or email address.
    - `password` string, nullable: Leaked password (plaintext). Null when the user has enabled `hide_passwords` in their preferences.
    - `password_strength` integer, required: Password strength raw score (integer, 0+). Categories: too_weak (0-2), weak (3-4), medium (5-7), strong (8+).
    - `unlocked` boolean: Always true for unlocked items.
    - `is_email` boolean, required: True if the username is an email address.
    - `added_at` string, date-time, required: Date when this leak was added to the database.
    - `unlocked_at` string, date-time, required: Date when this item was unlocked by the current account.
    - `auto_unlocked` boolean: Whether this item was automatically unlocked (via auto_unlock or notification).
    - `auto_unlocked_by` integer, nullable: ID of the notification that triggered the auto-unlock, if applicable.
    - `list_id` integer, nullable: ID of the unlocked list this item is assigned to.
    - `comment` string, nullable: User-defined comment on this unlocked item.
    - `status` string: Remediation status: new, in_progress, fixed, accepted_risk.
  - `total` integer, required: Total number of matching records.
  - `total_unlocked` integer, required: Total number of unlocked records.
  - `page` integer, required: Current page number.
  - `page_size` integer, required: Number of items per page.

## Other responses

- `401`: Authentication required.
- `404`: Page out of range.
- `422`: Validation Error

## Changes

- **2026-09-01** `82a99c608e1a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/leakradar/apis/leakradar-io-api/changes/profile/unlocked/advanced/get.md)

---

[API](https://skmtc.dev/leakradar/apis/leakradar-io-api.md) - [All operations](https://skmtc.dev/leakradar/apis/leakradar-io-api/llms.txt) - [OpenAPI document](https://skmtc.dev/leakradar/apis/leakradar-io-api/revisions/8dcd4b54cc4a?raw)
