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

# Leaks Overview

> List persisted leak sources with status, counts, pagination hints, and fetch URLs. With X-Osintly-Progressive-Leaks: 1, processing sources may expose readable early pages; counts and pagination are provisional until the source finishes. Without the header, only finalized sources are fetchable.

## Readable sources during a search

Use `fetchable` and `fetch_url` to decide whether a source can be read. One source
can be ready while another is still processing; do not wait for all providers to
finish before displaying available records.

With `X-Osintly-Progressive-Leaks: 1`, a source with an early page can have all of:

```json theme={null}
{
  "id": "snusbase",
  "key": "snusbase",
  "status": "processing",
  "count": 500,
  "fetchable": true,
  "fetch_url": "https://api.osint.ly/search/SEARCH_ID/results/leaks/snusbase",
  "pagination": { "page_size": 500, "total_pages": 1 }
}
```

This is an illustrative source entry inside `data.sources`, not a complete
response. Counts and page totals are provisional until the source reaches its
terminal status. Currently, early publication is supported by Snusbase.

Without this header, processing sources keep `count: 0`, `fetchable: false`,
`fetch_url: null`, and no provisional pagination. Final successful overviews have
the same format with and without the header.

Refresh on [`leak.page.ready`, `leak.status`, and `leaks.finished`](https://docs.osint.ly/api-reference/sse-reference).
Repeat the header on each overview/page request and stream reconnect.


## OpenAPI

````yaml GET /search/{id}/results/leaks
openapi: 3.1.0
info:
  title: Osintly API
  version: 1.0.0
  description: OpenAPI specification for the Osintly API service.
  contact:
    name: Osintly
    url: https://docs.osint.ly/api-reference/quick-start
servers:
  - url: https://api.osint.ly
    description: Production
security: []
tags:
  - name: System
    description: Health and service checks
  - name: Auth
    description: Authorization validation
  - name: Search
    description: Create, monitor and retrieve search results
  - name: Usage
    description: Rate limit and usage information
  - name: Radar
    description: Breach intelligence endpoints (free with API key)
  - name: Webhooks
    description: Webhook callback payloads configured from search creation
paths:
  /search/{id}/results/leaks:
    get:
      tags:
        - Search
      summary: Get leaks overview
      description: >-
        List persisted leak sources with status, counts, pagination hints, and
        fetch URLs. With X-Osintly-Progressive-Leaks: 1, processing sources may
        expose readable early pages; counts and pagination are provisional until
        the source finishes. Without the header, only finalized sources are
        fetchable.
      operationId: getSearchLeaksOverview
      parameters:
        - $ref: '#/components/parameters/SearchId'
        - $ref: '#/components/parameters/ProgressiveLeaks'
      responses:
        '200':
          description: Leaks sources overview
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchLeaksOverviewResponse'
              examples:
                overview:
                  value:
                    data:
                      sources:
                        - name: Snusbase
                          key: snusbase
                          status: success
                          count: 214
                          fetch_url: >-
                            https://api.osint.ly/search/d290f1ee-6c54-4b01-90e6-d701748f0851/results/leaks/snusbase
                          pagination:
                            page_size: 100
                            total_pages: 3
                          logo: null
                          description: null
                    meta:
                      environment: production
                      timestamp: '2026-05-27T12:00:30.000Z'
        '400':
          $ref: '#/components/responses/SearchApiError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/SearchApiError'
      security:
        - bearerAuth: []
components:
  parameters:
    SearchId:
      name: id
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: Search UUID
    ProgressiveLeaks:
      name: X-Osintly-Progressive-Leaks
      in: header
      required: false
      description: >-
        Set to the exact string 1 on each stream, leak-overview, and leak-page
        request to opt in to readable early leak pages. Omit to retain
        finalized-source behavior. Processing counts and pagination are
        provisional; final responses and authorization are unchanged.
      schema:
        type: string
        enum:
          - '1'
  schemas:
    SearchLeaksOverviewResponse:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: object
          required:
            - sources
          properties:
            sources:
              type: array
              items:
                type: object
                required:
                  - name
                  - key
                  - status
                  - count
                  - fetch_url
                properties:
                  id:
                    type: string
                    description: Leak source identifier.
                  name:
                    type: string
                    description: Leak source display name.
                  key:
                    type: string
                    description: >-
                      Leak source identifier used in the source results URL.
                      Same value as `id`.
                  status:
                    type: string
                    description: >-
                      Source state: `pending`, `processing`, `success`,
                      `no_results`, `error` or `skipped`.
                  count:
                    type: integer
                    description: >-
                      Published record count. Provisional for an opted-in
                      processing source; zero during processing without opt-in.
                  fetchable:
                    type: boolean
                    description: >-
                      Whether stored records are currently readable. Can be true
                      during processing only for a published subset with
                      progressive opt-in.
                  fetch_url:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Source-page endpoint when fetchable; null when no page is
                      available to this request.
                    format: uri
                  pagination:
                    type: object
                    properties:
                      page_size:
                        type: integer
                        description: Number of record groups per page.
                      total_pages:
                        type: integer
                        description: >-
                          Published page count, provisional while an opted-in
                          source is processing. Refresh after the terminal
                          source event.
                    description: >-
                      Page information, present once the source has published
                      pages.
                  logo:
                    type:
                      - string
                      - 'null'
                    description: Leak source logo URL, or null.
                  description:
                    type:
                      - string
                      - 'null'
                    description: Leak source description, or null.
                  error:
                    type: string
                    description: Error message, present when the source failed.
              description: One entry per leak source queried for this search.
          description: Leak sources overview.
        meta:
          $ref: '#/components/schemas/ResponseMeta'
          description: Response metadata.
    ResponseMeta:
      type: object
      required:
        - timestamp
      properties:
        environment:
          type: string
          description: >-
            API environment that served the request: `production` or
            `development`.
        timestamp:
          type: string
          format: date-time
          description: Server time when the response was generated (ISO 8601, UTC).
    SearchApiErrorResponse:
      type: object
      required:
        - error
        - meta
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Machine-readable error code, for example `RATE_LIMIT_EXCEEDED`.
            message:
              type: string
              description: Short summary of the error.
            details:
              oneOf:
                - type: string
                - type: array
                  items:
                    $ref: '#/components/schemas/ValidationIssue'
              description: >-
                More information: a text explanation, or one entry per invalid
                field for validation errors.
          description: Details about the error.
        meta:
          $ref: '#/components/schemas/ResponseMeta'
          description: Response metadata.
    BasicErrorResponse:
      type: object
      required:
        - success
        - message
      properties:
        success:
          type: boolean
          enum:
            - false
          description: Always false for error responses.
        message:
          type: string
          description: Human-readable error message.
      additionalProperties: true
    ValidationIssue:
      type: object
      required:
        - path
        - message
      properties:
        path:
          type: string
          description: >-
            Location of the invalid field in the request, with segments joined
            by dots, for example `query.value`.
        message:
          type: string
          description: Why the field was rejected.
  responses:
    SearchApiError:
      description: Search API error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SearchApiErrorResponse'
          examples:
            validation_error:
              value:
                error:
                  code: VALIDATION_ERROR
                  message: Invalid request parameters
                  details:
                    - path: query.value
                      message: query.value must be a valid email
                meta:
                  timestamp: '2026-05-27T12:00:00.000Z'
            rate_limited:
              value:
                error:
                  code: RATE_LIMIT_EXCEEDED
                  message: Rate limit exceeded
                  details: API usage limits have been reached
                meta:
                  environment: production
                  timestamp: '2026-05-27T12:00:00.000Z'
            run_not_found:
              value:
                error:
                  code: RUN_NOT_FOUND
                  message: Search run not available
                  details: No active run is associated with this search
                meta:
                  environment: production
                  timestamp: '2026-05-27T12:00:00.000Z'
            leak_source_not_found:
              value:
                error:
                  code: LEAK_SOURCE_NOT_FOUND
                  message: Leak source not found
                  details: No leaked results source matches 'unknown-source'
                meta:
                  environment: production
                  timestamp: '2026-05-27T12:00:00.000Z'
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BasicErrorResponse'
          examples:
            unauthorized:
              value:
                success: false
                message: Unauthorized
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.