xtb-api-unofficial - v0.1.0
    Preparing search index...

    Class CASClient

    CAS authentication client for XTB xStation5.

    Flow:

    1. login(email, password) → TGT (Ticket Granting Ticket)
    2. getServiceTicket(tgt, 'xapi5') → ST (Service Ticket)
    3. Use ST with WebSocket loginWithServiceTicket

    Critical: Use service='xapi5' for WebSocket, NOT 'abigail' (that's for REST API)

    Index

    Constructors

    Methods

    • Get Service Ticket using TGT. Uses CAS v1 endpoint by default (compatible with both real and demo).

      Parameters

      • tgt: string

        Ticket Granting Ticket from login()

      • service: string = 'xapi5'

        Service name. Use 'xapi5' for WebSocket, 'abigail' for REST API

      Returns Promise<CASServiceTicketResult>

      Service ticket for the specified service

    • Extract TGT from successful login result.

      Parameters

      Returns string | null

      TGT string if login was successful, null if 2FA required

    • Login with email/password using CAS v2 with v1 fallback.

      Tries CAS v2 first (supports 2FA), falls back to CAS v1 (no 2FA) if v2 unavailable.

      Parameters

      • email: string

        XTB account email

      • password: string

        XTB account password

      Returns Promise<CASLoginResult>

      Either success with TGT or 2FA challenge requiring OTP code

      CASError if credentials invalid, account blocked, or service unavailable

    • Submit two-factor authentication code to complete login.

      Parameters

      • sessionId: string

        Session ID from initial login response

      • code: string

        OTP code (6 digits from TOTP/SMS/EMAIL)

      Returns Promise<CASLoginResult>

      TGT and expiration timestamp if successful, or new 2FA challenge

      CASError if code is invalid, rate limited, or account blocked

    • Refresh service ticket using existing TGT.

      Service tickets are single-use and expire after 2-5 minutes. Use this method to get a fresh ST when the previous one is expired.

      Parameters

      • tgt: string

        Valid Ticket Granting Ticket

      • service: string = 'xapi5'

        Service name (default: 'xapi5')

      Returns Promise<string>

      Fresh service ticket

      CASError if TGT is invalid or expired