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

# Confirm an email address

> Consumes the emailed confirmation token, stamps the email as verified, and moves the account to `active` so trading and verification steps can proceed.



## OpenAPI

````yaml /api-reference/openapi/calibri.yaml post /api/v2/persona/identity/users/email/confirm_code
openapi: 3.1.0
info:
  title: Calibri API
  version: 1.0.0
  description: >-
    The Calibri API. Discover markets, read live books, place signed orders, and
    manage positions and account data.

    Routed by path prefix to the service that answers it — which is an
    implementation detail, not something a caller has to reason about.
servers:
  - description: Production
    url: https://calibri.io
security: []
tags:
  - name: Health
    description: Service liveness.
    x-displayName: Health
  - name: Events
    description: Discover events and their metadata.
    x-displayName: Events
  - name: Markets
    description: List markets and load market detail for trading.
    x-displayName: Markets
  - name: Series
    description: Recurring event series.
    x-displayName: Series
  - name: Tags
    description: Editorial shelves used to browse the catalogue.
    x-displayName: Tags
  - name: Market Data
    description: Order book, depth, trade tape, tickers, and candles.
    x-displayName: Market Data
  - name: Assets
    description: Underlying asset price history for price-feed markets.
    x-displayName: Assets
  - name: Community
    description: Leaderboard and platform activity.
    x-displayName: Community
  - name: Currencies
    description: Currency registry.
    x-displayName: Currencies
  - name: Trade
    description: Place, list, and cancel orders.
    x-displayName: Trade
  - name: Positions
    description: Your matched contracts.
    x-displayName: Positions
  - name: Wallet
    description: Self-custody Safe, passkey, session keys, and relay.
    x-displayName: Wallet
  - name: Rewards
    description: Maker rebates and referral earnings.
    x-displayName: Rewards
  - name: Account
    description: Balances, ledger, PnL, limits, preferences, and profile.
    x-displayName: Account
  - name: Categories
    description: Categories
    x-displayName: Categories
  - name: Other
    description: Other
    x-displayName: Other
externalDocs:
  description: ''
  url: ''
paths:
  /api/v2/persona/identity/users/email/confirm_code:
    post:
      tags:
        - Account
      summary: Confirm an email address
      description: >-
        Consumes the emailed confirmation token, stamps the email as verified,
        and moves the account to `active` so trading and verification steps can
        proceed.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailConfirmRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionUserEntity'
          description: ''
      security: []
components:
  schemas:
    EmailConfirmRequest:
      properties:
        token:
          description: From the confirmation email.
          example: eyJhbGciOi…
          type: string
      required:
        - token
      type: object
    SessionUserEntity:
      properties:
        advisory_id:
          example: null
          type:
            - number
            - 'null'
        base_currency_id:
          example: usdc
          type: string
        can_change_password:
          example: true
          type: boolean
        can_link_wallet:
          example: false
          type: boolean
        created_at:
          example: '2026-07-01T09:12:00Z'
          type: string
        csrf_token:
          description: >-
            Present on login only. Echo it as `X-CSRF-Token` on every unsafe
            request for the life of the session.
          example: lJ8xQ2...f41
          type: string
        data:
          additionalProperties:
            type: string
          example: {}
          type: object
        email:
          example: alex@example.com
          type: string
        entity_type:
          enum:
            - individual
            - business
          example: individual
          type: string
        id:
          example: 4821
          type: number
        is_withdrawal_hold_exempt:
          example: false
          type: boolean
        labels:
          items:
            $ref: '#/components/schemas/LabelEntity'
          type: array
        last_doc_submitted_at:
          example: '2026-07-01T09:12:00Z'
          type:
            - string
            - 'null'
        last_doc_type_submitted:
          example: Passport
          type:
            - string
            - 'null'
        level:
          example: 2
          type: number
        otp:
          example: true
          type: boolean
        phones:
          items:
            $ref: '#/components/schemas/PhoneEntity'
          type: array
        profiles:
          items:
            $ref: '#/components/schemas/ProfileEntity'
          type: array
        referral_code:
          example: CAL7X2QM
          type:
            - string
            - 'null'
        referral_id:
          description: The account that referred YOU, if any.
          example: null
          type:
            - number
            - 'null'
        referral_link:
          example: https://calibri.io/?ref=CAL7X2QM
          type:
            - string
            - 'null'
        role:
          example: member
          type: string
        state:
          enum:
            - pending
            - active
            - banned
            - deleted
          example: active
          type: string
        uid:
          example: ID1A2B3C4D5E
          type: string
        updated_at:
          example: '2026-07-02T14:30:00Z'
          type: string
        username:
          example: brisk_otter_41
          type:
            - string
            - 'null'
        wallet_address:
          example: '0xE1188438C85C98aADFf1a88f97764E607B4978C3'
          type:
            - string
            - 'null'
      required:
        - id
        - email
        - can_change_password
        - can_link_wallet
        - uid
        - role
        - entity_type
        - base_currency_id
        - level
        - otp
        - state
        - is_withdrawal_hold_exempt
        - created_at
        - updated_at
        - labels
        - phones
        - profiles
      type: object
    LabelEntity:
      properties:
        created_at:
          example: '2026-07-01T09:12:00Z'
          type: string
        key:
          description: >-
            What was checked — `email`, `phone`, `document`, `profile`,
            `selfie`.
          example: document
          type: string
        scope:
          description: >-
            Only `public` labels are returned to you; `private` ones are
            operator-side.
          example: public
          type: string
        updated_at:
          example: '2026-07-02T14:30:00Z'
          type: string
        value:
          description: >-
            Where it got to: `verified`, `pending`, `rejected`, `required`,
            `drafted`.
          example: verified
          type: string
      required:
        - key
        - value
        - scope
        - created_at
        - updated_at
      type: object
    PhoneEntity:
      properties:
        country:
          description: ISO 3166-1 alpha-3.
          example: ZAF
          type: string
        number:
          description: E.164, without the leading +.
          example: '27821234567'
          type: string
        validated_at:
          description: Null until the SMS code is confirmed.
          example: '2026-07-02T14:30:00Z'
          type:
            - string
            - 'null'
      required:
        - country
        - number
      type: object
    ProfileEntity:
      properties:
        address:
          example: 12 Long Street
          type:
            - string
            - 'null'
        city:
          example: Cape Town
          type:
            - string
            - 'null'
        country:
          description: ISO 3166-1 alpha-3.
          example: ZAF
          type:
            - string
            - 'null'
        created_at:
          example: '2026-07-01T09:12:00Z'
          type: string
        dob:
          description: Date of birth, `YYYY-MM-DD`.
          example: '1990-04-17'
          type:
            - string
            - 'null'
        first_name:
          example: Alex
          type:
            - string
            - 'null'
        last_name:
          example: Mwangi
          type:
            - string
            - 'null'
        metadata:
          description: >-
            A JSON *string*, not an object — the serializer calls JSON.stringify
            on it. Parse before use.
          example: '{"nationality":"ZA"}'
          type:
            - string
            - 'null'
        occupation:
          example: engineer
          type:
            - string
            - 'null'
        postcode:
          example: '8001'
          type:
            - string
            - 'null'
        source_of_funds:
          example: salary
          type:
            - string
            - 'null'
        state:
          description: Review state of this profile submission.
          example: verified
          type:
            - string
            - 'null'
        updated_at:
          example: '2026-07-02T14:30:00Z'
          type: string
      required:
        - created_at
        - updated_at
      type: object

````

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