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

# Stream scans in real time (SSE)

> Server-sent events (`text/event-stream`) stream of scans as they are recorded. Emits a `connected` event on open, then one `scan` event per recorded scan, with comment heartbeats every 25 seconds to keep the connection alive. The optional filters narrow the stream; reversal events are always delivered so consumers can undo earlier scans.

Requires the `scans:read` scope on the access token.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/scans/stream
openapi: 3.1.0
info:
  title: Passlet API (Public)
  version: 0.1.0
  description: >-
    Public integration API for Passlet — every route callable with a `plt_*`
    access token. Each operation lists the required access-token scope.
  license:
    name: UNLICENSED
    identifier: UNLICENSED
servers:
  - url: https://api.passlet.io
    description: Production
security: []
paths:
  /v1/scans/stream:
    get:
      tags:
        - scans
      summary: Stream scans in real time (SSE)
      description: >-
        Server-sent events (`text/event-stream`) stream of scans as they are
        recorded. Emits a `connected` event on open, then one `scan` event per
        recorded scan, with comment heartbeats every 25 seconds to keep the
        connection alive. The optional filters narrow the stream; reversal
        events are always delivered so consumers can undo earlier scans.


        Requires the `scans:read` scope on the access token.
      operationId: getV1ScansStream
      parameters:
        - name: projectId
          in: query
          required: false
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - name: templateVersionId
          in: query
          required: false
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - name: scanContextKey
          in: query
          required: false
          schema:
            type: string
            maxLength: 128
      responses:
        default:
          description: Successful response
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: plt_<secret>
      description: >-
        Passlet access token (`plt_*`) sent as `Authorization: Bearer <token>`
        or `X-API-Key`. Authorized scopes are listed per operation under
        `x-required-scopes`.

````