🌸 SAKURA API • RESELLER REST PORTAL
Live v1.0 Production 🌸 Sakura Pink Edition

Ultra-fast automated Telegram account purchase, real-time balance queries, and instant login OTP extraction API engineered for SMM panels, custom bots, and automated scrapers.

🌸 1. Authentication & Setup

Every API request requires your secret key. You can get or regenerate it inside our Telegram Bot via /api or My Profile > Developer API.

Headers: Authorization: Bearer YOUR_API_KEY
Query Param: ?api_key=YOUR_API_KEY

🔑 2. Live Key Auto-Fill & Tester

Enter your API key below to personalize all code snippets on this page instantly:

All Endpoints
💰 Wallet & Status
📦 Stock & Pricing
🛒 Purchase & Buy
📲 OTP & Session
GET /api/v1/ping
Health Check • Public

Validates REST server health, current uptime, and timestamp. Does not require authentication.

curl -X GET "https://sakura-api.duckdns.org/api/v1/ping"

EXAMPLE RESPONSE (200 OK):

{
  "status": "ok",
  "service": "Store Bot Reseller REST API",
  "version": "1.0.0",
  "timestamp": "2026-09-28T03:30:00Z"
}
GET /api/v1/balance
Wallet • Auth Required

Fetches your current real-time wallet balance (in INR), total spent amount, account status, and user ID.

curl -X GET "https://sakura-api.duckdns.org/api/v1/balance" \
  -H "Authorization: Bearer YOUR_API_KEY"

EXAMPLE RESPONSE (200 OK):

{
  "success": true,
  "user_id": 7001025192,
  "balance": 1500.00,
  "total_spent": 350.00,
  "currency": "INR",
  "status": "active"
}
GET /api/v1/stock
Inventory • Also at /api/v1/services

Retrieves the complete live catalog of all available countries, active stock count, and real-time prices in INR for both Instant (Server 1) and Premium (Server 2) pools.

curl -X GET "https://sakura-api.duckdns.org/api/v1/stock" \
  -H "Authorization: Bearer YOUR_API_KEY"

EXAMPLE RESPONSE (200 OK):

{
  "success": true,
  "total_stock": 1420,
  "items": [
    { "country_code": "IN", "country_name": "India 🇮🇳", "count": 285, "price_inr": 28.50, "server": 1 },
    { "country_code": "US", "country_name": "USA 🇺🇸", "count": 140, "price_inr": 34.00, "server": 1 },
    { "country_code": "ID", "country_name": "Indonesia 🇮🇩", "count": 92, "price_inr": 22.00, "server": 1 }
  ]
}
POST /api/v1/buy
Instant Purchase • Also at /api/v1/order

Immediately purchases an authentic Telegram account from available stock. Deducts funds from your bot wallet, activates spend-lock protection, and delivers phone number, 2FA password, and full Telethon session file link.

📋 REQUEST PARAMETERS (JSON or Form)
FieldTypeRequiredDescription
countrystringREQUIRED2-letter ISO country code (e.g. IN, US, ID, RU)
serverintegerOPTIONAL1 for Instant Market (default), 2 for Premium Stock
max_pricefloatOPTIONALSafety price ceiling in INR. Aborts purchase if lowest price exceeds this.
curl -X POST "https://sakura-api.duckdns.org/api/v1/buy" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country": "IN", "server": 1, "max_price": 32.00}'

EXAMPLE RESPONSE (200 OK):

{
  "success": true,
  "order_id": "6aa7e769d52540d916bc5f94",
  "phone": "+919876543210",
  "country": "IN",
  "price_deducted": 28.50,
  "remaining_balance": 1471.50,
  "password_2fa": "None / Disabled",
  "session_string": "1BJWap1wB...",
  "session_download_url": "https://sakura-api.duckdns.org/api/v1/session?order_id=6aa7e769d52540d916bc5f94",
  "otp_url": "https://sakura-api.duckdns.org/api/v1/otp?order_id=6aa7e769d52540d916bc5f94"
}
GET /api/v1/otp
Live OTP Extraction • Also at /api/v1/code

Retrieves the real-time incoming Telegram login OTP verification code sent to the phone. Poll this endpoint every 3–5 seconds until the code arrives.

📋 QUERY PARAMETERS
FieldTypeRequiredDescription
order_idstringREQUIREDOrder ID returned by the /api/v1/buy endpoint
curl -X GET "https://sakura-api.duckdns.org/api/v1/otp?order_id=6aa7e769d52540d916bc5f94" \
  -H "Authorization: Bearer YOUR_API_KEY"

EXAMPLE RESPONSE (OTP RECEIVED):

{
  "success": true,
  "order_id": "6aa7e769d52540d916bc5f94",
  "phone": "+919876543210",
  "otp": "58219",
  "status": "received",
  "message": "Telegram login code retrieved successfully."
}
GET /api/v1/session
Direct File Download

Direct binary download of the Telethon SQLite .session file for automated integration with scripts, Pyrogram, and MTProto bots.

curl -O -J "https://sakura-api.duckdns.org/api/v1/session?order_id=6aa7e769d52540d916bc5f94" \
  -H "Authorization: Bearer YOUR_API_KEY"
POST /api/v1/regenerate_key
Security & Revocation

Revokes your current API key immediately and issues a fresh high-entropy key. All existing automations with the old key will be denied access.

curl -X POST "https://sakura-api.duckdns.org/api/v1/regenerate_key" \
  -H "Authorization: Bearer YOUR_API_KEY"

🌸 Complete End-to-End Automation Pipeline (Python)

Copy-pasteable script that checks balance, buys an Indian Telegram account, polls for the incoming login OTP code, and downloads the .session file automatically:

full_workflow.py
import requests
import time

BASE_URL = "https://sakura-api.duckdns.org/api/v1"
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1. Check current wallet balance
balance_data = requests.get(f"{BASE_URL}/balance", headers=HEADERS).json()
print(f"💰 Wallet Balance: ₹{balance_data.get('balance', 0)}")

# 2. Purchase Indian account (Server 1)
print("🛒 Purchasing Telegram account...")
buy_res = requests.post(f"{BASE_URL}/buy", json={"country": "IN", "server": 1}, headers=HEADERS).json()

if not buy_res.get("success"):
    print("❌ Purchase failed:", buy_res.get("error"))
    exit(1)

order_id = buy_res["order_id"]
phone = buy_res["phone"]
print(f"✅ Success! Phone: {phone} | Order ID: {order_id}")

# 3. Poll for incoming login OTP code
print("📲 Waiting for Telegram login code...")
otp = None
for attempt in range(12):
    time.sleep(5)
    otp_data = requests.get(f"{BASE_URL}/otp?order_id={order_id}", headers=HEADERS).json()
    if otp_data.get("otp"):
        otp = otp_data["otp"]
        print(f"🎉 Telegram Login OTP Received: {otp}")
        break
    print(f"⏳ Waiting for OTP... (Attempt {attempt + 1}/12)")

# 4. Download .session file
session_res = requests.get(f"{BASE_URL}/session?order_id={order_id}", headers=HEADERS)
with open(f"{phone}.session", "wb") as f:
    f.write(session_res.content)
print(f"💾 Saved session file to {phone}.session!")