---
title: "Export your unlocked leaks to CSV/TXT/JSON"
method: POST
path: "/profile/unlocked/export"
tags: ["Unlocked Leaks"]
---

# Export your unlocked leaks to CSV/TXT/JSON

`POST /profile/unlocked/export`

Queue an export of your unlocked leaks with optional filters. The job runs asynchronously and the file will appear in the Exports section when ready.

Body (JSON)
- `search` optional free-text filter applied to URL or username.
- `is_email` optional boolean: `true` emails only, `false` usernames only, `null` both.
- `list_id` optional list id filter.
- `list_none` optional boolean to only include leaks without list.
- `unlocked_at_min` optional ISO 8601 timestamp (with timezone) to include items unlocked at or after this instant.
- `status` optional remediation status: `new`, `in_progress`, `fixed` or `accepted_risk`. Omit it to export every status. `new` also matches records that were never triaged.

Query parameters
- `format` optional output format: `csv` (default), `txt`, or `json`.

Limits
- You can have at most 5 exports with status PENDING or IN_PROGRESS.

Columns
URL, USERNAME, PASSWORD, ADDED_AT, UNLOCKED_AT, STATUS. The TXT format stays `url:username:password`, one record per line.

Response
`ExportResponse` with `status`, `message`, and `export_id`.

## Query parameters

- `format` 'csv' | 'txt' | 'json'

## Request body

- UnlockedExportRequest
  - `search` string, nullable
  - `is_email` boolean, nullable
  - `unlocked_at_min` string, date-time, nullable
  - `list_id` integer, nullable
  - `list_none` boolean, nullable
  - `status` 'new' | 'in_progress' | 'fixed' | 'accepted_risk', nullable — Remediation status filter, same values as the unlocked listing. Omit to export every status.

## Response `200`

Export queued successfully.

- ExportResponse
  - `status` string, required — Export job status: 'queued', 'processing', 'completed', or 'failed'.
  - `message` string, required — Human-readable status message.
  - `export_id` integer, required — ID of the export job. Use this to check status or download the result.

## Other responses

- `400` — Maximum concurrent exports reached.
- `401` — Authentication required, or invalid/expired API key.
- `422` — Validation Error

## Changes

- **2026-09-04** `eb219e94d077` — 1 info
  - added the new optional request property `status`

[Change history](https://skmtc.dev/leakradar/apis/leakradar-io-api/changes/profile/unlocked/export/post.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/2083d6cb0a44?raw)
