⚡ Contro API Docs

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.

💡
Partner Advantage: All API prices are automatically ₹1.00 INR cheaper than standard retail Telegram bot prices, maximizing your profit margins when reselling.
ParameterValueNotes
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:

HTTP Headers
Authorization: Bearer pm_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
⚠️
Security Note: Your API key grants direct spending access to your USD wallet balance. Keep your key confidential and never publish it in public code repositories.

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 StatusMeaningDescription
200 OKSuccessRequest executed successfully.
401 UnauthorizedInvalid KeyMissing, expired, or deactivated API key.
402 / 400Insufficient FundsWallet balance is lower than the account price.
404 Not FoundItem UnavailableAccount has already been purchased or removed.
429 Too Many RequestsRate LimitExceeded 30 requests/min. Wait before retrying.

Check Wallet Balance

Retrieve your partner identity, username, and current available balance in USD.

GET /me

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.

GET /telegram

Query Parameters

ParameterTypeDefaultDescription
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.

GET /{item_id}

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.

🛡️
Atomic Balance Guarantee: If the purchase or fulfillment cannot be completed, your wallet balance is immediately and automatically refunded.
POST /{item_id}/fast-buy

Body Payload (JSON)

FieldTypeRequiredDescription
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.

GET /{item_id}/telegram-login-code

Code Example:

cURL
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.

POST /{item_id}/telegram-reset-authorizations
cURL
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.

POST /{item_id}/qr-login

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.

GET /user/orders

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:

Python (requests)
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"))