Product list
POST https://karauti.com/api/v1/products
Every product you can sell, for your own storefront. Free to call.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
merchant_id | string | yes | See Authentication. |
game | string | no | Game code, e.g. ff. Returns that game from every supplier. |
supplier | string | no | Supplier code, e.g. unipin. From /v1/suppliers. |
available | boolean | no | true: only what can be bought right now. |
connected | boolean | no | true: only suppliers you have linked an account at. |
kind | string | no | topup or giftcard. |
updated_since | integer | no | Unix time. Only products changed at or after it. |
limit | integer | no | 1 to 500. Default 200. |
cursor | string | no | The previous page's meta.next_cursor. |
curl -X POST https://karauti.com/api/v1/products \
-H 'Content-Type: application/json' \
-H 'X-Karauti-Timestamp: 1786686400' \
-H 'X-Karauti-Nonce: 9f2b41c7d0e8a35b' \
-H 'X-Karauti-Signature: …' \
-d '{"merchant_id":"M2608001","available":true,"connected":true}'
{
"status": 1,
"data": [
{
"code": "UNIFF25",
"name": "25 Diamonds",
"game": {
"code": "ff",
"name": "Free Fire",
"region": "BD"
},
"supplier": "unipin",
"cost": 20,
"cost_unit": "UP",
"available": true,
"connected": true,
"kind": "topup",
"inputs": [
"user_id"
],
"sort": 16,
"updated_at": 1788239464
}
],
"meta": {
"unix_timestamp": 1788250000,
"count": 1,
"next_cursor": null
}
}
{
"status": 0,
"error_msg": "Unknown supplier: unipn. Call /v1/suppliers for the list.",
"failure_code": "INVALID_REQUEST"
}
Fields
| Field | Description |
|---|---|
code | Send this as sku when you order. |
name | What the customer is buying. |
game | The game, and the region it is sold for. |
supplier | Who fulfils it. Each code belongs to one supplier. |
cost, cost_unit | What your own supplier account pays, in that supplier's unit. Our fee is separate. |
available | We can sell it right now. |
connected | You have a working account at its supplier. When both are
true, the order will go through. |
kind | topup or giftcard. |
inputs | What to ask the customer for: user_id, sometimes
server_id, nothing for a gift card. Read it per product. |
sort | The supplier's own order. Sort a game's products on it to list them smallest first, with passes after. |
updated_at | Unix time of the last change. Send it back as
updated_since. |
Import one supplier
The same game is sold by more than one supplier, and each supplier's pack is its own product
with its own code. 115 Diamonds from two suppliers is two products. To import one supplier's
catalogue, send its code as supplier:
curl -X POST https://karauti.com/api/v1/products \
-H 'Content-Type: application/json' \
-H 'X-Karauti-Timestamp: 1786686400' \
-H 'X-Karauti-Nonce: 9f2b41c7d0e8a35b' \
-H 'X-Karauti-Signature: …' \
-d '{"merchant_id":"M2608001","supplier":"unipin"}'
Add game to narrow it to one game from that supplier.
Warning
Key your products on code. Matching on game and amount merges two suppliers'
packs into one, and orders go to the wrong supplier.
Paging
Follow meta.next_cursor until it is null.
One product
POST https://karauti.com/api/v1/products/UNIFF25
The same object in data. Sign the full path. Unknown code: 404 NOT_FOUND.
Note
Turn on product updates instead of polling.
API documentation