List the catalogue
GET
/v1/catalog
const url = 'https://api.pekangame.space/api/reseller/v1/catalog';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.pekangame.space/api/reseller/v1/catalog \ --header 'Authorization: Bearer <token>'Every orderable product for the calling reseller, grouped by game. Each package’s price_sen is your own price for that package, in sen. Order against packages[].code ({game code}-{denomination}). checkout_input is the game’s input contract: player_id_format (numeric = digits only, text = letters, digits and # . _ -), and field (null = send no server_id; server_id = digits only; zone_id = one of options).
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Your priced catalogue.
Media typeapplication/json
object
games
required
Array<object>
object
code
required
string | null
name
required
string
checkout_input
required
object
field
required
string | null
options
required
Array<string> | null
player_id_format
required
string
packages
required
Array<object>
object
code
required
string
name
required
string
price_sen
required
integer
Example
{ "games": [ { "code": "MLMY", "name": "Mobile Legends (Malaysia)", "checkout_input": { "field": "server_id", "options": null, "player_id_format": "numeric" }, "packages": [ { "code": "MLMY-14", "name": "14 Diamonds", "price_sen": 1200 }, { "code": "MLMY-86", "name": "86 Diamonds", "price_sen": 6300 } ] } ]}MISSING_API_KEY or INVALID_API_KEY.
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "MISSING_API_KEY", "message": "An API key is required. Send it as a bearer token."}RESELLER_INACTIVE or IP_NOT_ALLOWED.
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "RESELLER_INACTIVE", "message": "This reseller account is deactivated."}NO_TIER_ASSIGNED — this account has no pricing configured yet.
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "NO_TIER_ASSIGNED", "message": "This reseller account has no pricing configured yet. Contact PekanGame to set it up."}RATE_LIMITED — retry after the Retry-After header.
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "RATE_LIMITED", "message": "Too many requests. Retry after the period given in the Retry-After header."}