NewsPartnersAPI

ooeex API

Browse listings, place orders paid from your balance, fetch your keys, and manage per-key disputes — all over a simple REST API.

On this page

AuthenticationOrderingPer-key disputesErrors

Authentication

Create a key under Account → Settings → API Keys. It is shown once. Send it on every request via the x-api-key header. Keys spend only your account balance — top up on the site first.

curl https://ooeex.com/api/v1/balance \
  -H "x-api-key: hb_live_your_key_here"

Rate limit: 120 requests/minute per key. Write requests (POST /orders, POST /disputes) require an Idempotency-Key header so a retry never charges or disputes twice.

Ordering

GET/api/v1/balance
Your current balance.
GET/api/v1/products
Browse active, in-stock listings. Filters: platform, region, q, sellerId (exact) or seller (name), page, pageSize. Each listing returns sellerId + sellerName.
GET/api/v1/products/:id
Single listing detail.
POST/api/v1/orders
Create an order and pay from balance. Requires Idempotency-Key.
GET/api/v1/orders/:id/keys
Delivered keys (deleted 7 days after purchase — fetch promptly).
curl -X POST https://ooeex.com/api/v1/orders \
  -H "x-api-key: $KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "content-type: application/json" \
  -d '{ "items": [ { "productId": "PRODUCT_UUID", "quantity": 5 } ] }'

Per-key disputes

Dispute the exact keys that don't work, with evidence per key, and fetch replacement keys the seller provides. All disputed keys in one dispute must be from the same seller.

POST/api/v1/uploads/presign
Get a presigned URL to upload an evidence image (optional).
POST/api/v1/disputes
Open a per-key dispute. Requires Idempotency-Key.
GET/api/v1/disputes/:id
Dispute detail incl. per-key statuses and messages.
GET/api/v1/disputes/:id/replacements
Replacement keys delivered so far.
POST/api/v1/disputes/:id/messages
Post a message / extra evidence.
curl -X POST https://ooeex.com/api/v1/disputes \
  -H "x-api-key: $KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "content-type: application/json" \
  -d '{
        "orderId": "ORDER_UUID",
        "reason": "invalid_key",
        "description": "5 of 100 keys already redeemed",
        "disputedKeys": [
          { "orderItemId": "ITEM_UUID", "productKeyId": "KEY_UUID",
            "evidenceText": "shows already used" }
        ]
      }'

Errors

Errors return { "error": { "code", "message", "details?" } } with a matching HTTP status — e.g. 402 insufficient_balance, 401 unauthorized, 429 rate_limited, 409 idempotency_conflict.

© 2025 ooeex. All rights reserved.