Sync with Waxpeer session to auto-fill API key

Edit the price and amount of a buy order (v2)

POST/v2/edit-buy-order

Change the price and amount of one of your orders; send both. filled is kept, and the order keeps its place among orders at the same price.

amount is the total to buy, bought items included. An amount at or below filled closes the order: it is removed and the answer is {"success": true, "closed": true}. Otherwise the answer carries the updated order.

Filters and allow_trade_locked cannot be edited: remove the order and create a new one. A body that sends them is refused with filters_not_editable.

The limits of POST /v2/create-buy-order apply (amount 1 to 250, the 30% price floor, balance and 10 × balance exposure). An edit that raises neither the price nor the open amount at that price is always allowed, so you can lower an order even when you are over the limits.

Rate limit. Create, edit and both removals share one budget: 10 requests per 10 seconds per account, on the v1 and v2 paths together. Over it the answer is HTTP 429 with Retry-After and msBeforeNext.

Errors. Refusals are HTTP 200 with {"success": false, "msg": "…", "code": "…"}. Branch on code: it is stable, msg is human text. Codes this method answers: invalid_request, invalid_price, invalid_amount, filters_not_editable, price_too_low, kyc_required, order_not_found, price_above_balance, exposure_limit, busy, error. The full list is on POST /v2/create-buy-order. A missing or wrong API key is HTTP 403; the write rate limit is HTTP 429.

Prices are integers. 1000 = $1.00 USD.

Parameters

NameLocationTypeDescription
api
required
querystring

Request body

NameLocationTypeDescription
id
required
bodyinteger

Order id

price
required
bodyinteger

New price per item, a positive whole number (1000 = $1)

amount
required
bodyinteger

New total amount, 1 to 250, bought items included. At or below filled closes the order

Example
{
  "id": 123,
  "price": 13000,
  "amount": 5
}

Responses

200 Successful operation or refusal

NameTypeDescription
success
optional
boolean

Whether the operation succeeded

order
optional
object

The updated order (absent when closed is true)

id
optional
integer

Order id

name
optional
string

Full item market hash name

game
optional
string

Game code for requested items (csgo, tf2, rust, dota2)

price
optional
integer

New price per item, a positive whole number (1000 = $1)

amount
optional
integer

New total amount, 1 to 250, bought items included. At or below filled closes the order

filled
optional
integer

Number of fulfilled offers

allow_trade_locked
optional
boolean

true: the order also buys trade-locked listings

filters
optional
object

CS2 only. Which copies the order buys; null on a plain order. Unset filters are omitted, and an unknown key is refused.

float_min
optional
number

Lowest float, 0 to 1

float_max
optional
number

Highest float, 0 to 1, not below float_min

paint_seeds
optional
array<integer>

1 to 50 paint seeds (patterns), each 0 to 1000

phase
optional
enum

Doppler phase name (e.g. Phase 1, Ruby, Emerald)

enum: Phase 1, Phase 2, Phase 3, Phase 4, Ruby, Sapphire, Emerald, Black Pearl

stickers
optional
array<object>

Applied stickers data

id
required
integer

Order id

slot
optional
integer

Sticker slot 0 to 4; absent = any slot

charm_id
optional
integer

Charm id

charm_pattern_min
optional
integer

Lowest charm pattern, 0 to 100000

charm_pattern_max
optional
integer

Highest charm pattern, 0 to 100000

by
optional
string

Waxpeer user ID (found in /user)

created
optional
string

Creation timestamp

last_update
optional
string

When the order last changed. Not in the public list

closed
optional
boolean

true when amount was at or below filled and the order was closed

msg
optional
string

Why the request was refused (only when success is false)

code
optional
enum

Stable refusal code (only when success is false)

enum: invalid_request, invalid_price, invalid_amount, invalid_filters, filters_not_editable, item_not_found, price_too_low, kyc_required, tradelink_required, price_above_balance, exposure_limit, too_many_orders, order_not_found, too_many_ids, busy, error

Response
{
  "success": true,
  "order": {
    "id": 123,
    "name": "AK-47 | Redline (Field-Tested)",
    "game": "csgo",
    "price": 13000,
    "amount": 5,
    "filled": 1,
    "allow_trade_locked": false,
    "filters": {
      "float_min": 0.15,
      "float_max": 0.18,
      "paint_seeds": [
        661,
        670
      ],
      "stickers": [
        {
          "id": 4777,
          "slot": 0
        },
        {
          "id": 55
        }
      ]
    },
    "created": "2026-10-19T10:00:00Z",
    "last_update": "2026-10-19T11:00:00Z"
  }
}

400 Body is not a JSON object

NameTypeDescription
success
optional
boolean

Whether the operation succeeded

msg
optional
string

Why the request was refused (only when success is false)

code
optional
enum

Stable refusal code (only when success is false)

enum: invalid_request, invalid_price, invalid_amount, invalid_filters, filters_not_editable, item_not_found, price_too_low, kyc_required, tradelink_required, price_above_balance, exposure_limit, too_many_orders, order_not_found, too_many_ids, busy, error

Response
{
  "success": false,
  "msg": "Invalid request",
  "code": "invalid_request"
}

429 Too many requests. Rate limit exceeded

NameTypeDescription
success
optional
boolean

Whether the operation succeeded

msg
optional
string

Why the request was refused (only when success is false)

msBeforeNext
optional
number

Milliseconds before next allowed request

Response
{
  "success": false,
  "msg": "string",
  "msBeforeNext": 0
}