> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectdiscovery.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get leak information by ID

> Retrieve detailed leak information by leak ID. Passwords are unmasked after domain verification. See [Domain Verification](/cloud/credential-monitoring#domain-verification) for setup instructions.

## Overview

Retrieve detailed information for a specific leak by its ID. This endpoint provides access to complete leak details including unmasked passwords after domain verification.

<Info>
  **Password Unmasking**: Passwords are displayed unmasked after [domain verification](/cloud/credential-monitoring#domain-verification). Without verification, passwords appear as `***MASKED***`.
</Info>

## Authentication & Authorization

### Access Control

* **Personal leaks**: Always accessible if the leak belongs to your email
* **Employee/Customer leaks**: Requires domain verification for the associated domain
* **Password unmasking**: Requires domain verification

### Leak ID Format

The leak ID must be a 32-character MD5 hash (e.g., `b3652f2555841f7652badd9804859f4e`).

## Request Body

```json theme={null}
{
  "leakid": "b3652f2555841f7652badd9804859f4e"
}
```

## Response Examples

### Successful Response

```json theme={null}
{
  "success": true,
  "data": {
    "id": "b3652f2555841f7652badd9804859f4e",
    "url": "https://facebook.com/login",
    "username": "john.doe@example.com",
    "password": "mypassword123",
    "device_ip": "192.168.1.100",
    "hostname": "JOHN-LAPTOP",
    "os": "Windows 10 Pro",
    "malware_path": "C:\\Users\\John\\AppData\\Roaming\\malware.exe",
    "country": "United States",
    "log_date": "2023-03-15T10:30:00Z",
    "hardware_id": "HW-ABC123DEF456",
    "domain": "example.com",
    "email_domain": "example.com",
    "fetched_at": "2023-03-16T08:00:00Z",
    "status": "open"
  }
}
```

### Error Responses

#### Invalid Leak ID Format

```json theme={null}
{
  "success": false,
  "message": "Invalid leak ID format"
}
```

#### Leak Not Found

```json theme={null}
{
  "success": false,
  "message": "Leak not found"
}
```

#### Access Denied

```json theme={null}
{
  "message": "Access denied: you don't have access to this leak"
}
```

## Data Fields Explained

| Field          | Description                                               |
| -------------- | --------------------------------------------------------- |
| `id`           | Unique 32-character MD5 hash identifier                   |
| `url`          | The website/service where credentials were compromised    |
| `username`     | Username or email address (always unmasked if authorized) |
| `password`     | Password (masked/unmasked based on permissions)           |
| `device_ip`    | IP address of the compromised device                      |
| `hostname`     | Computer/device hostname                                  |
| `os`           | Operating system information                              |
| `malware_path` | File path of the malware that captured the credentials    |
| `country`      | Geographic location of the compromise                     |
| `log_date`     | When the credentials were captured                        |
| `hardware_id`  | Unique hardware identifier                                |
| `domain`       | Domain associated with this leak (for filtering)          |
| `email_domain` | Domain extracted from the email address                   |
| `fetched_at`   | When this leak was discovered/indexed                     |
| `status`       | Current status (`open` or `fixed`)                        |

## Password Unmasking Rules

Passwords are unmasked after [domain verification](/cloud/credential-monitoring#domain-verification):

| Leak Type          | Password Access                       |
| ------------------ | ------------------------------------- |
| **Personal leaks** | Always unmasked for the account owner |
| **Employee leaks** | Unmasked after domain verification    |
| **Customer leaks** | Unmasked after domain verification    |

Without domain verification, passwords show as `***MASKED***`.

## Usage Examples

### Get leak information

```bash theme={null}
curl -X POST "https://api.projectdiscovery.io/v1/leaks/info" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "leakid": "b3652f2555841f7652badd9804859f4e"
  }'
```

## Security Considerations

### Privacy Protection

* Access is strictly controlled based on domain verification
* All access attempts are logged for security auditing

### Data Sensitivity

* Leak information contains sensitive credential data
* Ensure secure handling and storage of retrieved information
* Consider implementing additional encryption for stored leak details

### Rate Limiting

* This endpoint may have rate limits to prevent abuse
* Implement proper error handling for rate limit responses


## OpenAPI

````yaml post /v1/leaks/info
openapi: 3.1.0
info:
  title: PDCP API
  version: '1.0'
  summary: ProjectDiscovery Cloud Platform
  description: >-
    For more details, checkout
    https://docs.projectdiscovery.io/api-reference/editor/scan
servers:
  - url: https://api.projectdiscovery.io
    description: Production
  - url: https://api.dev.projectdiscovery.io
    description: Development
  - url: http://localhost:8085
    description: Localhost
security:
  - X-API-Key: []
paths:
  /v1/leaks/info:
    post:
      tags:
        - leaks
      summary: Get leak information by ID
      description: >-
        Retrieve detailed leak information by leak ID. Passwords are unmasked
        after domain verification. See [Domain
        Verification](/cloud/credential-monitoring#domain-verification) for
        setup instructions.
      operationId: post-v1-leaks-info
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - leakid
              properties:
                leakid:
                  type: string
                  description: 32-character MD5 hash identifying the leak
                  pattern: ^[a-fA-F0-9]{32}$
                  example: b3652f2555841f7652badd9804859f4e
      responses:
        '200':
          description: Leak information retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      url:
                        type: string
                      username:
                        type: string
                      password:
                        type: string
                      device_ip:
                        type: string
                      hostname:
                        type: string
                      os:
                        type: string
                      malware_path:
                        type: string
                      country:
                        type: string
                      log_date:
                        type: string
                      hardware_id:
                        type: string
                      domain:
                        type: string
                        description: >-
                          Domain this leak is associated with - used for
                          filtering
                      email_domain:
                        type: string
                        description: Domain extracted from email addresses
                      fetched_at:
                        type: string
                      status:
                        type: string
        '400':
          description: Bad request - Invalid leak ID format or missing leak ID
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Invalid leak ID format
        '401':
          $ref: '#/components/responses/MessageResponse'
        '403':
          description: Access denied - Insufficient permissions to access this leak
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: 'Access denied: you don''t have access to this leak'
        '404':
          description: Leak not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Leak not found
        '500':
          $ref: '#/components/responses/MessageResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
components:
  responses:
    MessageResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
            required:
              - message
    ErrorResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - message
            properties:
              message:
                type: string
              kind:
                type: string
              code:
                type: string
              error:
                type: string
              error_id:
                type: string
              param:
                type: string
              status:
                type: integer
  securitySchemes:
    X-API-Key:
      name: X-API-Key
      type: apiKey
      in: header

````