Quickstart: from an empty terminal to your first order
Five calls. The first two need no credentials at all, so you can run them right now; the last three need the API key we issue at onboarding. Every command below was executed against the production API before this page was published. The unauthenticated responses are reproduced from real ones, with only long arrays abridged where the text says so; the authenticated ones show the real response shape with ids and keys replaced by examples.
What you need
- A terminal with
curl. - The base URL:
https://api.gamecore-api.tech. - For steps 3 to 5, your
X-Api-Key. Keys are issued at onboarding, not from a sign-up form — ask us for one and we will set up the account, the balance and the tier.
There is no sandbox behind these endpoints. Step 5 creates a real order and charges your real balance, so read it before you run it.
Step 1 — is the service up
The health endpoint is public and takes no key. It is the right target for your own uptime probe.
curl -s https://api.gamecore-api.tech/health
{ "status": "ok" }
Step 2 — how big is the catalog
Also public. Live aggregates over the whole platform — useful for a sanity check before you have a key, and for the "N games, M SKUs" line on your own site.
curl -s https://api.gamecore-api.tech/platform/stats
{"success": true,"data": {"games": 5311,"skus": 21834,"topGames": [{ "slug": "the-legend-of-neverland", "name": "The Legend of Neverland", "skuCount": 609, "category": "points-currencies" },{ "slug": "free-fire", "name": "Free Fire", "skuCount": 252, "category": "points-currencies" }],"gateways": 6,"endpoints": "80+","locales": 5,"generatedAt": "2026-08-18T09:20:11.482Z"}}
Only topGames is abridged here: the real array carries up to 16 entries, ordered by SKU count, and category is null for a game that has not been categorised. The other four fields are always present — gateways, endpoints and locales are static facts about the platform rather than catalog aggregates, and generatedAt is when the aggregate was computed, which can be up to an hour old because the response is cached for that long.
Step 3 — authenticate
Everything under /b2b/ requires the X-Api-Key header. Send the request without it first, so you know exactly what a missing credential looks like in your own logs:
curl -s -i "https://api.gamecore-api.tech/b2b/catalog/games?limit=3"
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=utf-8
{"error":"Unauthorized","message":"Invalid or missing API key"}A wrong key returns exactly the same 401 — the two cases are deliberately indistinguishable. Now with the header:
curl -s "https://api.gamecore-api.tech/b2b/catalog/games?limit=3" \-H "X-Api-Key: $GAMECORE_KEY"
{"success": true,"data": [{ "id": 4412, "slug": "pubg-mobile", "name": "PUBG Mobile", "icon": "https://…", "type": "game", "productCount": 84 }],"pagination": { "page": 1, "limit": 3, "total": 1893 }}
total counts the games your account can see and that currently have stock, so it is normally lower than the platform-wide number in step 2: it already reflects your regions, your supplier gateway and any hidden products.
If you get a 403 with "This endpoint is only available for B2B API partners", the key is valid but the account behind it is not a supply account — tell us and we will fix it. Authentication covers both codes in full.
Step 4 — pick a product
Products belong to a game. Ask for one game's products, optionally narrowed by delivery type:
curl -s "https://api.gamecore-api.tech/b2b/catalog/games/pubg-mobile/products?deliveryType=id_only" \-H "X-Api-Key: $GAMECORE_KEY"
{"success": true,"data": [{"id": 34521,"name": "PUBG Mobile 660 UC","slug": "pubg-mobile-660-uc","wholesalePrice": 1064.5,"currency": "RUB","deliveryType": "id_only","region": "global","platform": null,"amountType": { "type": "fixed", "value": 660 },"inStock": true,"deliveryDataSchema": [{ "id": "gameUserId", "type": "text", "label": "Player ID", "required": true }]}]}
Two things to take from this response and nowhere else:
id— the only stable handle. Store it, not the name and not the price.deliveryDataSchema— the fields this product needs. The keys you will send indeliveryDataare theidof each entry, not thelabel.
Prices move with the exchange rate, so re-read the single product right before ordering: GET /b2b/catalog/products/34521 returns the same object for one SKU.
Step 5 — place an order
This one spends money. X-Idempotency-Key is required — a request without it is a 400 — and it is what makes a retry safe after a timeout.
curl -s -X POST https://api.gamecore-api.tech/b2b/orders \-H "X-Api-Key: $GAMECORE_KEY" \-H "X-Idempotency-Key: 7f3c1a9e-2b44-4d1a-9d4e-1c0f9a2b3c4d" \-H "Content-Type: application/json" \-d '{"items": [{ "productId": 34521, "quantity": 1, "deliveryData": { "gameUserId": "5123456789" } }],"externalOrderId": "MP-98765","callbackUrl": "https://api.yourshop.com/webhooks/gamecore"}'
{"success": true,"data": {"paymentCode": "P-AB12CD","totalAmount": 1064.5,"orders": [{ "code": "ash-XY7K3M", "gameId": "pubg-mobile", "gameName": "PUBG Mobile", "total": 1064.5, "itemCount": 1 }]}}
orders is an array because items are grouped by the supplier game behind them and by the supplier: one request can create several orders, each with its own code — and so can a single catalog game, when its SKUs come from more than one upstream source. Persist every code; it is the handle for everything afterwards.
Then read it back:
curl -s https://api.gamecore-api.tech/b2b/orders/ash-XY7K3M \-H "X-Api-Key: $GAMECORE_KEY"
{"success": true,"data": {"code": "ash-XY7K3M","externalOrderId": "MP-98765","status": "processing","totalAmount": 1064.5,"items": [{ "productName": "PUBG Mobile 660 UC", "amount": 1, "price": 1064.5, "status": "pending", "cdKeys": [] }]}}
processing is the normal answer seconds after creation. Do not poll this endpoint in a tight loop — set callbackUrl and let the webhook tell you when it resolves.
What to read next
- Authentication — key types, 401 vs 403, rate-limit headers.
- Catalog — the other endpoints, filters, and what to cache.
- Delivery types — what
deliveryDataa product needs before you can order it. - Idempotency and errors — how to retry step 5 without paying twice.
Need an API key?
Tell us which games and regions you sell and we will issue a key, then walk the integration with you. Integration questions are answered by the same people who run the API.