Skip to main content
AI tutorials

Build a Reseller Workflow with the Zad Top HTTP API

Learn how to connect to the Zad Top HTTP API, authenticate requests, redeem codes for players, check cards before spending them, query player details, and manage reseller stock using the documented endpoints.

Build a Reseller Workflow with the Zad Top HTTP API

Zad Top is an independent Telegram bot and HTTP API for resellers, shops, panels, and custom bots. It provides services for Free Fire, PUBG Mobile, Yalla Ludo, Jawaker, iTunes, and Razer Gold, including code redemption, card checking, player lookup, stock redemption, and order screenshots.

The repository is a public developer hub rather than the bot source code. The live API documentation is available at api.zadtop.com/docs, with an interactive Swagger interface and an OpenAPI document.

Zad Top — Telegram redeem bot and HTTP API

What you can build

With Zad Top, you can create a reseller workflow that sends digital codes to player IDs, checks supported cards before redemption, retrieves in-game player names and regions, and redeems products from stored stock. You can also request a shop order image after a successful redemption.

  • Redeem Free Fire, PUBG Mobile UC, Yalla Ludo Diamonds and Gold, and Jawaker tokens.
  • Check supported Free Fire, PUBG, Yalla Ludo Diamonds, iTunes, and Razer Gold cards.
  • Recharge a Razer Gold PIN into your own wallet.
  • Look up a player's in-game name and region before spending a code.
  • Store codes in the bot and redeem stock packs instead of submitting individual codes.
  • Retrieve an order screenshot for a shop workflow.
Games and cards

Prepare access and authentication

To use the HTTP API, open @ZadTopBot in Telegram and select Subscription followed by HTTP API. You need an active plan and the HTTP API add-on. The README lists the add-on at 15 USDT for 30 days. A separate Code checking subscription can call the check routes on its own.

After obtaining an API key, send it in the X-API-Key header on every authenticated request:

X-API-Key: pk_YOUR_KEY

Star Zad Top on GitHub

Creating a new key revokes the previous key, so update your application configuration whenever you rotate credentials. Keep the key on your server and do not expose it in browser-side code or public repositories.

Make your first instant redemption

The POST /v1/jobs/instant-redeem route redeems one or more codes for a player ID. The request uses JSON and requires the API key and content type headers.

curl -sS -X POST https://api.zadtop.com/v1/jobs/instant-redeem \
  -H "X-API-Key: pk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"player_id":"2186053213","codes":["4233939008625064"],"game":"freefire"}'

The game value in this example is freefire. Other supported values include pubg, ludo, ludogold, jawaker, razer_recharge, and the other service-specific values described in the API documentation.

Redemption requests are jobs. A job reaching done means processing has finished, but each submitted code has its own success result and, when applicable, an err_code. Do not treat a completed job as proof that every code succeeded.

Instant redeem

Track jobs and results

Use GET /v1/jobs/{id} to retrieve a job's state and result. You can add ?wait=25 to wait for up to the specified period rather than polling immediately.

curl -sS "https://api.zadtop.com/v1/jobs/JOB_ID?wait=25" \
  -H "X-API-Key: pk_YOUR_KEY"

Zad Top — Telegram redeem bot and HTTP API

A practical integration should store the job ID, request the job result, and then inspect every code-level result. Report successful and failed codes separately to the customer or reseller dashboard.

Check codes before redeeming

The POST /v1/codes/check route checks up to 20 cards without redeeming them. For larger batches, use POST /v1/jobs/code-check, which supports up to 10,000 cards as a job.

Check a code before you spend it

Supported results depend on the game. Free Fire can report unused, used, or invalid states and may include the pack. PUBG can report unused, used, expired, or invalid states and may include a value when the shop knows it. Yalla Ludo Diamonds can be checked, but Gold does not have a check route. A Gold code sent to the Diamonds checker can be spent, so verify the product type before submitting it.

iTunes checks return a dollar balance. The first read after a quiet period can take up to a minute. Razer Gold checks return live, used, or invalid states without spending the PIN, but the README specifies a limit of five requests per PIN.

Look up a player first

Before redeeming, call GET /v1/player/lookup to retrieve the in-game name and region. This helps prevent sending a valid code to the wrong player ID.

curl -sS "https://api.zadtop.com/v1/player/lookup?player_id=2186053213&game=freefire" \
  -H "X-API-Key: pk_YOUR_KEY"

Use the returned identity details as a confirmation step in your user interface. The README states that you are responsible for the player ID you choose, and a valid code is credited to the account sent from the first successful contact with the shop.

Instant redeem

Use stock redemption

If you maintain inventory in Zad Top, use POST /v1/jobs/stock-redeem to redeem from stored stock rather than pasting codes into every order. The GET /v1/stock/summary route reports stock by game and pack.

curl -sS https://api.zadtop.com/v1/stock/summary \
  -H "X-API-Key: pk_YOUR_KEY"

The exact stock redemption fields and pack identifiers should be taken from the live reference or the repository's endpoint guide. This avoids hard-coding assumptions about available stock categories.

Game-specific considerations

  • Free Fire: Supports redemption and checking.
  • PUBG Mobile: Supports UC redemption and checking.
  • Yalla Ludo: Use ludo or ludogold as appropriate. Redemption requires a tier. Diamonds can be checked, while Gold cannot.
  • Jawaker: Supports redemption, but there is no standalone check for its 12-character PIN.
  • iTunes: Supports balance checking only through the listed service; the first request after inactivity may take up to a minute.
  • Razer Gold: Supports PIN checking without spending the PIN. The razer_recharge operation credits a PIN to your wallet and requires an email address and password. The password is not stored.

Add account and shop operations

The API also provides account and reseller-oriented routes:

  • GET /v1/me for account information.
  • GET /v1/quota for allowance information.
  • GET /v1/history for operation history.
  • GET /v1/players for saved players.
  • POST /v1/order/screenshot for a shop order image after a successful redemption.

Check a code before you spend it

These routes can support an administrative dashboard, while the job and lookup routes can power a customer-facing order flow.

Understand limits and usage costs

The README states that a redeem costs one request per code, a check costs one request per card, and a Razer Gold check costs five requests per PIN. A player lookup costs 0.25 request. A shop refusal and a failure before a result is returned also count according to the documented usage rules.

Daily limits reset at midnight UTC and are shared by the games on the plan, the Telegram bot, and the API. New accounts receive 10 free redeems. Plan prices and availability can change, so confirm current terms through the bot or official site before building a billing workflow.

Recommended integration flow

  1. Collect the player's game, player ID, product, and code.
  2. Call the player lookup endpoint and display the returned name and region for confirmation.
  3. For supported products, check the code before redemption.
  4. Submit an instant redemption or stock redemption job.
  5. Poll /v1/jobs/{id} or use the wait parameter.
  6. Inspect the overall job state and each code's success and err_code fields.
  7. Show a clear result to the customer and optionally request an order screenshot.

Advanced implementation tips

Protect credentials

Store the API key in server-side environment variables or a secrets manager. Avoid placing it in mobile applications, frontend JavaScript, logs, or support screenshots.

Games and cards

Design for asynchronous processing

Redeem and batch-check operations are jobs. Persist job identifiers, support retries for safe status reads, and distinguish transport errors from code-level failures. A done job still requires inspection of individual results.

Validate product and game combinations

Use an explicit product mapping in your application so that Diamonds, Gold, UC, and other products cannot be accidentally sent to the wrong route or checker. This is particularly important for Yalla Ludo, where Gold has no check and can be spent by an unsuitable check request.

Account for latency and quotas

Allow extra time for iTunes balance reads and batch jobs. Track quota usage locally, especially for Razer checks, because one PIN can consume five requests. Also account for the shared daily allowance across bot and API activity.

Conclusion

Zad Top provides a focused API for digital-game and gift-card reseller workflows. Start with API access and the X-API-Key header, verify player identities, use checks where supported, submit redemption jobs, and evaluate every code-level result. For endpoint details and current service behavior, consult the HTML API reference, Swagger documentation, and the project's GitHub repository.

Zad Top is an independent service and is not affiliated with Garena, Krafton, Tencent, Yalla Games, Apple, Razer, or Jawaker.