Getting Started
#Introduction
The INDGM API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs
API Protocols
Our APIs follow the general principles of REST
-
1. We use standard
GET, POSTrequests to communicate and HTTP response codes to show status and errors. - 2. You can expect all responses to be returned as JSON.
- 3. The API request should have a Content-Type of application/json.
- 4. All endpoints require authentication with your API Keys.
#Authentication
Retrieving your API Keys
Your API keys are very vital to making requests successfully to our servers. To get your keys follow the instruction
- 1. Log into your INDGM dashboard.
- 2. Click Api Key from sidebar.
- 3. Select the API Keys open in the Api Key section of the menu to view and copy your keys.
Authorizing API calls
All API calls on INDGM are authenticated. API requests made without authorization will fail with the status : failed.
To authorize API calls from your server, pass your YOUR_PUBLIC_KEY and YOUR_SECRET_KEY as a header of api request. This means passing an Authorization header with a value of PublicKey: YOUR_PUBLIC_KEY and SecretKey: YOUR_SECRET_KEY
Generated Bearer Token
#Get Token
To generate the bearer token follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
POST
API URL: https://www.indgm.com/api/generate/authorization-token
API Key:
Get YOUR_PUBLIC_KEY and YOUR_SECRET_KEY from the account page API Key
Response format: JSON
Header Params
PublicKey* string
Find the PublicKey from user dashboard
SecretKey* string
Find the SecretKey from user dashboard
Referer* string
Your Whitelisted Domain (Must match Dashboard)
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://www.indgm.com/api/generate/authorization-token',
'headers': {
'PublicKey': 'YOUR_PUBLIC_KEY',
'SecretKey': 'YOUR_SECRET_KEY',
'Referer': 'https://your-domain.com'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://www.indgm.com/api/generate/authorization-token"
payload={}
headers = {
'PublicKey': 'YOUR_PUBLIC_KEY',
'SecretKey': 'YOUR_SECRET_KEY',
'Referer': 'https://your-domain.com'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$client = new Client();
$headers = [
'PublicKey' => 'YOUR_PUBLIC_KEY',
'SecretKey' => 'YOUR_SECRET_KEY',
'Referer' => 'https://your-domain.com'
];
$request = new Request('POST', 'https://www.indgm.com/api/generate/authorization-token', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
curl --location --request POST 'https://www.indgm.com/api/generate/authorization-token' \
--header 'PublicKey: YOUR_PUBLIC_KEY' \
--header 'SecretKey: YOUR_SECRET_KEY' \
--header 'Referer: https://your-domain.com'
require "uri"
require "net/http"
url = URI("https://www.indgm.com/api/generate/authorization-token")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["PublicKey"] = "YOUR_PUBLIC_KEY"
request["SecretKey"] = "YOUR_SECRET_KEY"
request["Referer"] = "https://your-domain.com"
response = http.request(request)
puts response.read_body
{
"status": "success",
"message": "Token generated successfully",
"bearer_token": "2|pz4WUIZZ9ugWvI1xiu6V7cs05mTrtD2ErRzLs8fFfc4d55c8"
}
{
"status": "failed",
"errors": "Something went wrong"
}
Category
#Get Category
To get all the category list follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/get-category
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
id: category id
name: category name
icon: category icon
type: which type of category, 2 type available top_up,card
active_children: how many active product in category
curl --location --request GET 'BASE_URL/get-category' \
--header 'PublicKey: YOUR_PUBLIC_KEY' \
--header 'SecretKey: YOUR_SECRET_KEY'
<?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/get-category', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var request = http.Request('GET', Uri.parse('BASE_URL/get-category'));
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
curl --location -g --request GET 'BASE_URL/get-category'
require "uri"
require "net/http"
url = URI("BASE_URL/get-category")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
response = http.request(request)
puts response.read_body
{
"status": "success",
"message": {
"categories": [
{
"id": 1,
"name": "Mobile Game Cards",
"icon": "fa-light fa-game-console-handheld",
"type": "card",
"active_children": 2
},
{
"id": 2,
"name": "Game Cards",
"icon": "fa-light fa-diamond",
"type": "card",
"active_children": 2
}
]
}
}
{
"status": "failed",
"errors": "Something went wrong"
}
Top Up API
# Get Product Catalog
Fetch the complete catalog of available games and top-ups.
https://www.indgm.com/api/top-up/listCore Response Fields
UID Validation Note
If a product entry inside the catalog contains an order_information block, it explicitly supports live verification via the /validate-account endpoint.
curl --location 'https://www.indgm.com/api/top-up/list' \
--header 'Authorization: Bearer YOUR_TOKEN'
<?php
$client = new Client();
$request = new Request('GET', 'https://www.indgm.com/api/top-up/list', [
'Authorization' => 'Bearer YOUR_TOKEN'
]);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://www.indgm.com/api/top-up/list',
'headers': { 'Authorization': 'Bearer YOUR_TOKEN' }
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "https://www.indgm.com/api/top-up/list"
headers = { 'Authorization': 'Bearer YOUR_TOKEN' }
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"status": "success",
"message": {
"items": [
{
"id": 10,
"name": "PUBG Mobile UC (Global)",
"status": 1,
"order_information": [
{ "field_name": "User_Id", "field_type": "text" },
{ "field_name": "Zone_Id", "field_type": "text" }
],
"services": [
{
"id": 29,
"name": "60 UC",
"price": 0.98,
"status": 1
}
]
}
]
}
}
# Validate Player Account ID
Verify if a Player ID or Server ID exists and fetch the player's game nickname before placing an order.
https://www.indgm.com/api/top-up/validate-accountRequired Parameters
curl --location 'https://www.indgm.com/api/top-up/validate-account' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"serviceId": 29,
"User_Id": "12345678",
"Zone_Id": "1234"
}'
<?php
$body = json_encode([
'serviceId' => 29,
'User_Id' => '12345678',
'Zone_Id' => '1234'
]);
$request = new Request('POST', 'https://www.indgm.com/api/top-up/validate-account', [
'Authorization' => 'Bearer YOUR_TOKEN',
'Content-Type' => 'application/json'
], $body);
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://www.indgm.com/api/top-up/validate-account',
'headers': {
'Authorization': 'Bearer YOUR_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({"serviceId": 29, "User_Id": "12345678", "Zone_Id": "1234"})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
{
"status": "success",
"message": "Player_Nickname"
}
{
"status": "failed",
"errors": "User ID does not exist."
}
# Place an Order
Submit a top-up request. Your wallet balance will be deducted immediately.
https://www.indgm.com/api/top-up/make-orderRequired Payload Parameters
curl --location 'https://www.indgm.com/api/top-up/make-order' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"topUpId": 10,
"serviceId": 29,
"User_Id": "12345678",
"Zone_Id": "1234"
}'
<?php
$body = json_encode([
'topUpId' => 10,
'serviceId' => 29,
'User_Id' => '12345678',
'Zone_Id' => '1234'
]);
$request = new Request('POST', 'https://www.indgm.com/api/top-up/make-order', [
'Authorization' => 'Bearer YOUR_TOKEN',
'Content-Type' => 'application/json'
], $body);
import requests
import json
url = "https://www.indgm.com/api/top-up/make-order"
payload = json.dumps({
"topUpId": 10,
"serviceId": 29,
"User_Id": "12345678",
"Zone_Id": "1234"
})
headers = {
'Authorization': 'Bearer YOUR_TOKEN',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
{
"status": "success",
"message": "Order placed successfully",
"utr": "INDGM-9847"
}
Card
#Get Cards
To get all the Card list follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/get-card
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
id: Card id
category_id: Card Category id
name: Card Name
slug: Card Slug
status: Card Status. It Should be 1 For All Active Card
product_image: The Card Image Url Path
preview_image: The Card Preview Image Url Path
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/get-card',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN',
'Cookie': '...'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
123456789101112131415
16
17181920212223242526
import requests
url = "BASE_URL/get-card"
payload = {}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN',
'Cookie': '...'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
123456789101112131415
1617181920212223242526
?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN',
'Cookie' => '...'
];
$request = new Request('GET', 'BASE_URL/get-card', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
123456789101112131415
1617181920212223242526
curl --location 'BASE_URL/get-card' \
--header 'Authorization: YOUR_BEARER_TOKEN' \
--header 'Cookie: ...'
123456789101112131415
1617181920212223242526
require "uri"
require "net/http"
url = URI("BASE_URL/get-card")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
request["Cookie"] = "...."
response = http.request(request)
puts response.read_body
123456789101112131415
1617181920212223242526
{
"status": "success",
"message": {
"cards": [
{
"id": 1,
"category_id": 1,
"name": "Honor of Kings (Global)",
"slug": "honor-of-kings-global",
"status": 1,
"product_image": "http://192.168.0.123/indgm/gamers/assets/upload/card/M8H2HEgm9F5idIYoMoU2j6ZvRrJsA6.webp",
"preview_image": "http://192.168.0.123/indgm/gamers/assets/upload/card/mQnj7yQsc0ZrRn2XaGwPuOWXYiTVwz.webp"
},
{
"id": 3,
"category_id": 1,
"name": "Mobile Legends Diamonds Pin",
"slug": "mobile-legends-diamonds-pin",
"status": 1,
"product_image": "http://192.168.0.123/indgm/gamers/assets/upload/card/7OcZfBfKnbcFotrUwDCExlIsNGS0kV.webp",
"preview_image": "http://192.168.0.123/indgm/gamers/assets/upload/card/oe0U1xKwbjjN4i1V7hjOjpfC2JSS1z.webp"
},
.....
]
}
}
123456789101112131415
1617181920212223242526
{
"status": "failed",
"errors": "Something went wrong"
}
1234567891011121314
#Get Card By Category
To get all the Card list by category id follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/get-card?category_id={category_id}
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
id: Card id
category_id: Card Category id
name: Card Name
slug: Card Slug
status: Card Status. It Should be 1 For All Active Card
product_image: The Card Image Url Path
preview_image: The Card Preview Image Url Path
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/get-card?category_id=5',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
123456789101112131415
16
17181920212223242526
import requests
url = "BASE_URL/get-card?category_id=5"
payload = {}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
123456789101112131415
1617181920212223242526
?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/get-card?category_id=5', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
123456789101112131415
1617181920212223242526
curl --location 'BASE_URL/get-card?category_id=5' \
--header 'Authorization: YOUR_BEARER_TOKEN'
123456789101112131415
1617181920212223242526
require "uri"
require "net/http"
url = URI("BASE_URL/get-card?category_id=5")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
response = http.request(request)
puts response.read_body
123456789101112131415
1617181920212223242526
{
"status": "success",
"message": {
"cards": [
{
"id": 10,
"category_id": 5,
"name": "Netflix Gift Card (MY)",
"slug": "netflix-gift-card-my",
"status": 1,
"product_image": "http://192.168.0.123/indgm/gamers/assets/upload/card/vNK9c1bqfRqceCLfsR707XNr3IYhMS.webp",
"preview_image": "http://192.168.0.123/indgm/gamers/assets/upload/card/Cpg8NhG9JWAoWCW63PB8zuo8rdHrKf.webp"
},
....
]
}
}
123456789101112131415
1617181920212223242526
{
"status": "failed",
"errors": "Something went wrong"
}
1234567891011121314
#Card Details
To get Card all information follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/card/details?card_id={card_id}
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
id: Card up id
category_id: Card Category id
name: Card Name
slug: Card Slug
region: suppoerted region or country
note: any note for the Card
status: Card Status. It Should be 1 For All Active Card
instant_delivery: 1=> if Top Up send instantly to buyer
description: Card Description
guide: Card Guide
total_review: How many review give by the buyer
avg_rating: The average review rating by the buyer
sell_count: Total Sell time
trending: Trending item for 1, 0 is normal
preview_image: Card Preview Image
product_image: Card Image
services: Card Services
gateways: Active gateways for payment
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/card/details?card_id=1',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
123456789101112131415
16
17181920212223242526
import requests
url = "BASE_URL/card/details?card_id=1"
payload = {}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
123456789101112131415
1617181920212223242526
?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/card/details?card_id=1', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
123456789101112131415
1617181920212223242526
curl --location 'BASE_URL/card/details?card_id=1' \
--header 'Authorization: YOUR_BEARER_TOKEN'
123456789101112131415
1617181920212223242526
require "uri"
require "net/http"
url = URI("BASE_URL/card/details?card_id=1")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
response = http.request(request)
puts response.read_body
123456789101112131415
1617181920212223242526
{
"status": "success",
"message": {
"services": [
{
"id": 1,
"card_id": 1,
"name": "Gift Card 10 INR IN",
"price": 0.27,
"discount": 2,
"discount_type": "percentage",
"status": 1,
"is_offered": 0,
"offered_sell": 0,
"max_sell": 0,
"sort_by": 1,
"old_data": null,
"campaign_data": null,
"created_at": "2024-08-17T05:19:12.000000Z",
"updated_at": "2024-11-11T13:03:09.000000Z",
"image_path": "https://bugfinder.net/assets/upload/card-service/kTMWS2KWNVWh9GFAwgqlYJrMqhLxbg.webp"
},
{
"id": 2,
"card_id": 1,
"name": "Gift Card 25 INR IN",
"price": 0.42,
"discount": 2,
"discount_type": "percentage",
"status": 1,
"is_offered": 0,
"offered_sell": 0,
"max_sell": 0,
"sort_by": 2,
"old_data": null,
"campaign_data": null,
"created_at": "2024-08-17T05:20:36.000000Z",
"updated_at": "2024-11-11T13:03:09.000000Z",
"image_path": "https://bugfinder.net/assets/upload/card-service/jIWZPRKnzJ91k5KcI9SwKlWPsb8LKu.webp"
},
...
]
}
}
123456789101112131415
1617181920212223242526
{
"status": "failed",
"errors": "Something went wrong"
}
1234567891011121314
#Get Card Services
To get all the Card Services list follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/card/services
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
id: Service id
card_id: Card id
name: Service Name
price: The price of service
discount: The discount amount of service
discount_type: The discount amount type. 1.percentage 2.flat
is_offered: The service is in campaign or not. 1=> yes, 0=> not
offered_sell: The campaign sell of the service
max_sell: The campaign max sell limit of the service
old_data: The actual data before campaign
campaign_data: The campaign data of the service
created_at: Service Created date
updated_at: Service updated date
image_path: Service image path
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/card/services',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
123456789101112131415
16
17181920212223242526
import requests
url = "BASE_URL/card/services"
payload = {}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
123456789101112131415
1617181920212223242526
?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/card/services', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
123456789101112131415
1617181920212223242526
curl --location 'BASE_URL/card/services' \
--header 'Authorization: YOUR_BEARER_TOKEN'
123456789101112131415
1617181920212223242526
require "uri"
require "net/http"
url = URI("BASE_URL/card/services")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
response = http.request(request)
puts response.read_body
123456789101112131415
1617181920212223242526
{
"status": "success",
"message": {
"services": [
{
"id": 1,
"card_id": 1,
"name": "Honor of Kings 16 Tokens",
"price": 2.9,
"discount": 1,
"discount_type": "percentage",
"status": 1,
"is_offered": 0,
"offered_sell": 0,
"max_sell": 0,
"sort_by": 1,
"old_data": null,
"campaign_data": null,
"created_at": "2025-03-03T09:27:53.000000Z",
"updated_at": "2025-03-06T04:58:16.000000Z",
"image_path": "http://192.168.0.123/indgm/gamers/assets/upload/card-service/ksi6iDr9d26D82ZRlr0C3CK9JNpalL.webp"
},
{
"id": 2,
"card_id": 1,
"name": "Honor of Kings 80 Tokens",
"price": 2.45,
"discount": 1,
"discount_type": "percentage",
"status": 1,
"is_offered": 1,
"offered_sell": 0,
"max_sell": 0,
"sort_by": 1,
"old_data": null,
"campaign_data": {
"price": "2.45",
"discount": "15",
"discount_type": "percentage",
"max_sell": "1000"
},
"created_at": "2025-03-03T09:28:28.000000Z",
"updated_at": "2025-03-06T04:58:16.000000Z",
"image_path": "http://192.168.0.123/indgm/gamers/assets/upload/card-service/zEhj4vofwEQIWzzbpiMj5FeOkGzcpl.webp"
},
....
]
}
}
123456789101112131415
1617181920212223242526
{
"status": "failed",
"errors": "Something went wrong"
}
1234567891011121314
#Get Services By Card
To get Services of the Card list follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/card/services?card_id={card_id}
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
id: Service id
card_id: Card id
name: Service Name
price: The price of service
discount: The discount amount of service
discount_type: The discount amount type. 1.percentage 2.flat
is_offered: The service is in campaign or not. 1=> yes, 0=> not
offered_sell: The campaign sell of the service
max_sell: The campaign max sell limit of the service
old_data: The actual data before campaign
campaign_data: The campaign data of the service
created_at: Service Created date
updated_at: Service updated date
image_path: Service image path
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/card/services?card_id=1',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
123456789101112131415
16
17181920212223242526
import requests
url = "BASE_URL/card/services?card_id=1"
payload = {}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
123456789101112131415
1617181920212223242526
?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/card/services?card_id=1', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
123456789101112131415
1617181920212223242526
curl --location 'BASE_URL/card/services?card_id=1' \
--header 'Authorization: YOUR_BEARER_TOKEN'
123456789101112131415
1617181920212223242526
require "uri"
require "net/http"
url = URI("BASE_URL/card/services?card_id=1")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
response = http.request(request)
puts response.read_body
123456789101112131415
1617181920212223242526
{
"status": "success",
"message": {
"services": [
{
"id": 1,
"card_id": 1,
"name": "Honor of Kings 16 Tokens",
"price": 2.9,
"discount": 1,
"discount_type": "percentage",
"status": 1,
"is_offered": 0,
"offered_sell": 0,
"max_sell": 0,
"sort_by": 1,
"old_data": null,
"campaign_data": null,
"created_at": "2025-03-03T09:27:53.000000Z",
"updated_at": "2025-03-06T04:58:16.000000Z",
"image_path": "http://192.168.0.123/indgm/gamers/assets/upload/card-service/ksi6iDr9d26D82ZRlr0C3CK9JNpalL.webp"
},
{
"id": 2,
"card_id": 1,
"name": "Honor of Kings 80 Tokens",
"price": 2.45,
"discount": 1,
"discount_type": "percentage",
"status": 1,
"is_offered": 1,
"offered_sell": 0,
"max_sell": 0,
"sort_by": 1,
"old_data": null,
"campaign_data": {
"price": "2.45",
"discount": "15",
"discount_type": "percentage",
"max_sell": "1000"
},
"created_at": "2025-03-03T09:28:28.000000Z",
"updated_at": "2025-03-06T04:58:16.000000Z",
"image_path": "http://192.168.0.123/indgm/gamers/assets/upload/card-service/zEhj4vofwEQIWzzbpiMj5FeOkGzcpl.webp"
},
....
]
}
}
123456789101112131415
1617181920212223242526
{
"status": "failed",
"errors": "Something went wrong"
}
1234567891011121314
#Order Card
To order card follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
POST
API URL: https://www.indgm.com/api/card/make-order
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Body Params
service_ids* array
The id of Card Service, Must be in array
quantities* array
The Quantity of each Service, Must be in array. Each quantity index value represent the same index number of service_ids quantity
var request = require('request');
var options = {
'method': 'POST',
'url': 'BASE_URL/card/make-order',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'YOUR_BEARER_TOKEN'
},
body: JSON.stringify({
"serviceIds": [
1,
2
],
"quantity": [
3,
4
]
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
123456789101112131415
16
17181920212223242526
import requests
import json
url = "BASE_URL/card/make-order"
payload = json.dumps({
"serviceIds": [
1,
2
],
"quantity": [
3,
4
]
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
123456789101112131415
1617181920212223242526
?php
$client = new Client();
$headers = [
'Content-Type' => 'application/json',
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$body = '{
"serviceIds": [
1,
2
],
"quantity": [
3,
4
]
}';
$request = new Request('POST', 'BASE_URL/card/make-order', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
123456789101112131415
1617181920212223242526
curl --location 'BASE_URL/card/make-order' \
--header 'Content-Type: application/json' \
--header 'Authorization: YOUR_BEARER_TOKEN' \
--data '{
"serviceIds": [1,2],
"quantity": [3,4]
}'
123456789101112131415
1617181920212223242526
require "uri"
require "json"
require "net/http"
url = URI("BASE_URL/card/make-order")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "YOUR_BEARER_TOKEN"
request.body = JSON.dump({
"serviceIds": [
1,
2
],
"quantity": [
3,
4
]
})
response = http.request(request)
puts response.read_body
123456789101112131415
1617181920212223242526
{
"status": "success",
"message": {
"utr": "OGRMDQJ71VF6Q"
}
}
123456789101112131415
1617181920212223242526
{
"status": "failed",
"errors": [
"The service ids field is required.",
]
}
1234567891011121314
#Get Card Reviews
To get Reviews of the Card list follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/card/review?card_id={card_id}
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
id: Review id
user_id: Reviewed User ID
rating: Card rating. min value 1 max value 5
comment: Product rating comment
user: Who give the rating
status: Status 1 for published, 0 for holded
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/card/review?card_id=9',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
123456789101112131415
16
17181920212223242526
import requests
url = "BASE_URL/card/review?card_id=9"
payload = {}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
123456789101112131415
1617181920212223242526
?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/card/review?card_id=9', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
123456789101112131415
1617181920212223242526
curl --location 'BASE_URL/card/review?card_id=9' \
--header 'Authorization: YOUR_BEARER_TOKEN'
123456789101112131415
1617181920212223242526
require "uri"
require "net/http"
url = URI("BASE_URL/card/review?card_id=9")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
response = http.request(request)
puts response.read_body
123456789101112131415
1617181920212223242526
{
"status": "success",
"message": {
"reviews": [
{
"id": 5,
"user_id": 1,
"rating": 3,
"comment": "Amazing product! Everything works flawlessly, and the convenience is unmatched. 70% satisfied!",
"status": 1,
"created_at": "2025-03-05T10:37:57.000000Z",
"updated_at": "2025-03-05T10:37:57.000000Z",
"user": {
"id": 1,
"firstname": "Demo",
"lastname": "User",
"image": "profileImage/fyT3Q7VjKDjvfYcuIXY4CqE2ob7DDP.webp",
"image_driver": "local",
"imgPath": "http://192.168.0.123/indgm/gamers/assets/upload/profileImage/fyT3Q7VjKDjvfYcuIXY4CqE2ob7DDP.webp",
"LastSeenActivity": true,
"fullname": "Demo User"
}
},
{
"id": 10,
"user_id": 29,
"rating": 3,
"comment": "Amazing product! Everything works flawlessly, and the convenience is unmatched. 70% satisfied!",
"status": 1,
"created_at": "2025-03-06T05:09:46.000000Z",
"updated_at": "2025-03-06T05:09:46.000000Z",
"user": {
"id": 29,
"firstname": "Angela",
"lastname": "Doyle",
"image": null,
"image_driver": null,
"imgPath": "http://192.168.0.123/indgm/gamers/assets/admin/img/default.png",
"LastSeenActivity": false,
"fullname": "Angela Doyle"
}
},
....
],
"pagination": {
"total": 8,
"per_page": 15,
"current_page": 1,
"last_page": 1,
"next_page_url": null,
"prev_page_url": null
}
}
}
123456789101112131415
1617181920212223242526
{
"status": "failed",
"errors": "Something went wrong"
}
1234567891011121314
#Add Card Reviews
To give a rating of card follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
POST
API URL: https://www.indgm.com/api/card/review
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Body Params
card_id* integer
The id of Card, Must be in integer positive value
rating* number
Must be in positive number between 1 to 5
comment* text
What was your experience
var request = require('request');
var options = {
'method': 'POST',
'url': 'BASE_URL/card/review',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
},
formData: {
'card_id': '9',
'rating': '5',
'comment': 'This is review'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
123456789101112131415
16
17181920212223242526
import requests
url = "BASE_URL/card/review"
payload = {'card_id': '9',
'rating': '5',
'comment': 'This is review'}
files=[
]
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
123456789101112131415
1617181920212223242526
?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$options = [
'multipart' => [
[
'name' => 'card_id',
'contents' => '9'
],
[
'name' => 'rating',
'contents' => '5'
],
[
'name' => 'comment',
'contents' => 'This is review'
]
]];
$request = new Request('POST', 'BASE_URL/card/review', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();
123456789101112131415
1617181920212223242526
curl --location 'BASE_URL/card/review' \
--header 'Authorization: YOUR_BEARER_TOKEN' \
--form 'card_id="9"' \
--form 'rating="5"' \
--form 'comment="This is review"'
123456789101112131415
1617181920212223242526
require "uri"
require "net/http"
url = URI("BASE_URL/card/review")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
form_data = [['card_id', '9'],['rating', '5'],['comment', 'This is review']]
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body
123456789101112131415
1617181920212223242526
{
"status": "success",
"message": "Review Added Successfully"
}
123456789101112131415
1617181920212223242526
{
"status": "failed",
"errors": [
"The top up id field is required.",
"The rating field is required.",
"The comment field is required."
]
}
1234567891011121314
Order List
#Top Up Order List
To get all the top up order list follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/get-topup/orders
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
utr: Unique order id
price: Order total amount
currency: Amount paid currency
status: The status of the order. 0=>initiate, 1=>completed,2=>refund,3=>stock_short
informations: Top Up order information
review_user_info: User review
order_details: array of object. every service details of order
curl --location 'BASE_URL/topUp/order' \
--header 'Authorization: YOUR_BEARER_TOKEN'
<?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/topUp/order', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/topUp/order',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "BASE_URL/topUp/order"
payload = {}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "net/http"
url = URI("BaseURL/topUp/order")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
response = http.request(request)
puts response.read_body
{
"status": "success",
"message": {
"current_page": 1,
"data": [
{
"utr": "O8NYH38WAQW8B",
"price": 54,
"currency": "USD",
"symbol": "$",
"status": "Wait Sending",
"dateTime": "2025-03-05T11:59:52.000000Z",
"order_details": [
{
"utr": "O8NYH38WAQW8B",
"rating": 5,
"image": "http://192.168.0.123/indgm/gamers/assets/upload/top-up-service/yRvTZ7P5wwOeDGE2YdCQJMk9SytjiD.webp",
"discount": 54,
"quantity": 1,
"name": "Arena Breakout: Infinite Top Up",
"service": "500 +10 Bonds",
"base_price": 108,
"currency": "USD",
"symbol": "$",
"slug": "arena-breakout-infinite-top-up"
}
],
"review_user_info": [
{
"review": {
"comment": "Amazing product! Everything works flawlessly, and the convenience is unmatched. 100% satisfied!",
"rating": 5,
"status": "active"
}
}
],
"informations": {
"Server ID": "server-5878",
"Server Name": "America"
}
}
],
"first_page_url": "http://192.168.0.123/indgm/gamers/api/topUp/order?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http://192.168.0.123/indgm/gamers/api/topUp/order?page=1",
"links": [],
"next_page_url": null,
"path": "http://192.168.0.123/indgm/gamers/api/topUp/order",
"per_page": 10,
"prev_page_url": null,
"to": 7,
"total": 7
}
}
{
"status": "failed",
"errors": "Something went wrong"
}
#Card Order List
To get all the card order list follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/get-card/orders
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
utr: Unique order id
price: Order total amount
currency: Amount paid currency
status: The status of the order. 0=>initiate, 1=>completed,2=>refund,3=>stock_short
informations: Top Up order information
review_user_info: User review
order_details: array of object. every service details of order
curl --location 'BASE_URL/card/order' \
--header 'Authorization: YOUR_BEARER_TOKEN'
<?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/card/order', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/card/order',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
},
formData: {}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "BASE_URL/card/order"
payload = {}
files={}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload, files=files)
print(response.text)
require "uri"
require "net/http"
url = URI("BASE_URL/card/order")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
form_data = []
request.set_form form_data, 'multipart/form-data'
response = http.request(request)
puts response.read_body
{
"status": "success",
"message": {
"current_page": 1,
"data": [
{
"utr": "ONS8GNE4BJ884",
"price": 34.48,
"currency": "USD",
"symbol": "$",
"status": "Complete",
"dateTime": "2025-03-05T12:02:42.000000Z",
"order_details": [
{
"utr": "ONS8GNE4BJ884",
"id": 6,
"rating": 0,
"image": "http://192.168.0.123/indgm/gamers/assets/upload/card-service/6xEzC2ACZMVChJHteBLNUAF6R63vHJ.webp",
"card": "Flexepin (CA)",
"slug": "flexepin-ca",
"service": "Flexepin 20 CAD",
"base_price": 12.62,
"currency": "USD",
"symbol": "$",
"discount": 0.38,
"quantity": 1,
"card_codes": [
"FP8796545425"
],
"stock_short": "You have 0 more code in wait sending list"
}
],
"review_user_info": [],
"informations": []
}
],
"first_page_url": "http://192.168.0.123/indgm/gamers/api/card/order?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http://192.168.0.123/indgm/gamers/api/card/order?page=1",
"links": [],
"next_page_url": null,
"path": "http://192.168.0.123/indgm/gamers/api/card/order",
"per_page": 10,
"prev_page_url": null,
"to": 10,
"total": 10
}
}
{
"status": "failed",
"errors": "Something went wrong"
}
Campaign
#Get Campaign
To get campaign list follow the example code and be careful with the parameters.
Base Urlhttps://www.indgm.com/api/
HTTP Method:
GET
API URL: https://www.indgm.com/api/get-campaign
API Key:
Pass your bearer token to the authorization header GET Bearer
Response format: JSON
Response Body
id: campaign id
name: campaign name
start_date: when campaign start
end_date: when campaign end
topups: the list of top up services for campaign
cards: the list of card services for campaign
curl --location 'BASE_URL/get-campaign' \
--header 'Authorization: YOUR_BEARER_TOKEN'
<?php
$client = new Client();
$headers = [
'Authorization' => 'YOUR_BEARER_TOKEN'
];
$request = new Request('GET', 'BASE_URL/get-campaign', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
var request = require('request');
var options = {
'method': 'GET',
'url': 'BASE_URL/get-campaign',
'headers': {
'Authorization': 'YOUR_BEARER_TOKEN'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "BASE_URL/get-campaign"
payload = {}
headers = {
'Authorization': 'YOUR_BEARER_TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
require "uri"
require "net/http"
url = URI("BASE_URL/get-campaign")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "YOUR_BEARER_TOKEN"
response = http.request(request)
puts response.read_body
{
"status": "success",
"message": {
"campaign": {
"id": 1,
"name": "Flash Deal",
"start_date": "2025-03-06",
"end_date": "2025-03-31",
"status": 1,
"created_at": "2025-03-06T04:58:14.000000Z",
"updated_at": "2025-03-06T04:58:14.000000Z",
"topups": [
{
"id": 1,
"top_up_id": 2,
"name": "MICO Live 88 Coins",
"price": 2.8,
"discount": 5,
"discount_type": "percentage",
"status": 1,
"offered_sell": 0,
"max_sell": 0,
"old_data": null,
"campaign_data": {
"price": "2.8",
"discount": "8",
"discount_type": "percentage",
"max_sell": "1000"
},
"created_at": "2025-03-04T09:57:49.000000Z",
"updated_at": "2025-03-06T04:58:15.000000Z",
"image_path": "http://192.168.0.123/indgm/public/assets/upload/top-up-service/EOPdhKAMgfaPhI1VxN30StKN3xytZI.webp"
}
],
"cards": [
{
"id": 2,
"card_id": 1,
"name": "Honor of Kings 80 Tokens",
"price": 2.45,
"discount": 1,
"discount_type": "percentage",
"status": 1,
"offered_sell": 0,
"max_sell": 0,
"old_data": null,
"campaign_data": {
"price": "2.45",
"discount": "15",
"discount_type": "percentage",
"max_sell": "1000"
},
"created_at": "2025-03-03T09:28:28.000000Z",
"updated_at": "2025-03-06T04:58:16.000000Z",
"image_path": "http://192.168.0.123/indgm/public/assets/upload/top-up-service/EOPdhKAMgfaPhI1VxN30StKN3xytZI.webp"
}
]
}
}
}
{
"status": "failed",
"errors": "Something went wrong"
}
English