> ## 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 identifier submissions

> Finds the identifiers (email, phone number, username) users submitted during authentication,
including rejected and failed attempts. Search by identifier to find every attempt that
targeted an account, or by user to find the attempts with identifiers linked to that user.
Each result states why it matched. A submitted identifier shows which account an attempt
targeted, not who made it.

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



## OpenAPI

````yaml /api-reference/openapi/observe.yaml post /observe/identifierSearch
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: ObserveIdentifier
    description: Identifier search over submitted identifiers
    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: ObserveFinding
    description: Curated findings that explain errors, their impact and who has to act.
    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/identifierSearch:
    post:
      tags:
        - ObserveIdentifier
      summary: Search identifier submissions
      description: >-
        Finds the identifiers (email, phone number, username) users submitted
        during authentication,

        including rejected and failed attempts. Search by identifier to find
        every attempt that

        targeted an account, or by user to find the attempts with identifiers
        linked to that user.

        Each result states why it matched. A submitted identifier shows which
        account an attempt

        targeted, not who made it.


        Required API key permission: `observe:identifier:read`.
      operationId: ObserveIdentifierSearch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/observeIdentifierSearchReq'
      responses:
        '200':
          description: >-
            Identifier submissions matching the search, ordered by submission
            time (newest first).
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/observeIdentifierSubmission'
        default:
          $ref: '#/components/responses/error'
      security:
        - bearerAuth:
            - observe:identifier:read
components:
  schemas:
    observeIdentifierSearchReq:
      type: object
      properties:
        identifiers:
          type: array
          description: >-
            Identifiers to search for. Without a type, values of every type
            match. Mutually exclusive

            with the user selectors.
          items:
            $ref: '#/components/schemas/observeIdentifierInput'
          x-oapi-codegen-extra-tags:
            validate: omitempty,max=100,dive
        userIDs:
          type: array
          description: >-
            User IDs (format `tus-<number>`). Returns the submissions of all
            identifiers linked to these

            users. Mutually exclusive with other selectors.
          items:
            type: string
          x-oapi-codegen-extra-tags:
            validate: omitempty,max=100,dive,id=tus
        externalIDs:
          type: array
          description: >-
            External user IDs. Returns the submissions of all identifiers linked
            to these users. Mutually

            exclusive with other selectors.
          items:
            type: string
          x-oapi-codegen-extra-tags:
            validate: omitempty,max=100,dive,min=1,max=100
        flowIDs:
          type: array
          description: >-
            Flow IDs (format `flw-<number>`). Returns every submission made in
            these flows, whichever

            user an identifier is linked to. Mutually exclusive with other
            selectors.
          items:
            type: string
          x-oapi-codegen-extra-tags:
            validate: omitempty,max=500,dive,id=flw
        page:
          type: integer
          description: Page number for pagination (1-based). Defaults to 1.
          default: 1
          minimum: 1
          x-oapi-codegen-extra-tags:
            validate: omitempty,min=1,max=1000
        pageSize:
          type: integer
          description: Number of items per page. Defaults to 25, maximum 1000.
          default: 25
          minimum: 1
          maximum: 1000
          x-oapi-codegen-extra-tags:
            validate: omitempty,min=1,max=1000
    observeIdentifierSubmission:
      type: object
      required:
        - identifierID
        - identifierType
        - identifierValue
        - subFlowID
        - subFlowType
        - matchReason
        - createdMs
      properties:
        identifierID:
          type: string
          description: Identifier ID (format `idf-<number>`)
        identifierType:
          $ref: '#/components/schemas/observeIdentifierType'
        identifierValue:
          type: string
          description: Identifier as sent by the integration
        flowID:
          type: string
          description: Flow of the submission (format `flw-<number>`)
        flowUserID:
          type: string
          description: >-
            User the flow is attributed to (format `tus-<number>`). For failed
            attempts this is often a

            temporary user.
        flowUserStatus:
          type: string
          description: >-
            Status of the flow's user: `confirmed` when the integration
            identified the user, `temporary`

            for an anonymous attempt attributed to its device. Absent when the
            flow has no user.
          enum:
            - confirmed
            - temporary
          x-enum-varnames:
            - ObserveIdentifierSubmissionFlowUserStatusConfirmed
            - ObserveIdentifierSubmissionFlowUserStatusTemporary
        subFlowID:
          type: string
          description: Subflow of the submission (format `sfl-<number>`)
        subFlowType:
          type: string
          description: Subflow type that carried the identifier, e.g. `provide-identifier`
        linkedUserID:
          type: string
          description: >-
            Set when this submission links the identifier to a user (format
            `tus-<number>`): the last

            finished submission before a successful login that verified this
            identifier.
        matchReason:
          type: string
          description: >-
            Why the submission matched: `identifier` (searched identifier),
            `ownFlow` (identifier linked

            to a searched user, submitted in one of that user's flows),
            `linkedIdentifier` (identifier

            linked to a searched user, submitted in another user's flow) or
            `flow` (submitted in a

            searched flow).
          enum:
            - identifier
            - ownFlow
            - linkedIdentifier
            - flow
          x-enum-varnames:
            - ObserveIdentifierSubmissionMatchReasonIdentifier
            - ObserveIdentifierSubmissionMatchReasonOwnFlow
            - ObserveIdentifierSubmissionMatchReasonLinkedIdentifier
            - ObserveIdentifierSubmissionMatchReasonFlow
        createdMs:
          description: Submission time in milliseconds since epoch
          type: integer
          format: int64
    observeIdentifierInput:
      type: object
      required:
        - value
      properties:
        value:
          type: string
          description: >-
            Identifier exactly as the integration sends it (same normalization,
            clear or hashed).
          x-oapi-codegen-extra-tags:
            validate: required,min=1,max=320
        type:
          $ref: '#/components/schemas/observeIdentifierType'
    observeIdentifierType:
      type: string
      description: Identifier type as sent by the integration.
      enum:
        - email
        - phone
        - username
        - unknown
      x-enum-varnames:
        - ObserveIdentifierTypeEmail
        - ObserveIdentifierTypePhone
        - ObserveIdentifierTypeUsername
        - ObserveIdentifierTypeUnknown
    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
  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.

````

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