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

# Authenticate a user

> Authenticates a user with an email address and password.



## OpenAPI

````yaml /openapi.json post /auth/login/
openapi: 3.0.3
info:
  title: TBBO API
  version: 1.0.0
  description: >
    Authentication uses short-lived session tokens (3 hours).


    Send the token with every request using the `Authorization` header:


    ```

    Authorization: Token <token>

    ```


    Example:


    ```

    Authorization: Token 123abc456def789

    ```


    To obtain a token, call `POST /auth/login/` with valid credentials. The
    response includes a `key` value. Use that value in the header above for
    subsequent API calls.


    How to find required IDs:


    - `challenge_id`: Prop Tech Configuration -> Challenges

    - `user_id`: Tickblaze Manager -> Users

    - `account_id`: Tickblaze Manager -> Accounts 
servers: []
security: []
tags:
  - name: withdrawals
    description: Withdrawal related endpoints
    x-displayName: Withdrawals
paths:
  /auth/login/:
    post:
      tags:
        - Auth
      summary: Authenticate a user
      description: Authenticates a user with an email address and password.
      operationId: auth_login_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirmScopedLogin'
            examples:
              LoginRequest:
                value:
                  email: trader@example.com
                  password: StrongPassword123!
                  fingerprint_event_id: opaque-browser-event-id
                summary: Login request
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FirmScopedLogin'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FirmScopedLogin'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginTokenResponse'
              examples:
                LoginSuccess:
                  value:
                    key: 123abc456def789
                    prop_firm: demo-firm
                    prop_firms:
                      - demo-firm
                      - partner-firm
                    expires_at: '2026-02-04T12:00:00Z'
                    refresh_token: refresh-token
                    refresh_expires_at: '2026-03-06T12:00:00Z'
                    self_cert_status:
                      pro: pending
                      non_pro: pending
                      cme_subscriber_addendum: pending
                      available_forms_to_sign:
                        - declaration_type: pro
                          key: self_cert_pro_status
                          title: Self Certification Pro Status
                          current_status: pending
                        - declaration_type: non_pro
                          key: self_cert_non_pro_status
                          title: Self Certification Non-Pro Status
                          current_status: pending
                        - declaration_type: cme_subscriber_addendum
                          key: cme_subscriber_addendum
                          title: CME Subscriber Addendum
                          current_status: pending
                  summary: Login success
          description: Returns the issued session token and related login metadata.
      security:
        - tokenAuth: []
        - {}
components:
  schemas:
    FirmScopedLogin:
      type: object
      properties:
        email:
          type: string
          format: email
        password:
          type: string
        fingerprint_event_id:
          type: string
          writeOnly: true
          description: >-
            Optional opaque Fingerprint v4 event ID for non-blocking server
            verification.
          maxLength: 255
      required:
        - email
        - password
    LoginTokenResponse:
      type: object
      properties:
        key:
          type: string
          description: Authentication token
        prop_firm:
          type: string
          description: Firm slug bound to the issued session token.
        prop_firms:
          type: array
          items:
            type: string
          description: Firm slugs available to the authenticated user.
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: Key token expiration datetime
        refresh_token:
          type: string
          description: Refresh token for obtaining new access tokens
        refresh_expires_at:
          type: string
          format: date-time
          nullable: true
          description: Refresh token expiration datetime
        self_cert_status:
          allOf:
            - $ref: '#/components/schemas/SelfCertificationStatus'
          description: >-
            Self certification statuses plus remaining forms that can still be
            signed.
      required:
        - key
    SelfCertificationStatus:
      type: object
      properties:
        pro:
          $ref: '#/components/schemas/ProEnum'
        non_pro:
          $ref: '#/components/schemas/NonProEnum'
        cme_subscriber_addendum:
          $ref: '#/components/schemas/CmeSubscriberAddendumEnum'
        available_forms_to_sign:
          type: array
          items:
            $ref: '#/components/schemas/SelfCertificationAvailableForm'
          description: >-
            Forms that still need action. When a declaration status is not
            `accepted`, it appears in this list.
      required:
        - available_forms_to_sign
        - cme_subscriber_addendum
        - non_pro
        - pro
    ProEnum:
      enum:
        - accepted
        - declined
        - pending
        - cancelled
      type: string
      description: |-
        * `accepted` - Accepted
        * `declined` - Declined
        * `pending` - Pending
        * `cancelled` - Cancelled
    NonProEnum:
      enum:
        - accepted
        - declined
        - pending
        - cancelled
      type: string
      description: |-
        * `accepted` - Accepted
        * `declined` - Declined
        * `pending` - Pending
        * `cancelled` - Cancelled
    CmeSubscriberAddendumEnum:
      enum:
        - accepted
        - declined
        - pending
        - cancelled
      type: string
      description: |-
        * `accepted` - Accepted
        * `declined` - Declined
        * `pending` - Pending
        * `cancelled` - Cancelled
    SelfCertificationAvailableForm:
      type: object
      properties:
        declaration_type:
          allOf:
            - $ref: '#/components/schemas/DeclarationTypeEnum'
          description: |-
            Declaration type accepted by `POST /api/users/self-cert/`.

            * `pro` - Pro
            * `non_pro` - Non-Pro
            * `cme_subscriber_addendum` - CME Subscriber Addendum
        key:
          $ref: '#/components/schemas/KeyEnum'
        title:
          type: string
        current_status:
          $ref: '#/components/schemas/CurrentStatus1f4Enum'
      required:
        - current_status
        - declaration_type
        - key
        - title
    DeclarationTypeEnum:
      enum:
        - pro
        - non_pro
        - cme_subscriber_addendum
      type: string
      description: |-
        * `pro` - Pro
        * `non_pro` - Non-Pro
        * `cme_subscriber_addendum` - CME Subscriber Addendum
    KeyEnum:
      enum:
        - self_cert_pro_status
        - self_cert_non_pro_status
        - cme_subscriber_addendum
      type: string
      description: |-
        * `self_cert_pro_status` - Self Certification Pro Status
        * `self_cert_non_pro_status` - Self Certification Non-Pro Status
        * `cme_subscriber_addendum` - CME Subscriber Addendum
    CurrentStatus1f4Enum:
      enum:
        - accepted
        - declined
        - pending
        - cancelled
      type: string
      description: |-
        * `accepted` - Accepted
        * `declined` - Declined
        * `pending` - Pending
        * `cancelled` - Cancelled
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````

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