Offer a price
POST/v1/lots/{id}/bargains
Offers the seller a price below the lot's, no lower than its max_discount allows: price_cents × (100 − max_discount) / 100, rounded up to a cent. The seller has 24 hours to accept, counter or decline. No money is held, but you need it on your balance now. If the seller accepts, the lot is sold to you at that price as a deal of its own, and if you no longer have the money then, the bargain ends. A new price for the same lot takes the place of your earlier one, and you can keep 100 waiting at once. You need a trade link first.
Request
Path parameters
idstringrequiredThe lot's id.
Request body
price_centsintegerrequiredThe price in US cents: the new one for a lot, the one you saw for a purchase, the one you offer in a bargain.
curl -X POST 'https://api.rockvel.store/v1/lots/019a4b9d-2e17-7a58-b1c6-0d3f6a9e4b12/bargains' \
-H "Authorization: Bearer $ROCKVEL_KEY" \
-H 'Content-Type: application/json' \
-d '{"price_cents":3000}'Answer 201
idstringThe bargain's id.
rolestringYour side of the bargain.
One of
buyersellerstatusstringWhere the bargain stands. One whose time ran out reads expired.
One of
opencounteredaccepteddeclinedcancelledexpiredlot_idstringThe lot it is for.
item_slugstringThe item's slug.
itemobjectThe item as the lot shows it.
Fields of item
asset_idstringSteam's id of this very item. It changes when the item changes hands.
namestringName as Steam shows it.
market_hash_namestringName on the Steam market. A market card has one for each.
image_urlstringSteam's icon of the item.
kindstringWhat sort of item it is.
One of
weaponknifeglovesagentstickerpatchcharmgraffitimusic_kitcontainercollectibleotherraritystringoptionalRarity in Steam's words.
exteriorstringoptionalExterior as a code: FN, MW, FT, WW or BS.
stattrakbooleanoptionalThe item is StatTrak.
souvenirbooleanoptionalThe item is a Souvenir.
marketablebooleanSteam lets this item be sold on its own market.
floatnumberoptionalFloat value, from 0 to 1. Left out for items without one.
paint_seedintegeroptionalPaint seed, from 0 to 1000.
kill_countintegeroptionalStatTrak's count of kills.
paint_indexintegeroptionalThe paint's number in the game.
def_indexintegeroptionalThe weapon's number in the game.
phasestringoptionalThe phase of a Doppler or Gamma Doppler.
name_tagstringoptionalThe name tag on the item.
inspect_linkstringoptionalOpens the item in the game.
highlight_urlstringoptionalVideo of a souvenir charm's moment.
stickersobject[]optionalStickers on the item, and patches on an agent.
Fields of stickers
idintegeroptionalIts number in the game.
namestringIts name.
image_urlstringoptionalIts picture.
slotintegerWhich place on the item it takes.
wearnumberoptionalHow scraped it is, 0 for intact.
scalenumberoptionalIts scale, as the game places it.
rotationnumberoptionalIts rotation, as the game places it.
offset_xnumberoptionalIts offset along x, as the game places it.
offset_ynumberoptionalIts offset along y, as the game places it.
offset_znumberoptionalIts offset along z, as the game places it.
tint_idintegeroptionalIts tint's number in the game.
patternintegeroptionalThe pattern of a charm.
highlightintegeroptionalThe moment on a souvenir charm.
keychainsobject[]optionalCharms on the item.
Fields of keychains
idintegeroptionalIts number in the game.
namestringIts name.
image_urlstringoptionalIts picture.
slotintegerWhich place on the item it takes.
wearnumberoptionalHow scraped it is, 0 for intact.
scalenumberoptionalIts scale, as the game places it.
rotationnumberoptionalIts rotation, as the game places it.
offset_xnumberoptionalIts offset along x, as the game places it.
offset_ynumberoptionalIts offset along y, as the game places it.
offset_znumberoptionalIts offset along z, as the game places it.
tint_idintegeroptionalIts tint's number in the game.
patternintegeroptionalThe pattern of a charm.
highlightintegeroptionalThe moment on a souvenir charm.
tagsobject[]optionalAll the labels Steam gives the item.
Fields of tags
categorystringThe label's kind, such as Collection.
namestringThe label itself.
notesstring[]optionalSteam's lines about this item: its match, its date of issue, what a container holds.
referenceobjectoptionalA hint for your price: the cheapest lot of this name on lis-skins, of this phase for a Doppler. Float, pattern and stickers do not count in it. Only in your inventory and stall, and left out when lis-skins has no such lot.
Fields of reference
price_centsintegerThe price in US cents.
offersintegerHow many lots of this name, or this phase, lis-skins has.
lot_price_centsintegerWhat the lot costs now, in US cents.
price_centsintegerThe buyer's price, in US cents.
counter_centsintegeroptionalThe seller's answer to it, in US cents. Left out until there is one.
order_idstringoptionalThe deal an accepted bargain became.
actionsstring[]What you can do with the bargain now.
One of
acceptcounterdeclinecancelcreated_atdate-timeWhen the buyer offered the price.
expires_atdate-timeWhen the side whose turn it is runs out of time.
{
"id": "019a4d3f-5a72-7b19-8c0e-2f6d1b9a4e57",
"role": "buyer",
"status": "open",
"lot_id": "019a4b9d-2e17-7a58-b1c6-0d3f6a9e4b12",
"item_slug": "ak-47-redline-field-tested",
"item": {
"asset_id": "54267934219",
"name": "AK-47 | Redline (Field-Tested)",
"market_hash_name": "AK-47 | Redline (Field-Tested)",
"image_url": "https://community.akamai.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyLwlcK3wiFO0POlPPNSI_-RHGavzOtyufRkASq2lkxx4W-HnNyqJC3FZwYoC5p0Q7FfthW6wdWxPu-371Pdit5HnyXgznQeHYY5wyA",
"kind": "weapon",
"rarity": "Classified Rifle",
"exterior": "FT",
"marketable": true,
"float": 0.2613,
"paint_seed": 412,
"paint_index": 282,
"def_index": 7,
"inspect_link": "steam://run/730//+csgo_econ_action_preview%2006168DEAFD92CC071E0E26F0072E0536023EE1",
"stickers": [
{
"id": 1693,
"name": "Sticker | Crown (Foil)",
"slot": 1,
"wear": 0.08
}
],
"tags": [
{ "category": "Type", "name": "Rifle" },
{ "category": "Weapon", "name": "AK-47" },
{
"category": "Collection",
"name": "The Phoenix Collection"
},
{
"category": "Quality",
"name": "Classified Rifle"
},
{ "category": "Exterior", "name": "Field-Tested" }
]
},
"lot_price_cents": 3250,
"price_cents": 3000,
"actions": ["cancel"],
"created_at": "2026-11-02T07:41:17Z",
"expires_at": "2026-11-03T07:41:17Z"
}Refusals
| Status | Code | When |
|---|---|---|
| 402 | not_enough_money | The balance doesn't cover the price. |
| 403 | banned | This account can't start anything new on Rockvel. |
| 409 | lot_gone | The lot sold or was taken down. |
| 409 | no_trade_url | Set your trade link first. |
| 409 | own_lot | This is your own lot. |
| 409 | too_many_bargains | You already have 100 prices waiting for an answer. Take one back first. |
| 422 | bad_bargain | The 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. |
Any route can also answer with the statuses on the Errors page.