Errors

The status says what happened. A 4xx means the request can't be done as sent, and a 5xx that it is worth trying again.

200, 201It worked. The body is the result.
204It worked, and there is nothing to answer.
400The body isn't valid JSON, a filter is wrong, or a required header is missing.
401The key is missing or unknown.
402The balance doesn't cover the purchase.
403This account can't do this.
404There is no such thing, or no copy of your inventory yet.
409Something changed: the lot sold, the price is new, the deal moved on. Read it again.
413The upload is over the limit.
422A value in the request can't be used.
429Too many requests. Wait for Retry-After.
502A service behind the API is away. Try again in a moment.

Refusals

When there is a reason you can act on, the body names it in code. These codes don't change, so your program can rely on them. Other failures are the status with a line of text, which is for people.

{ "code": "not_enough_money" }
StatusCodeWhen
400bad_addressThe address is not one of Tron's.
400bad_imageA message takes up to 3 screenshots, PNG or JPEG, of up to 8 MB each.
400bad_ticketA ticket needs a topic and a message of up to 2000 characters.
400too_littleLess than $1.00 goes out.
400unknown_coinRockvel does not send this coin in this network.
402not_enough_moneyThe balance doesn't cover the price.
403bannedThis account can't start anything new on Rockvel.
403not_your_orderThis deal isn't yours, or this step belongs to the other side.
403stall_suspendedRockvel has suspended your stall, and only Rockvel can lift it.
404no_such_auto_buyThere is no such auto-buy waiting: it bought all it asked for, was called off, or isn't yours.
404no_such_bargainThere is no such bargain waiting for your answer: it ended, it is the other side's turn, or it isn't yours.
404no_such_orderThere is no such deal.
404no_such_ticketNo such ticket of yours.
404no_such_withdrawalNo such withdrawal of yours.
409already_listedOne of the items is already on sale or sold.
409already_signedThe withdrawal is signed already and goes ahead.
409buyer_cannot_payThe buyer no longer has the money for this price, so the bargain ended.
409item_goneAn item isn't in your inventory copy. Upload a fresh one and try again.
409item_unknownAn item isn't in the catalog yet.
409lot_goneThe lot sold or was taken down.
409no_trade_urlSet your trade link first.
409none_matchNo lot matches the price and filters now.
409not_refundableYour deposits cannot give back this much, or a source would get less than the minimum.
409order_moved_onThe deal moved on and this step no longer applies. Read it again.
409own_lotThis is your own lot.
409price_changedThe seller changed the price. Read the lot and try again.
409ticket_closedThe ticket is closed: open a new one.
409too_earlyThe seller still has time: wait for buyer_cancels_at.
409too_many_auto_buysYou already have 100 auto-buys waiting. Call one off first.
409too_many_bargainsYou already have 100 prices waiting for an answer. Take one back first.
409too_many_ticketsYou have as many open tickets as you can.
409wait_for_answerWait for support to answer before you write more.
422bad_bargainThe lot takes no bargains, the price isn't below the lot's and within its max_discount, or a counter isn't between the buyer's price and the lot's.
422bad_descriptionThe description is longer than 32 characters, has more than one line or space at its ends.
422bad_discountThe discount is outside 0 to 50 percent.
422bad_lotThe list is empty, a price is outside 3 to 100000000 cents, or a filter is outside its range.
422bad_trade_urlThis isn't the trade link of this Steam account.
422one_buyer_per_offerThe deals of one offer must all go to one buyer.
422too_many_lotsMore than 100 items in one request.