Public API
Rates, offers and the guarantor's reserves in JSON — for rate aggregators, monitors and partner sites. No key, no sign-up, read only.
🔌 How to connect
Plain GET requests to the address below; answers are JSON in UTF-8. No key or sign-up needed.
https://garantp2p.com/public/v1/⏱ Limits
Answers are cached for 30 s, so there is no point asking more often. Up to 60 requests a minute per IP; beyond that the answer is 429. Browser requests are allowed from any site (CORS).
🔢 Data format
Prices and limits are strings in the market's currency per one whole coin, e.g. "12700" or "85.5". Times are Unix seconds. A missing value is null.
GET /public/v1/markets
Open markets: currency, coins, payment methods, the limits of one deal and the pause if the guarantor has stopped new deals for a while.
Request
GET https://garantp2p.com/public/v1/marketsExample answer
{
"coins": [
{
"key": "usdt_trc20",
"symbol": "USDT",
"network": "TRC20"
},
{
"key": "usdt_bep20",
"symbol": "USDT",
"network": "BEP20"
}
],
"markets": [
{
"country": "uz",
"currency": "UZS",
"coins": [
"usdt_trc20",
"usdt_bep20"
],
"methods": [
{
"key": "uzcard",
"name": "Uzcard"
},
{
"key": "humo",
"name": "Humo"
}
],
"min_deal": "50000",
"max_deal": "50000000",
"paused": false,
"paused_coins": []
}
]
}GET /public/v1/prices
A summary per coin of the market: the best buying price (buy — the cheapest seller) and selling price (sell — the buyer paying the most), medians, offer counts and the official rate.
Parameters
country— market code: uz, kz, kg, tj, tm, az, am, by, md, ru. Default uz.
Request
GET https://garantp2p.com/public/v1/prices?country=uzExample answer
{
"country": "uz",
"currency": "UZS",
"updated": 1790000000,
"coins": {
"usdt_trc20": {
"buy": "12700",
"sell": "12550",
"buy_median": "12750",
"sell_median": "12500",
"sellers": 14,
"buyers": 6,
"official": "12620"
}
}
}GET /public/v1/offers
Up to 50 offers anyone can take right now, best prices first: price, limits, payment methods, bank, the trader's reputation and a link that opens the offer in the bot.
Parameters
country— market code: uz, kz, kg, tj, tm, az, am, by, md, ru. Default uz.side— sell — sellers (you buy from them), buy — buyers (you sell to them). Default sell.coin— coin, e.g. usdt_trc20; without it, all coins of the market. Coin codes are in /markets.
Request
GET https://garantp2p.com/public/v1/offers?country=uz&side=sell&coin=usdt_trc20Example answer
{
"country": "uz",
"side": "sell",
"coin": "usdt_trc20",
"updated": 1790000000,
"offers": [
{
"id": 128,
"side": "sell",
"coin": "usdt_trc20",
"country": "uz",
"currency": "UZS",
"price": "12700",
"min": "200000",
"max": "5000000",
"methods": [
{
"key": "uzcard",
"name": "Uzcard"
}
],
"bank": null,
"trader": {
"name": "Aziz",
"level": "pro",
"deals": 57,
"rating": 4.9,
"completion": 98,
"verified": true,
"kyc": true,
"collateral_usd": 500
},
"url": "https://t.me/garant_p2p_exchange_bot?start=offer_128"
}
]
}GET /public/v1/transparency
The guarantor's wallets with balances, the latest completed deals, dispute results and traders' collateral — the same as on the Transparency page.
Request
GET https://garantp2p.com/public/v1/transparencyExample answer
{
"wallets": [
"…"
],
"feed": [
"…"
],
"disputes": {
"…": "…"
},
"collateral": {
"traders": 12,
"total": "6000",
"paid_count": 0,
"paid": "0"
},
"fund": null
}GET /public/v1/rates.xml
The best offers for every coin, card system and direction in the export format of exchange monitors (BestChange XML): from is what the client gives, to is what they get, amount is the reserve, minamount and maxamount are the deal limits in the from currency. The guarantor's commission is already in the rate, the network fee is given in tofee. The file is built afresh on every request; the limit is 600 requests a minute per IP.
Currency codes follow the BestChange list: coins USDTTRC20, USDTBEP20, USDTTON, BTC, USDCSOL; cards UZCUZS (Uzcard), HUMOUZS (Humo), KSPBKZT (Kaspi), CARDUZS (Visa/Mastercard). Payment methods missing from that list are left out of the file.
Request
GET https://garantp2p.com/public/v1/rates.xmlExample answer
<?xml version="1.0" encoding="UTF-8"?>
<rates>
<item><from>HUMOUZS</from><to>USDTTRC20</to><in>12828.282829</in><out>1</out><amount>8450.5</amount><minamount>200000</minamount><maxamount>5000000</maxamount><tofee>2.5</tofee><param>manual, reg</param></item>
<item><from>USDTTRC20</from><to>HUMOUZS</to><in>1</in><out>12550</out><amount>36000000</amount><minamount>15.936255</minamount><maxamount>398.406374</maxamount><param>manual, reg</param></item>
</rates>⚠️ Errors
400 bad_country — no such market or it is closed; 400 bad_request — wrong side or coin; 429 slow_down — too many requests.
📄 Terms of use
The data is for reference and changes every minute; a deal is made only in the bot at the offer's price. When showing the data on your site, name the source with a link to garantp2p.com. Card numbers, wallets and traders' contacts are not in the API and never will be.
Start exchanging in a minute
Open the bot, pick your language and country and go straight to the offers.
✈️ Open in Telegram