Skip to main content
POST
Create a top-up pack listing

Authorizations

Authorization
string
header
required

Your API key, from the cabinet under Seller → API keys.

Body

application/json

A top-up's pictures are optional — the marketplace renders the pack tile, not an offer gallery.

game
string
required

The game's slug.

title
string
required
Required string length: 8 - 128
price
integer<int64>
required

US cents — 4990 is $49.90. USD is the only currency the platform prices in.

delivery_type
enum<string>
required

instant hands a unit from the pool over the moment an order is paid. manual is you handing over yourself, within the time below.

Available options:
instant,
manual
delivery_method
string
required

A key from GET /v1/offers/delivery-methods. Instant delivery is only possible with activation_code.

delivery_instructions
string
required

What the buyer is told to do at handover, in your words.

Maximum string length: 2048
description
string
Maximum string length: 4096
images
string<uri>[]

image_urls returned by POST /v1/offers/images. At least one: it is the cover the marketplace renders. A URL from anywhere else is refused (invalid_image).

Required array length: 1 - 10 elements
tags
string[]

Up to 500 characters in all, counted as the tags joined with ", ". No commas inside a tag. Stored trimmed, lower-cased and deduplicated.

attributes
object

The category's own fields — read them from its schema.

units
object[]

delivery_type: instant only — one opaque JSON payload per unit, the goods themselves. Encrypted at rest; never read back.

manual_delivery_value
integer<int32>

delivery_type: manual only — the handover time you promise.

manual_delivery_unit
enum<string>

What manual_delivery_value counts.

Available options:
minutes,
hours,
days

Response

Created

How a listing sold by hand promises to hand over.

id
string<uuid>
title
string
description
string
attributes
object

The category's own fields, keyed by the schema's key.

tags
string[]
status
enum<string>

draft on create, then active once you publish it. paused and archived are yours too, through pause and DELETE. reserved and sold follow an order. removed is a takedown after publishing, which no call in this API performs.

Available options:
draft,
active,
paused,
reserved,
sold,
removed,
archived
created_at
string<date-time> | null
updated_at
string<date-time> | null
published_at
string<date-time> | null

When publish put it on the marketplace. null while it is a draft, and written once — pausing and unpausing leave it alone.

manual_delivery_value
integer<int32> | null

The handover time promised, read together with the unit — 2 and hours.

manual_delivery_unit
enum<string> | null

What the value counts. Both are null on a listing delivered instantly.

Available options:
minutes,
hours,
days,
null
price
integer<int64>

US cents.

currency
string

Always USD.

Example:

"USD"

images
string<uri>[]
delivery_type
enum<string>

instant sells out of the unit pool; manual you hand over yourself.

Available options:
instant,
manual
delivery_method
string | null

The key this listing hands over by.

delivery_instructions
string

What the buyer is told to do at handover.