Counter a price
POST/v1/bargains/{id}/counter
Seller: answers the buyer's price with your own, above theirs and below the lot's. The buyer has 24 hours to accept or decline it, or can offer a new price.
Request
Path parameters
idstringrequiredThe bargain'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/bargains/019a4d3f-5a72-7b19-8c0e-2f6d1b9a4e57/counter' \
-H "Authorization: Bearer $ROCKVEL_KEY" \
-H 'Content-Type: application/json' \
-d '{"price_cents":3150}'Answer 200
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": "seller",
"status": "countered",
"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,
"counter_cents": 3150,
"actions": [],
"created_at": "2026-11-02T07:41:17Z",
"expires_at": "2026-11-03T08:41:17Z"
}Refusals
| Status | Code | When |
|---|---|---|
| 403 | banned | This account can't start anything new on Rockvel. |
| 404 | no_such_bargain | There is no such bargain waiting for your answer: it ended, it is the other side's turn, or it isn't yours. |
| 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.