---
title: "Start login (QR or phone number)"
locale: en
url: https://tlg.builera.app/en/docs/reference/rest/accounts.login_start
verified: 2026-10-24
app_version: "2.0"
generated: true
---

# Start login (QR or phone number)

Start a Telegram login. Returns attemptId; poll accounts_login_status for the QR link or code prompt. Show the QR only to the account owner.

Start a Telegram login. Returns attemptId; poll accounts_login_status for the QR link or code prompt. Show the QR only to the account owner.

## Overview

| Name | Value |
| --- | --- |
| Code | `accounts.login_start` |
| Scope needed | `accounts.manage` |
| Risk | Write |
| May need confirmation | No |
| Runs as | Queues work for a node |
| Needs `Idempotency-Key` | Yes |
| Member roles allowed | `owner`, `manager` |
| In the app | Accounts → Login |

## Input fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `accountId` | `uuid` | Yes |   |
| `method` | `"qr" \| "phone"` | Yes |   |
| `phone` | `text` | No |   |

## Example request

```bash
curl -X POST https://tlg.builera.app/api/public/v2/ops/accounts.login_start \
  -H "Authorization: Bearer $TELEGRAM_AUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: <unique key per operation>" \
  -d '{"accountId":"00000000-0000-0000-0000-000000000000","method":"qr"}'
```

## Output fields (`data`)

| Field | Type | Required |
| --- | --- | --- |
| `ok` | `true` | Yes |
| `attemptId` | `text` | Yes |

## Example answer

```json
{
  "data": {
    "ok": true,
    "attemptId": "00000000-0000-4000-8000-000000000000"
  }
}
```

## Using it over MCP

Tool `accounts_login_start` is listed on the profiles: Administration (`admin`). On other profiles, find it with `tools_search` and run it with `tools_run`.
