ProdSeller API

Resell products from your balance on any bot or website. Authenticate with your API key, list available products, create orders deducted from your balance, and get instant key delivery.

Base URL http://51.77.244.194/v1

API Key Auth

Send your key in the X-API-Key header with every request.

Balance-based

Orders are deducted directly from your USDT balance — no payment step needed.

Rate limit

300 requests per 15 minutes per IP. Use the X-RateLimit-* headers to track usage.

Authentication

Every request must include your API key in the X-API-Key request header. Get or generate your key in the ProdSeller admin panel under API Manager.

Header format

X-API-Key: psk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Example request
# curl
curl -H "X-API-Key: psk_YOUR_KEY" http://51.77.244.194/v1/balance

Error Handling

All errors return a JSON object with an error field and a standard HTTP status code.

// Error response shape
{
  "error": "Solde insuffisant"
}
CodeMeaning
401API key missing, invalid, or disabled
400Bad request — missing or invalid parameter
402Insufficient balance
404Resource not found
409Conflict — e.g., out of stock
429Rate limit exceeded
500Internal server error

Endpoints

GET /v1/products List all active products

Returns all active products available for purchase.

Response
{
  "products": [
    {
      "id":          "64abc...",
      "name":        "ChatGpt Pro K12",
      "description": "ChatGPT Pro account access",
      "price":       0.5,
      "imageUrl":    "https://...",
      "delivery":    { "type": "instant" },
      "sold":        0,
      "inStock":     true
    }
  ]
}
GET /v1/products/:id Get product details
ParameterTypeDescription
id *stringMongoDB product ID
Response
{
  "id":      "64abc...",
  "name":    "ChatGpt Pro K12",
  "price":   0.5,
  "stock":   28,   // null for custom-delivery products
  "delivery": { "type": "instant" }
}
GET /v1/balance Get your current balance

Returns the balance and membership tier of the user linked to the API key.

Response
{
  "telegramId": 123456789,
  "username":   "mybot",
  "balance":    25.50,
  "membership": "gold"
}
POST /v1/orders Create an order (deducts balance)

Purchases a product and delivers the key(s) instantly. The order amount is deducted from your balance. Your membership discount is applied automatically.

Request body

FieldTypeDescription
productId *stringProduct ID to purchase
quantitynumberQuantity (default: 1)
Request
{
  "productId": "64abc...",
  "quantity":  1
}
Response (instant delivery)
{
  "orderId":       "64xyz...",
  "status":        "delivered",
  "product":       { "id": "64abc...", "name": "ChatGpt Pro K12" },
  "quantity":      1,
  "amount":        0.5,
  "discountPercent": 5,
  "discountAmount":  0.25,
  "deliveredKey":  "email:pass123",   // single key
  "deliveredKeys": ["key1", "key2"],  // multiple (quantity > 1)
  "createdAt":     "2026-01-15T10:30:00Z"
}
GET /v1/orders/:id Get order status
ParameterTypeDescription
id *stringOrder ID returned from POST /orders
Response
{
  "orderId":      "64xyz...",
  "status":       "delivered",  // pending | paid | delivered | failed
  "product":      { "id": "...", "name": "..." },
  "quantity":     1,
  "amount":       0.5,
  "deliveredKey": "email:pass"
}

Code Examples

Python

Python — buy a product
import requests

API_KEY  = "psk_YOUR_KEY_HERE"
BASE_URL = "http://51.77.244.194/v1"
HEADERS  = { "X-API-Key": API_KEY }

# 1. List products
products = requests.get(f"{BASE_URL}/products", headers=HEADERS).json()["products"]
product  = products[0]
print(f"Buying: {product['name']} — ${product['price']}")

# 2. Check balance
balance = requests.get(f"{BASE_URL}/balance", headers=HEADERS).json()["balance"]
print(f"Balance: ${balance}")

# 3. Create order
order = requests.post(f"{BASE_URL}/orders", headers=HEADERS, json={
    "productId": product["id"],
    "quantity": 1
}).json()

print(f"Key: {order.get('deliveredKey')}")

Node.js

Node.js — buy a product
const API_KEY  = 'psk_YOUR_KEY_HERE';
const BASE_URL = 'http://51.77.244.194/v1';
const headers  = { 'X-API-Key': API_KEY, 'Content-Type': 'application/json' };

// List products
const { products } = await fetch(`${BASE_URL}/products`, { headers }).then(r => r.json());

// Buy first product
const order = await fetch(`${BASE_URL}/orders`, {
  method: 'POST', headers,
  body: JSON.stringify({ productId: products[0].id, quantity: 1 })
}).then(r => r.json());

console.log('Delivered key:', order.deliveredKey);

Telegram Bot (python-telegram-bot)

Python — Telegram bot handler
from telegram import Update
from telegram.ext import CommandHandler, ApplicationBuilder
import requests

API_KEY = "psk_YOUR_KEY"
HEADERS = { "X-API-Key": API_KEY }
BASE    = "http://51.77.244.194/v1"

async def buy(update: Update, context):
    args = context.args
    if not args:
        await update.message.reply_text("Usage: /buy <productId>")
        return

    resp  = requests.post(f"{BASE}/orders", headers=HEADERS,
                          json={ "productId": args[0], "quantity": 1 })
    order = resp.json()

    if "error" in order:
        await update.message.reply_text(f"❌ {order['error']}")
    else:
        key = order.get("deliveredKey", "(pending delivery)")
        await update.message.reply_text(f"✅ Order #{order['orderId'][:8]}\n\n🔑 {key}")

app = ApplicationBuilder().token("BOT_TOKEN").build()
app.add_handler(CommandHandler("buy", buy))
app.run_polling()