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

# Search events by filter criteria

> Finds SDK tracking events for selected flows. Use the flow IDs returned by flow
search to inspect the event timeline behind those flows.

Results are ordered as a stable timeline, oldest first (by creation time), and
capped at `limit`.

Required API key permission: `observe:events:read`.



## OpenAPI

````yaml /api-reference/openapi/observe.yaml post /observe/eventSearch
openapi: 3.1.1
info:
  version: 1.0.0
  title: Corbado API
  description: >
    # Introduction

    This documentation gives an overview of all Corbado API calls to implement
    authentication observe.
  contact:
    name: Corbado team
    email: support@corbado.com
    url: https://www.corbado.com
servers:
  - url: https://api.cloud.corbado.io/v1
security:
  - bearerAuth: []
tags:
  - name: ObserveFlow
    description: Flow search and related APIs
    x-group: Journeys and users
  - name: ObserveSubFlow
    description: Subflow search and related APIs
    x-group: Journeys and users
  - name: ObserveUser
    description: User search and related APIs
    x-group: Journeys and users
  - name: ObserveClientEnv
    description: Client environment search APIs
    x-group: Journeys and users
  - name: ObserveTimeSeries
    description: Time series query APIs
    x-group: Metrics and funnels
  - name: ObserveFunnel
    description: Historical funnel metrics, dictionaries and coverage.
    x-group: Metrics and funnels
  - name: ObserveEvent
    description: Event ingestion and event feed APIs
    x-group: Events
  - name: ObserveError
    description: Named authentication errors and recommendations.
    x-group: Error management
  - name: ObserveErrorFlavour
    description: Error variants and their impact on authentication outcomes.
    x-group: Error management
  - name: ObserveAlert
    description: Authentication alert rules, instances and history.
    x-group: Alert management
  - name: ObserveAnnotation
    description: Annotation APIs (dated notes for analytics context)
    x-group: Annotations
  - name: ObserveTableExport
    description: Table export file listing and download APIs
    x-group: Data exports
  - name: ObserveTimeSeriesExport
    description: Time-series export generation and downloads.
    x-group: Data exports
  - name: ObserveDataExport
    description: Data export APIs
    x-group: User data
  - name: ObserveDataDeletionJob
    description: Data deletion job APIs
    x-group: User data
  - name: ObserveFlowTypeDefinition
    description: Flow type definitions used in authentication journeys.
    x-group: Catalogs and labels
  - name: ObserveCatalog
    description: Catalog APIs
    x-group: Catalogs and labels
  - name: OpenAPI
    description: Downloadable API specification
  - name: ProjectOperationExecution
    description: Project-scoped operation history and pipeline health
  - name: ObserveClassification
    description: Flow and subflow classification APIs
  - name: ObserveIntegrationStats
    description: Integration stats APIs
  - name: ObserveTimeSeriesPrecalculation
    description: Time series precalculation APIs
  - name: ObserveIDList
    x-group: Saved ID lists
    description: Stored ID-list selection APIs
  - name: ObserveDataContext
    description: Schema-loose data context APIs for agent and debugging tooling
  - name: ObserveData
    description: Observe data administration APIs
  - name: ObserveTrackingStats
    description: Tracking ingestion stats APIs
  - name: ObserveExperiment
    x-group: Experiments
    description: Experiment catalog and run APIs
  - name: ObserveDataPolicy
    description: >-
      Project data policy catalogue (retention selected by the SDK's
      meta.dataPolicy code)
  - name: ObserveMetadata
    x-group: Metadata
    description: Authenticator metadata APIs (FIDO MDS + passkey AAGUID)
  - name: ObservePasskey
    x-group: Passkey analysis
    description: Observed passkey search and cohort analysis.
paths:
  /observe/eventSearch:
    post:
      tags:
        - ObserveEvent
      summary: Search events by filter criteria
      description: >-
        Finds SDK tracking events for selected flows. Use the flow IDs returned
        by flow

        search to inspect the event timeline behind those flows.


        Results are ordered as a stable timeline, oldest first (by creation
        time), and

        capped at `limit`.


        Required API key permission: `observe:events:read`.
      operationId: ObserveEventSearch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/observeEventSearchReq'
      responses:
        '200':
          description: Matching SDK tracking events in their original session order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/observeEventSearchRsp'
        default:
          $ref: '#/components/responses/error'
      security:
        - bearerAuth:
            - observe:events:read
components:
  schemas:
    observeEventSearchReq:
      type: object
      required:
        - flowIDs
      properties:
        subFlowIDs:
          type: array
          description: >-
            Optional exact subflow owners, intersected with flowIDs. Include
            descendant IDs explicitly for a subtree.
          items:
            type: string
          x-oapi-codegen-extra-tags:
            validate: omitempty,min=1,max=500,dive,id=sfl
        flowIDs:
          type: array
          description: Flow IDs to fetch events for (format `flw-<number>`).
          items:
            type: string
          x-oapi-codegen-extra-tags:
            validate: required,min=1,max=500,dive,id=flw
        limit:
          type: integer
          description: Maximum number of events to return. Defaults to 100, maximum 10000.
          default: 100
          minimum: 1
          maximum: 10000
          x-oapi-codegen-extra-tags:
            validate: omitempty,min=1,max=10000
    observeEventSearchRsp:
      type: object
      required:
        - events
        - totalCount
      properties:
        events:
          type: array
          description: >-
            SDK tracking events for the selected flows, oldest first, capped at
            `limit`.
          items:
            $ref: '#/components/schemas/observeEventSearchEntry'
        totalCount:
          type: integer
          description: Total number of matching events regardless of limit
    observeEventSearchEntry:
      type: object
      required:
        - id
        - flowID
        - sessionID
        - batchID
        - type
        - name
        - data
        - createdMs
      properties:
        subFlowID:
          type: string
          description: >-
            Exact owning subflow (sfl-...). Absent for directly flow-owned
            events.
        id:
          type: string
          description: Event ID (format `tev-<number>`)
        flowID:
          type: string
          description: Flow ID (format `flw-<number>`)
        sessionID:
          type: string
          description: Public session UUID.
        batchID:
          type: string
          description: Tracking event batch ID (format `teb-<number>`).
        type:
          $ref: '#/components/schemas/observeEventType'
        name:
          type: string
          description: Name of the tracking event
        data:
          type: object
          description: Additional event data
          additionalProperties: true
        metadata:
          $ref: '#/components/schemas/observeEventSearchEntryMetadata'
        createdMs:
          description: Event creation time in milliseconds since epoch (client-provided)
          type: integer
          format: int64
    errorRspV2:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
          properties:
            message:
              description: Error message
              type: string
              example: Validation failed
            details:
              description: Validation error details per field
              type: array
              items:
                type: object
                required:
                  - field
                  - message
                properties:
                  field:
                    description: Field name that failed validation
                    type: string
                    example: projectID
                  message:
                    description: Validation error message
                    type: string
                    example: required
    observeEventType:
      type: string
      description: Type of the tracking event
      enum:
        - predefined
        - custom
      x-oapi-codegen-extra-tags:
        validate: oneof=predefined custom
    observeEventSearchEntryMetadata:
      type: object
      description: Event-scoped metadata
      properties:
        trackingSourcePath:
          type: string
          description: >-
            Tracking source path of the event including query string, resolved
            from the event's ingestion batch (the path is stored once per batch)
            and with email addresses and phone numbers redacted to "*email*" /
            "*phone*".
  responses:
    error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/errorRspV2'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Use an Observe API key from the management console. The key selects the
        project and must grant the permission listed on the operation. Keep this
        key on your server.

````