Bulk AI subscriptions and gift cards: wholesale via API / MCP
AIBulk has no separate "wholesaler" status and no approval queue. Any registered user can generate an API key and buy ChatGPT, Claude, Gemini, Grok, X Premium and Telegram Premium codes, plus US Apple and Roblox gift cards, in bulk from a prepaid balance, then resell or distribute them. Web retail and the API share the same price at the same level.
Who it is for
- Resellers and top-up shops: a steady supply, instant codes, and activation on behalf of your customers.
- Developers and SaaS: embed "buy an AI subscription" in your own product, buy on demand, hold no stock.
- AI agents: order, check stock and top up directly over MCP, with no human clicking through a website.
Levels and pricing
Level score = cumulative spending + current balance, never downgraded. Every product has a fixed unit price per level, identical on the web, the REST API and MCP.
| Level | Level score | Pricing |
|---|---|---|
| Lv1 | $0 | Retail price |
| Lv2 | ≥ $100 | Level price |
| Lv3 | ≥ $500 | Level price |
| Lv4 | ≥ $2,000 | Level price |
| Lv5 | ≥ $10,000 | Best price |
Topping up raises your level immediately: deposit 500 USDT and every later order is priced at Lv3. Your current unit price per product is shown on the product page after login or in GET /wholesale/v1/products.
How to integrate
- REST API:
GET /wholesale/v1/productsfor products, your unit price and stock;GET …/availability?qty=Nfor a real-time quantity check;POST /wholesale/v1/ordersto buy (balance payment returns codes synchronously; a hosted payment link is also available);POST /wholesale/v1/topupto deposit;GET /wholesale/v1/transactionsfor the ledger. Full API reference · OpenAPI · llms.txt for agents - MCP (Streamable HTTP): one command adds AIBulk to Claude Code, Cursor and other clients, with tools such as list_products, check_availability, get_balance, create_topup, purchase_codes and get_order. Config snippets are on the developer page.
- Webhooks: HMAC-signed
order.delivered,topup.credited,redemption.fulfilled / failedand more, retried up to 10 times with exponential backoff; polling remains the source of truth. - Server-side redemption:
POST /wholesale/v1/redemptionsactivates one of your own codes for a customer;redeemFieldstells you what to collect per product, so customers never visit a third-party page.
Four steps to start
- Register and sign in, then click "Get API key" in the account center (shown once, prefix
awk_). - Top up the balance in USDT / USDC (pay within 15 minutes; unpaid top-ups expire).
- Run the test product
prod_api_order_test(a real 0.01 USDT charge, quantity 1) to exercise ordering, code retrieval, idempotency and webhooks. - Go live: give every order a unique
externalOrderIdand reuse it on retries; you will never be charged twice.
Rules and guarantees
- 1 to 1000 units per order; 300 requests per minute per key.
- Orders are idempotent on
externalOrderId, top-ups onexternalTopupId; passexpectedUnitPriceto reject a changed quote instead of silently accepting it. - Codes issued through the API have no expiry; a failed redemption can be resubmitted with corrected details and the code stays valid.
fulfillmentStatus=needs_attentionmeans manual delivery or refund review: keep the original order, contact support, never reorder.- Amounts are decimal strings (for example
"12.50") in USDT / USDC; USDC deposits are credited 1:1 to the USDT balance. - Paying wallets must have no direct or indirect ties to sanctioned entities; see the Guide.
FAQ
Minimum order or monthly fee? None. Levels depend only on cumulative spending and balance; there is no minimum, no fee and no review.
How is stock guaranteed? Product pages and the availability endpoint reflect sellable quantity in real time; instant-delivery products issue codes on payment, manual-delivery products are labelled.
Can I activate in my customer's name? Yes, that is what server-side redemption is for; collect what redeemFields lists before ordering.
Do prices change? Unit prices can move with upstream costs, so send expectedUnitPrice and a change returns price_changed instead of a fill at the new price.
Contact
For integration issues, send the requestId from the failed response to Telegram @aibulk or X @aibulk_official. Related: Developer integration · Full API reference · Refund Policy
Last updated 2026-10-09