Available
Telegram Bot Verification
Prove that a business controls a specific Telegram bot. One API call with the bot's token: we ask Telegram which bot the token belongs to, and the answer carries a signed proof.
Proof Holdingsproof.holdings · verification api
AttestationNº 2026-0130
subject@your_bot
channelTelegram · bot token
challengevalidated via getMe with the token
received14:52:18 UTC
verdictOwnership provenonly the bot's owner holds a working token
Mintedph_ctl_5d0c…f76 · ES256
How It Works
One call, checked against Telegram itself
§ 01
Send the Username and Token
One API call carries the bot's username and its token. There is no second step.
§ 02
We Ask Telegram
We call Telegram's getMe with the token. The username in our answer is the one Telegram returns — not the one in your request — and it must match the bot you named.
§ 03
The Proof Is in the Answer
If it matches, the same response carries the proof token. We use the token once, to ask Telegram which bot it belongs to, and don't store it.
API Integration
Integrate Telegram bot verification in minutes
1. Verify the bot
# One call: the token is used once, for Telegram's getMe, and not stored.
curl -X POST https://api.proof.holdings/api/v1/verifications \
-H "Authorization: Bearer pk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "telegram_bot",
"channel": "telegram_bot_token",
"identifier": "@your_bot",
"bot_token": "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
}'2. Check the proof
# Anyone can check the proof later — no API key needed
curl -X POST https://api.proof.holdings/api/v1/proofs/validate \
-H "Content-Type: application/json" \
-d '{"token": "PROOF_TOKEN"}'Response Example
{
"id": "507f1f77bcf86cd799439011",
"type": "telegram_bot",
"channel": "telegram_bot_token",
"status": "verified",
"identifier": "@your_bot",
"verified_data": {
"bot_id": 123456,
"bot_username": "your_bot",
"bot_name": "Your Bot",
"can_join_groups": true,
"supports_inline": false
},
"proof_token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
"proof_expires_at": "2027-03-15T10:51:30Z",
"created_at": "2026-03-15T10:51:30Z"
}