SELLER API

Gaming Goods — Seller API

Programmatic access for sellers: manage your catalog, activation codes and marketplace offers. Use it to integrate your own inventory or automate sales.

Base URL

Production
https://gaming-goods.ru/api/partner/v1

All seller requests share this base URL. Responses are returned as JSON.

Authentication

The API uses the X-API-Key header for authentication. To request a seller key contact business@gaming-goods.com. Every request must carry the header:

HTTP Header
X-API-Key: pk_live_xxxxxxxxxxxxxxxxxxxx

Concepts

Listing — the seller's own product with a unique title and description. Created via POST /seller/products and goes through moderation.

Offer — codes attached to ANY existing marketplace product (C2C). Multiple sellers can post offers on the same product at different prices — the cheapest one wins.

delivery_type: AUTO — codes uploaded in advance (instant activation); MANUAL — seller delivers the code by hand after the order.

Seller dashboard

GET/seller/dashboard

Summary statistics: products, sales, payouts.

Response
{
  "total_products": 42,
  "active_products": 38,
  "pending_products": 2,
  "total_sales": 1240,
  "pending_rewards": 24500,
  "available_rewards": 187600
}

List your products

GET/seller/products

Paginated list of the seller's own products.

ParameterTypeDescription
limitintegerItems per page (default 20, max 100)
offsetintegerPagination offset
Response
{
  "items": [
    {
      "id": "a1b2c3d4-...",
      "slug": "...",
      "title": "Cyberpunk 2077 Steam Key",
      "price": 19.99,
      "currency": "EUR",
      "stock_quantity": 12,
      "delivery_type": "AUTO",
      "moderation_status": "approved",
      "is_active": true,
      "stock_available": 12,
      "created_at": "2026-03-14T12:00:00Z"
    }
  ],
  "limit": 20,
  "offset": 0,
  "total": 42
}

Create listing

POST/seller/products

Creates a new listing. delivery_type: AUTO (with codes provided) or MANUAL. Price is in the same units as currency. Goes through moderation.

Request Body
{
  "name": "Cyberpunk 2077 Steam Key",
  "description": "Open-world action-adventure...",
  "category": "Game Keys",
  "brand": "CD Projekt",
  "price": 19.99,
  "currency": "EUR",
  "delivery_type": "AUTO",
  "image_url": "https://...",
  "codes": ["AAAA-BBBB-CCCC", "..."]
}
Response
{
  "product": {
    "id": "a1b2c3d4-...",
    "title": "Cyberpunk 2077 Steam Key",
    "price": 19.99,
    "currency": "EUR",
    "delivery_type": "AUTO",
    "moderation_status": "pending",
    "is_active": true
  }
}

Product detail

GET/seller/products/{productId}

Full details of one of your products. Returns 404 for products you do not own.

Response
{
  "id": "a1b2c3d4-...",
  "title": "Cyberpunk 2077 Steam Key",
  "price": 19.99,
  "currency": "EUR",
  "stock_quantity": 12,
  "delivery_type": "AUTO",
  "moderation_status": "approved",
  "is_active": true,
  "stock_available": 12
}

Update listing

PUT/seller/products/{productId}

Updates listing fields (name, description, price, image). Significant edits may trigger re-moderation.

Request Body
{
  "name": "Cyberpunk 2077 Steam Key — RU",
  "price": 17.99,
  "image_url": "https://..."
}
Response
{
  "product": {
    "id": "a1b2c3d4-...",
    "title": "Cyberpunk 2077 Steam Key — RU",
    "price": 17.99,
    "moderation_status": "pending"
  }
}

Deactivate listing

POST/seller/products/{productId}/deactivate

Removes the listing from sale (is_active = false). Re-enable via PUT.

Response
{
  "product": {
    "id": "a1b2c3d4-...",
    "is_active": false
  }
}

Upload activation codes

POST/seller/products/{productId}/codes

Adds activation codes to one of your AUTO-delivery products. Does not work for MANUAL or for products you do not own.

Request Body
{
  "codes": [
    "AAAA-BBBB-CCCC-DDDD",
    "EEEE-FFFF-GGGG-HHHH"
  ]
}
Response
{
  "uploaded": 2,
  "stock_available": 14
}

Add offers

POST/seller/offers

Adds codes to ANY existing marketplace product (C2C). Multiple sellers can offer the same product at different prices — the cheapest one wins. price_cents is in euro cents.

Request Body
{
  "product_id": "a1b2c3d4-...",
  "price_cents": 1799,
  "codes": ["AAAA-BBBB-CCCC", "EEEE-FFFF-GGGG"]
}
Response
{
  "added": 2
}

List your offers

GET/seller/offers

Returns the seller's own offers, paginated.

ParameterTypeDescription
pageintegerPage number
page_sizeintegerItems per page (max 100)
Response
{
  "offers": [
    {
      "product_id": "a1b2c3d4-...",
      "price_cents": 1799,
      "available": 12,
      "sold": 4
    }
  ],
  "total": 18,
  "page": 1,
  "page_size": 20
}

Update offer price

PATCH/seller/offers/{productId}/price

Changes price for all of your unsold offers on the product that match old_price_cents.

Request Body
{
  "old_price_cents": 1799,
  "new_price_cents": 1699
}
Response
{
  "updated": 12
}

Delete offers

DELETE/seller/offers/{productId}

Removes all of your unsold offers on the product. Sold offers are kept intact.

Response
{
  "deleted": 12
}

Error format

Errors are returned with an HTTP status and a uniform body. The code field is a machine-readable identifier; message is a developer-friendly description.

Error Response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "price must be positive"
  }
}
400VALIDATION_ERROR — invalid query or body
401UNAUTHORIZED — missing or invalid X-API-Key
404NOT_FOUND — product not found or owned by another seller
422BUSINESS_RULE_VIOLATION — rule violation (e.g. duplicate code)
429Too Many Requests — rate limit (100 req/min)
503SERVICE_UNAVAILABLE — Seller API temporarily unavailable

Get a seller key

Email us to onboard as a seller and receive an X-API-Key.