> ## 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.

# Run a temporary search

> Run a search and stream its results directly in the response. Osintly does not create a search record, store results, use or write result caches, or keep a replay of the stream. Accepts the same body as POST /search, except delivery webhooks and BYOK providers.

<Note>
  Results exist only in this response. Read [Temporary Searches](/api-reference/temporary-searches) for the stream format, limits, and what Osintly does not keep.
</Note>


## OpenAPI

````yaml /api-reference/openapi.json post /search/temporary
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/temporary:
    post:
      tags:
        - Search
      summary: Run a temporary search
      description: >-
        Run a search and stream its results directly in the response. Osintly
        does not create a search record, store results, use or write result
        caches, or keep a replay of the stream. Accepts the same body as POST
        /search, except delivery webhooks and BYOK providers.
      operationId: createTemporarySearch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchCreateRequest'
      responses:
        '200':
          description: Server-Sent Events stream of the temporary search. Not resumable.
          headers:
            X-Osintly-Temporary:
              description: Always 1 for a temporary search stream.
              schema:
                type: string
                enum:
                  - '1'
            X-Search-Id:
              description: >-
                Identifier of this run. It cannot be used with other search
                endpoints.
              schema:
                type: string
                format: uuid
          content:
            text/event-stream:
              schema:
                type: string
              examples:
                stream:
                  value: >+
                    event: search.progress

                    data:
                    {"search_id":"6f1c2a9e-0b7d-4c3e-9a51-2d8e4f7b1c90","status":"running","timestamp":"2026-10-11T12:00:00.000Z"}


                    event: module.result

                    data:
                    {"search_id":"6f1c2a9e-0b7d-4c3e-9a51-2d8e4f7b1c90","module":{"id":"4a8cbb96-70df-4bd6-8f4a-9c0bf5ffde1f","name":"GitHub"},"card":{"github_001":{"username":"target"}},"timestamp":"2026-10-11T12:00:02.000Z"}


                    event: search.finished

                    data:
                    {"search_id":"6f1c2a9e-0b7d-4c3e-9a51-2d8e4f7b1c90","status":"completed","totals":{"module_results":1},"execution_time_ms":8120,"timestamp":"2026-10-11T12:00:08.000Z"}

        '400':
          $ref: '#/components/responses/SearchApiError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '429':
          $ref: '#/components/responses/SearchApiError'
        '500':
          $ref: '#/components/responses/SearchApiError'
        '503':
          description: >-
            No search runner, or no registered-account service for an email
            search, can currently run temporary searches.
      security:
        - bearerAuth: []
components:
  schemas:
    SearchCreateRequest:
      type: object
      required:
        - query
      properties:
        query:
          $ref: '#/components/schemas/SearchQuery'
        modules:
          $ref: '#/components/schemas/SearchModules'
        leaks:
          $ref: '#/components/schemas/SearchLeaks'
        features:
          $ref: '#/components/schemas/SearchFeatures'
        cache:
          $ref: '#/components/schemas/SearchCache'
        delivery:
          $ref: '#/components/schemas/SearchDelivery'
        byok:
          $ref: '#/components/schemas/SearchByok'
      additionalProperties: false
    SearchQuery:
      type: object
      required:
        - type
        - value
      properties:
        type:
          $ref: '#/components/schemas/SearchType'
        value:
          type: string
      additionalProperties: false
    SearchModules:
      type: object
      properties:
        mode:
          type: string
          enum:
            - all
            - selected
          default: all
        ids:
          type: array
          items:
            type: string
            format: uuid
      additionalProperties: false
    SearchLeaks:
      type: object
      properties:
        mode:
          type: string
          enum:
            - default
            - selected
            - none
          default: default
        custom_mapping:
          type: boolean
          default: false
          description: Enable Osintly custom leak mapping. Disabled by default.
        sources:
          type: array
          items:
            $ref: '#/components/schemas/LeakSourceValue'
      additionalProperties: false
    SearchFeatures:
      type: object
      properties:
        crosssearch:
          type: boolean
          default: false
          description: >-
            Automatically run compatible modules on profile links found in
            result cards. Disabled by default; set features.crosssearch to true
            to enable it for this search. Results use the same search stream and
            include their source provenance.
        breached_accounts:
          type: boolean
          default: false
        registered_accounts:
          type: string
          enum:
            - exclude
            - include
            - only
          default: include
      additionalProperties: false
    SearchCache:
      type: object
      properties:
        mode:
          type: string
          enum:
            - prefer
            - bypass
          default: prefer
      additionalProperties: false
    SearchDelivery:
      type: object
      properties:
        webhook:
          $ref: '#/components/schemas/WebhookConfig'
      additionalProperties: false
    SearchByok:
      type: object
      properties:
        mode:
          type: string
          enum:
            - default
            - only
          default: default
          description: >-
            Use BYOK providers in addition to the standard pipeline, or
            exclusively when set to only.
        osint_industries:
          $ref: '#/components/schemas/SearchByokOsintIndustriesProvider'
        sherlockeye:
          $ref: '#/components/schemas/SearchByokSherlockeyeProvider'
      description: Bring your own external OSINT provider API keys for this search.
      additionalProperties: false
      minProperties: 1
    SearchApiErrorResponse:
      type: object
      required:
        - error
        - meta
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            details:
              oneOf:
                - type: string
                - type: array
                  items:
                    $ref: '#/components/schemas/ValidationIssue'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
    BasicErrorResponse:
      type: object
      required:
        - success
        - message
      properties:
        success:
          type: boolean
          enum:
            - false
        message:
          type: string
      additionalProperties: true
    SearchType:
      type: string
      description: >-
        Currently accepted Search API types. Domain Name and IP Address will
        soon stop being supported here; migrate those lookups to the
        corresponding intelligence tools. No cutoff date has been announced.
      enum:
        - Pseudonym
        - Email Address
        - Domain Name
        - Cryptocurrency
        - IP Address
    LeakSourceValue:
      type: string
      enum:
        - Hudson Rock
        - Leak Check
        - Snusbase
        - Breach Base
        - Leak Osint
    WebhookConfig:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          format: uri
        secret:
          type: string
          minLength: 8
          maxLength: 256
      additionalProperties: false
    SearchByokOsintIndustriesProvider:
      type: object
      required:
        - api_key
      properties:
        api_key:
          type: string
          minLength: 1
          maxLength: 512
          description: >-
            External provider API key sent with the search request and not
            returned by the API.
        timeout:
          type: integer
          minimum: 25
          maximum: 80
          description: >-
            OSINT Industries execution timeout in seconds. type and query are
            derived from the search and cannot be overridden.
        exact_match:
          type: boolean
          description: >-
            Forwarded to OSINT Industries when supported by the selected query
            type.
        premium:
          type: boolean
          description: Enable premium OSINT Industries modules.
        premium_modules_only:
          type: boolean
          description: Only run premium OSINT Industries modules.
      additionalProperties: false
    SearchByokSherlockeyeProvider:
      type: object
      required:
        - api_key
      properties:
        api_key:
          type: string
          minLength: 1
          maxLength: 512
          description: >-
            External provider API key sent with the search request and not
            returned by the API.
        additional_modules:
          type: array
          items:
            type: string
          minItems: 1
          description: >-
            Optional Sherlockeye async search modules to request in addition to
            the default search. type and value are derived from the Osintly
            search and cannot be overridden.
      additionalProperties: false
    ValidationIssue:
      type: object
      required:
        - path
        - message
      properties:
        path:
          type: string
        message:
          type: string
    ResponseMeta:
      type: object
      required:
        - timestamp
      properties:
        environment:
          type: string
        timestamp:
          type: string
          format: date-time
  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.