---
title: "Check whether on Telegram"
locale: en
url: https://tlg.builera.app/en/docs/reference/rest/contacts.check_exists
verified: 2026-10-24
app_version: "2.0"
generated: true
---

# Check whether on Telegram

Ask Telegram from an account whether a phone number or @username is a person: exists = true / false / unknown (a hidden phone number looks like an unused one, so phone misses are unknown). Goes through the account's queue and safety gate; saves nothing. pending=true → follow jobId with operations.get.

Ask Telegram from an account whether a phone number or @username is a person: exists = true / false / unknown (a hidden phone number looks like an unused one, so phone misses are unknown). Goes through the account's queue and safety gate; saves nothing. pending=true → follow jobId with operations.get.

## Overview

| Name | Value |
| --- | --- |
| Code | `contacts.check_exists` |
| Scope needed | `contacts.write` |
| Risk | Write |
| May need confirmation | No |
| Runs as | Queues work for a node |
| Needs `Idempotency-Key` | Yes |
| Member roles allowed | `owner`, `manager`, `agent` |
| In the app | Inbox → New message → Search |

## Input fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `accountId` | `uuid` | Yes |   |
| `query` | `text` | Yes |   |
| `waitSec` | `integer` | No |   |

## Example request

```bash
curl -X POST https://tlg.builera.app/api/public/v2/ops/contacts.check_exists \
  -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","query":"…"}'
```

## Output fields (`data`)

| Field | Type | Required |
| --- | --- | --- |
| `jobId` | `text` | Yes |
| `exists` | `true/false \| "unknown"` | Yes |
| `pending` | `true/false` | Yes |
| `reason` | `"held" \| "running" \| "failed" \| "found" \| "not_a_person" \| "username_not_found" \| "phone_hidden_or_unused" \| "retry_later"` | Yes |
| `ok` | `true` | Yes |

## Example answer

```json
{
  "data": {
    "jobId": "00000000-0000-4000-8000-000000000000",
    "exists": true,
    "pending": true,
    "reason": "held",
    "ok": true
  }
}
```

## Using it over MCP

Tool `contacts_check_exists` is listed on the profiles: Real-time operations (`realtime`), Automation setup (`setup`), Discover (`prospecting`), Reports (`reports`), Administration (`admin`), Full (`full`). On other profiles, find it with `tools_search` and run it with `tools_run`.
