Reseller API
Run your own store with our products. Your website reads 181 products with their prices, stock and images from our API. When your customer pays you, your site orders from us, the price comes out of your Sarim Tools wallet, and ready accounts are delivered in the same answer.
- Your prices, your profit. You pay our shop price and charge your customers what you like.
- Instant delivery. Logins come back with the order, the same way our own customers get them.
- No risk on failed items. Anything we cannot deliver is refunded to your wallet automatically.
- Built for developers. Plain JSON, a machine-readable OpenAPI spec, and order references that make retries safe.
How it works
- Create a free account, top up your wallet, and create a key under Account → Reseller API. Keep the key on your server: never put it in your website's JavaScript, or anyone could spend your wallet.
- Read
GET /productsto show our products, prices and images on your site. - When your customer pays you, call
POST /order. We take the price from your wallet and return the login straight away for ready accounts.
Base address and key
https://sarimtools.com/api/v1Send your key in the X-API-Key header (or Authorization: Bearer YOUR_KEY). Every answer is JSON with "ok": true or "ok": false and an error code.
Machine-readable spec: openapi.json (OpenAPI 3.1). Import it into Postman, Insomnia or Swagger, or give it to an AI coding assistant to build your integration.
Endpoints
| Request | What it does |
|---|---|
GET /balance | Your wallet balance in PKR. |
GET /brands | Every brand with its logo and how many products are in stock. |
GET /products | Every product: id, name, brand, price (what you pay), stock, delivery type, length, warranty, what an order needs, description, image and banner. Filters: ?brand=chatgpt, ?in_stock=1, ?q=plus. One product: ?id=p_… |
POST /order | Buy a product, paid from your wallet. Ready accounts come back with the login in the same answer. |
GET /order?id=ST… | One order with its status and logins. Also works with ?reference=your-order-number. |
GET /orders | Your latest orders, newest first. ?limit=20&page=1 |
List products
curl "https://sarimtools.com/api/v1/products?in_stock=1" \
-H "X-API-Key: YOUR_KEY"Each product looks like this (from our live catalog):
{
"id": "p_e064575d4165",
"name": "ChatGPT Plus 30D",
"brand": {
"slug": "chatgpt",
"name": "ChatGPT"
},
"price": 1800,
"shop_price": 1800,
"currency": "PKR",
"in_stock": true,
"stock": 26,
"max_quantity": 20,
"delivery": "ready_account",
"duration": "30 days",
"warranty": "7-day warranty",
"requires": [],
"months_options": null,
"description": "ChatGPT Plus GGPay stable - Format: Mail | Pass | 2FA - Pac…",
"image": "https://sarimtools.com/assets/brands/chatgpt.png",
"banner": "https://sarimtools.com/og/tools/chatgpt/chatgpt-plus-30d-83763294.png",
"url": "https://sarimtools.com/tools/chatgpt/chatgpt-plus-30d-83763294"
}requires tells you what to send with an order: "email" for invites, "accounts" (one per quantity) for upgrades on the customer's own account, "months" with one of months_options.
Place an order
curl -X POST "https://sarimtools.com/api/v1/order" \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id": "p_e064575d4165", "quantity": 1, "reference": "order-1001"}'Answer (status 201):
{
"ok": true,
"order": {
"id": "ST3F9A1C2B7D",
"reference": "order-1001",
"status": "completed",
"status_label": "Delivered",
"total": 1800,
"currency": "PKR",
"items": [
{
"product_id": "p_e064575d4165",
"name": "ChatGPT Plus 30D",
"quantity": 1,
"status": "completed",
"delivery": [
{
"login": "name@example.com",
"password": "••••••••"
}
]
}
]
},
"balance": 4200
}- Always send a
reference(your own order number). If your request times out, send it again with the same reference: you get the first order back and are never charged twice. - Allow up to 2 minutes for the answer: we buy the product while you wait.
- Invite and upgrade plans answer with status
processing. CheckGET /order?reference=…every few minutes until it sayscompleted. - If an item cannot be delivered, its status is
failedand the amount is back in your wallet automatically. - API orders also show under Orders and are emailed to you.
Errors
| Status | error | Meaning |
|---|---|---|
| 401 | missing_key, invalid_key | No key, or a wrong or revoked key. |
| 402 | insufficient_balance | Top up your wallet. The answer includes balance and needed. |
| 404 | not_found | No such product or order. |
| 409 | out_of_stock | The product sold out. Read /products again. |
| 400 | bad_quantity, missing_details, … | The message says what to fix. |
| 429 | rate_limited | Up to 120 requests and 30 orders a minute per key. |
| 503 | api_off | The API is paused for maintenance. |
Prices are in Pakistani rupees and follow our prices and the dollar rate, so read /products again at least every few hours (caching for up to 10 minutes is fine). Questions? WhatsApp us.