Auth Telegram Widget
curl --request POST \
--url https://api.example.com/cabinet/auth/telegram/widget \
--header 'Content-Type: application/json' \
--data '
{
"id": 123,
"first_name": "<string>",
"auth_date": 123,
"hash": "<string>",
"last_name": "<string>",
"username": "<string>",
"photo_url": "<string>",
"campaign_slug": "<string>",
"referral_code": "<string>"
}
'import requests
url = "https://api.example.com/cabinet/auth/telegram/widget"
payload = {
"id": 123,
"first_name": "<string>",
"auth_date": 123,
"hash": "<string>",
"last_name": "<string>",
"username": "<string>",
"photo_url": "<string>",
"campaign_slug": "<string>",
"referral_code": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 123,
first_name: '<string>',
auth_date: 123,
hash: '<string>',
last_name: '<string>',
username: '<string>',
photo_url: '<string>',
campaign_slug: '<string>',
referral_code: '<string>'
})
};
fetch('https://api.example.com/cabinet/auth/telegram/widget', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/cabinet/auth/telegram/widget",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 123,
'first_name' => '<string>',
'auth_date' => 123,
'hash' => '<string>',
'last_name' => '<string>',
'username' => '<string>',
'photo_url' => '<string>',
'campaign_slug' => '<string>',
'referral_code' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/cabinet/auth/telegram/widget"
payload := strings.NewReader("{\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"auth_date\": 123,\n \"hash\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"photo_url\": \"<string>\",\n \"campaign_slug\": \"<string>\",\n \"referral_code\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/cabinet/auth/telegram/widget")
.header("Content-Type", "application/json")
.body("{\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"auth_date\": 123,\n \"hash\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"photo_url\": \"<string>\",\n \"campaign_slug\": \"<string>\",\n \"referral_code\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/cabinet/auth/telegram/widget")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"auth_date\": 123,\n \"hash\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"photo_url\": \"<string>\",\n \"campaign_slug\": \"<string>\",\n \"referral_code\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"access_token": "<string>",
"refresh_token": "<string>",
"expires_in": 123,
"user": {
"id": 123,
"created_at": "2023-11-07T05:31:56Z",
"telegram_id": 123,
"username": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"email_verified": false,
"balance_kopeks": 0,
"balance_rubles": 0,
"referral_code": "<string>",
"language": "ru",
"auth_type": "telegram"
},
"token_type": "bearer",
"campaign_bonus": {
"campaign_name": "<string>",
"bonus_type": "<string>",
"balance_kopeks": 0,
"subscription_days": 123,
"tariff_name": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Cabinet Auth
Auth Telegram Widget
Authenticate using Telegram Login Widget data.
This endpoint validates data from Telegram Login Widget and returns JWT tokens for authenticated access.
POST
/
cabinet
/
auth
/
telegram
/
widget
Auth Telegram Widget
curl --request POST \
--url https://api.example.com/cabinet/auth/telegram/widget \
--header 'Content-Type: application/json' \
--data '
{
"id": 123,
"first_name": "<string>",
"auth_date": 123,
"hash": "<string>",
"last_name": "<string>",
"username": "<string>",
"photo_url": "<string>",
"campaign_slug": "<string>",
"referral_code": "<string>"
}
'import requests
url = "https://api.example.com/cabinet/auth/telegram/widget"
payload = {
"id": 123,
"first_name": "<string>",
"auth_date": 123,
"hash": "<string>",
"last_name": "<string>",
"username": "<string>",
"photo_url": "<string>",
"campaign_slug": "<string>",
"referral_code": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 123,
first_name: '<string>',
auth_date: 123,
hash: '<string>',
last_name: '<string>',
username: '<string>',
photo_url: '<string>',
campaign_slug: '<string>',
referral_code: '<string>'
})
};
fetch('https://api.example.com/cabinet/auth/telegram/widget', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/cabinet/auth/telegram/widget",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'id' => 123,
'first_name' => '<string>',
'auth_date' => 123,
'hash' => '<string>',
'last_name' => '<string>',
'username' => '<string>',
'photo_url' => '<string>',
'campaign_slug' => '<string>',
'referral_code' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/cabinet/auth/telegram/widget"
payload := strings.NewReader("{\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"auth_date\": 123,\n \"hash\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"photo_url\": \"<string>\",\n \"campaign_slug\": \"<string>\",\n \"referral_code\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/cabinet/auth/telegram/widget")
.header("Content-Type", "application/json")
.body("{\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"auth_date\": 123,\n \"hash\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"photo_url\": \"<string>\",\n \"campaign_slug\": \"<string>\",\n \"referral_code\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/cabinet/auth/telegram/widget")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"auth_date\": 123,\n \"hash\": \"<string>\",\n \"last_name\": \"<string>\",\n \"username\": \"<string>\",\n \"photo_url\": \"<string>\",\n \"campaign_slug\": \"<string>\",\n \"referral_code\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"access_token": "<string>",
"refresh_token": "<string>",
"expires_in": 123,
"user": {
"id": 123,
"created_at": "2023-11-07T05:31:56Z",
"telegram_id": 123,
"username": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"email": "<string>",
"email_verified": false,
"balance_kopeks": 0,
"balance_rubles": 0,
"referral_code": "<string>",
"language": "ru",
"auth_type": "telegram"
},
"token_type": "bearer",
"campaign_bonus": {
"campaign_name": "<string>",
"bonus_type": "<string>",
"balance_kopeks": 0,
"subscription_days": 123,
"tariff_name": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Body
application/json
Request for Telegram Login Widget authentication.
Telegram user ID
User's first name
Maximum string length:
64Unix timestamp of authentication
Authentication hash
Required string length:
64User's last name
Maximum string length:
64User's username
Maximum string length:
32User's photo URL
Maximum string length:
512Campaign slug from web link
Required string length:
1 - 64Pattern:
^[a-zA-Z0-9_-]+$Referral code of inviter
Maximum string length:
32Pattern:
^[a-zA-Z0-9_-]+$Response
Successful Response
Full authentication response with tokens and user.
User data response.
Show child attributes
Show child attributes
Info about campaign bonus applied during auth.
Show child attributes
Show child attributes
⌘I
