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

# Identify

> Decide the best auth method for this email.

Returns one of:
  { method: "passkey", passkey_options: {...} }   user has a passkey
  { method: "password", twofa_required: bool }    user has a usable password
  { method: "magic_link_sent" }                   magic-link-only user (link sent)
  { method: "no_account" }                        no account exists for this email

Preference order: passkey > password > magic-link (per "passkey wins" UX decision).
The "no_account" branch does NOT send anything — the caller decides whether
to surface a signup CTA (login page) or proceed with signup (signup page).
Rate-limited per IP (10/min) to prevent enumeration sweeps.



## OpenAPI

````yaml https://api.apilens.ai/api/v1/openapi.json post /api/v1/auth/identify
openapi: 3.1.0
info:
  title: APILens API
  version: 1.0.0
  description: API Observability Platform
servers: []
security: []
paths:
  /api/v1/auth/identify:
    post:
      tags:
        - Auth
      summary: Identify
      description: >-
        Decide the best auth method for this email.


        Returns one of:
          { method: "passkey", passkey_options: {...} }   user has a passkey
          { method: "password", twofa_required: bool }    user has a usable password
          { method: "magic_link_sent" }                   magic-link-only user (link sent)
          { method: "no_account" }                        no account exists for this email

        Preference order: passkey > password > magic-link (per "passkey wins" UX
        decision).

        The "no_account" branch does NOT send anything — the caller decides
        whether

        to surface a signup CTA (login page) or proceed with signup (signup
        page).

        Rate-limited per IP (10/min) to prevent enumeration sweeps.
      operationId: api_auth_router_identify
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentifyRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentifyResponse'
components:
  schemas:
    IdentifyRequest:
      properties:
        email:
          title: Email
          type: string
      required:
        - email
      title: IdentifyRequest
      type: object
    IdentifyResponse:
      properties:
        method:
          title: Method
          type: string
        passkey_options:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Passkey Options
        twofa_required:
          default: false
          title: Twofa Required
          type: boolean
        fallbacks:
          default: []
          items:
            type: string
          title: Fallbacks
          type: array
      required:
        - method
      title: IdentifyResponse
      type: object

````