Contro Reseller REST API
Automate the search, purchase, and session onboarding of Telegram accounts directly from your software, Telegram bots, or web storefronts.
Overview
The Contro Reseller API enables authorized partners to programmatically access live inventory, purchase accounts instantly with atomic wallet deduction, and receive instant 2FA/SMS login codes.
| Parameter | Value | Notes |
|---|---|---|
| Base URL | https://store.contro.in |
Production HTTPS endpoint with automated SSL |
| Pricing | USD ($) Ledger |
₹1.00 INR discount automatically calculated |
| Data Format | application/json |
UTF-8 encoded JSON requests and responses |
Authentication
All endpoints (except /health) require an authorized partner key. Provide your key in the HTTP request headers using either Authorization or X-API-Key:
Authorization: Bearer pm_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rate Limits & Error Handling
The API enforces a rate limit of 30 requests per minute per key. If you exceed this rate, the API returns HTTP 429 Too Many Requests.
| HTTP Status | Meaning | Description |
|---|---|---|
200 OK | Success | Request executed successfully. |
401 Unauthorized | Invalid Key | Missing, expired, or deactivated API key. |
402 / 400 | Insufficient Funds | Wallet balance is lower than the account price. |
404 Not Found | Item Unavailable | Account has already been purchased or removed. |
429 Too Many Requests | Rate Limit | Exceeded 30 requests/min. Wait before retrying. |
Check Wallet Balance
Retrieve your partner identity, username, and current available balance in USD.
Code Example:
curl -X GET "https://store.contro.in/me" -H "Authorization: Bearer YOUR_API_KEY"
Response (`200 OK`):
{
"user": {
"user_id": 894619572,
"username": "ResellerBot",
"balance": "45.50",
"convertedBalance": 45.5,
"currency": "usd"
}
}
Search & Browse Accounts
Query live verified Telegram accounts with country filters, sorting, and pagination.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
country[] |
string | None | Filter by ISO country code (e.g. US, RU, ID) |
order_by |
string | price_to_up |
Sort order: price_to_up (cheapest), pdate_to_down (newest) |
page |
integer | 1 |
Page index for paginated browsing |
Code Example:
curl -X GET "https://store.contro.in/telegram?country[]=US&order_by=price_to_up" -H "Authorization: Bearer YOUR_API_KEY"
Response (`200 OK`):
{
"items": [
{
"item_id": 8847291,
"title": "Telegram [US] +12025550199 | Clean Session",
"price": 1.25,
"currency": "usd",
"telegram_country": "US",
"telegram_phone": "+12025550199"
}
],
"totalItems": 48
}
Account Detail
Retrieve detailed properties, pricing, and live specifications for a specific Telegram account before purchasing.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
item_id required |
integer / string | Unique identifier of the Telegram inventory item. |
Example Request
curl -X GET "https://store.contro.in/8847291" -H "Authorization: Bearer pm_live_YOUR_KEY_HERE"
Response (200 OK):
{
"item": {
"item_id": 8847291,
"title": "Telegram [US] +12025550199 | Clean Session",
"price": 1.25,
"currency": "usd",
"telegram_country": "US",
"telegram_dc_id": "5",
"telegram_last_seen": 1793992039,
"telegram_premium": 0,
"telegram_stars_count": 0,
"item_origin": "resale",
"canBuyItem": true
}
}
Fast Buy (Instant Purchase)
Executes an atomic purchase of the selected account. The exact price is debited from your USD wallet balance, and credentials are returned immediately.
Body Payload (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
max_price |
float | Optional | Maximum acceptable retail price in USD (prevents slippage) |
Code Example:
curl -X POST "https://store.contro.in/8847291/fast-buy" -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"max_price": 1.50}'
Response (`200 OK`):
{
"status": "success",
"item": {
"item_id": "8847291",
"order_id": "ORD-12345",
"price": 1.25,
"phone": "+12025550199",
"login_data": {
"phone": "+12025550199",
"auth_key": "string_or_session_key",
"two_factor_password": "optional_2fa_password"
}
}
}
Fetch Telegram Login Code (OTP)
After initiating a login request in the Telegram client, wait 5–10 seconds and call this endpoint to retrieve the incoming verification code.
Code Example:
curl -X GET "https://store.contro.in/8847291/telegram-login-code" -H "Authorization: Bearer YOUR_API_KEY"
Response (`200 OK`):
{
"code": "48192",
"codes": [
{
"code": "48192",
"date": 1730000000
}
]
}
Terminate Other Sessions
Terminates all other active Telegram authorizations to ensure that only your session holds access.
curl -X POST "https://store.contro.in/8847291/telegram-reset-authorizations" -H "Authorization: Bearer YOUR_API_KEY"
Response (`200 OK`):
{
"result": true,
"message": "All other active authorizations have been terminated."
}
QR Challenge Login
Authorize a Telegram Desktop or web session by scanning a QR challenge token directly.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
item_id required |
integer / string | The unique item ID of your purchased Telegram account. |
Body Payload (JSON)
| Field | Type | Description |
|---|---|---|
challenge required |
string | The raw Telegram QR challenge URI (tg://login?token=...). |
Example Request
curl -X POST "https://store.contro.in/8847291/qr-login" -H "Authorization: Bearer pm_live_YOUR_KEY_HERE" -H "Content-Type: application/json" -d '{"challenge": "tg://login?token=AQAD..."}'
Response (200 OK):
{
"result": {
"status": "authorized",
"device": "Telegram Desktop",
"ip": "127.0.0.1"
}
}
Order History
Retrieve the complete purchase and fulfillment history for your partner account with pagination.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page |
integer | 1 | Page index for paginated order results. |
Example Request
curl -X GET "https://store.contro.in/user/orders?page=1" -H "Authorization: Bearer pm_live_YOUR_KEY_HERE"
Response (200 OK):
{
"items": [
{
"item_id": "ORD-B7107312",
"order_id": "ORD-B7107312",
"telegram_phone": "+12025550199",
"telegram_country": "US",
"price": 1.25,
"item_state": "delivered",
"created_at": "2026-11-06 20:00:03"
}
],
"totalItems": 1,
"page": 1,
"hasNextPage": false
}
Complete Python Integration Script
Here is an end-to-end Python script demonstrating the full lifecycle from checking balance to purchasing and fetching the login code:
import time
import requests
API_KEY = "pm_live_YOUR_KEY_HERE"
BASE_URL = "https://store.contro.in"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1. Check Balance
me = requests.get(f"{BASE_URL}/me", headers=HEADERS).json()
print(f"Connected as {me['user']['username']} | Balance: ${me['user']['balance']} USD")
# 2. Search US Accounts
catalog = requests.get(f"{BASE_URL}/telegram?country[]=US&order_by=price_to_up", headers=HEADERS).json()
items = catalog.get("items", [])
if not items:
print("No stock available currently.")
exit()
target = items[0]
item_id = target["item_id"]
print(f"Selected Item #{item_id}: {target['title']} - ${target['price']} USD")
# 3. Buy Account
buy = requests.post(f"{BASE_URL}/{item_id}/fast-buy", headers=HEADERS, json={"max_price": target["price"]}).json()
if buy.get("status") != "success":
print("Purchase failed:", buy)
exit()
phone = buy["item"]["phone"]
print(f"Purchased! Phone: {phone}")
print("Please enter the phone in Telegram now...")
# 4. Fetch Login Code (wait 10 seconds first)
time.sleep(10)
code_res = requests.get(f"{BASE_URL}/{item_id}/telegram-login-code", headers=HEADERS).json()
print("Telegram Code:", code_res.get("code"))
# 5. Terminate Other Sessions
reset_res = requests.post(f"{BASE_URL}/{item_id}/telegram-reset-authorizations", headers=HEADERS).json()
print("Sessions Terminated:", reset_res.get("message"))