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

# Overview

We highly recommend using our [Web SDK](/sdks/client/web/qr-code-verification) as the quickest and simplest way to start implementing QR code authentication in your app. The implementation steps using the Web SDK can be found in the [using device credentials with QR codes](/authentication-methods/qr-code) guide.

If you prefer to use the API directly, then the documentation below outlines the Client API's QR code endpoints and their authentication model. We recommend using the WebSocket API for real-time feedback, falling back to REST API polling if WebSocket connections are not supported in your environment.

## WebSocket API (Recommended)

For real-time QR code authentication with immediate updates when users scan and interact with QR codes, use the [WebSocket API](/api-reference/client-api/qr-code-websocket).

The WebSocket API provides:

* Real-time state updates as users scan and respond to QR codes
* Immediate notifications for challenge approval or rejection
* Lower latency for time-sensitive authentication flows

Details on how to authenticate with the WebSocket API can be found in the [WebSocket API](/api-reference/client-api/qr-code-websocket) documentation.

## REST API

1. [Start QR Code Challenge](/api-reference/client-api/start-qr-code-challenge) - Generates a QR code challenge
2. [Verify QR Code Challenge](/api-reference/client-api/verify-qr-code-challenge) - Verifies the challenge was completed

These endpoints must be authenticated using [bearer auth with a token](/api-reference/client-api/overview#authentication).
