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

  • idstringrequired

    The bargain's id.

Request body

  • price_centsintegerrequired

    The 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

  • idstring

    The bargain's id.

  • rolestring

    Your side of the bargain.

    One ofbuyerseller

  • statusstring

    Where the bargain stands. One whose time ran out reads expired.

    One ofopencounteredaccepteddeclinedcancelledexpired

  • lot_idstring

    The lot it is for.

  • item_slugstring

    The item's slug.

  • itemobject

    The item as the lot shows it.

    Fields of item
    • asset_idstring

      Steam's id of this very item. It changes when the item changes hands.

    • namestring

      Name as Steam shows it.

    • market_hash_namestring

      Name on the Steam market. A market card has one for each.

    • image_urlstring

      Steam's icon of the item.

    • kindstring

      What sort of item it is.

      One ofweaponknifeglovesagentstickerpatchcharmgraffitimusic_kitcontainercollectibleother

    • raritystringoptional

      Rarity in Steam's words.

    • exteriorstringoptional

      Exterior as a code: FN, MW, FT, WW or BS.

    • stattrakbooleanoptional

      The item is StatTrak.

    • souvenirbooleanoptional

      The item is a Souvenir.

    • marketableboolean

      Steam lets this item be sold on its own market.

    • floatnumberoptional

      Float value, from 0 to 1. Left out for items without one.

    • paint_seedintegeroptional

      Paint seed, from 0 to 1000.

    • kill_countintegeroptional

      StatTrak's count of kills.

    • paint_indexintegeroptional

      The paint's number in the game.

    • def_indexintegeroptional

      The weapon's number in the game.

    • phasestringoptional

      The phase of a Doppler or Gamma Doppler.

    • name_tagstringoptional

      The name tag on the item.

    • inspect_linkstringoptional

      Opens the item in the game.

    • highlight_urlstringoptional

      Video of a souvenir charm's moment.

    • stickersobject[]optional

      Stickers on the item, and patches on an agent.

      Fields of stickers
      • idintegeroptional

        Its number in the game.

      • namestring

        Its name.

      • image_urlstringoptional

        Its picture.

      • slotinteger

        Which place on the item it takes.

      • wearnumberoptional

        How scraped it is, 0 for intact.

      • scalenumberoptional

        Its scale, as the game places it.

      • rotationnumberoptional

        Its rotation, as the game places it.

      • offset_xnumberoptional

        Its offset along x, as the game places it.

      • offset_ynumberoptional

        Its offset along y, as the game places it.

      • offset_znumberoptional

        Its offset along z, as the game places it.

      • tint_idintegeroptional

        Its tint's number in the game.

      • patternintegeroptional

        The pattern of a charm.

      • highlightintegeroptional

        The moment on a souvenir charm.

    • keychainsobject[]optional

      Charms on the item.

      Fields of keychains
      • idintegeroptional

        Its number in the game.

      • namestring

        Its name.

      • image_urlstringoptional

        Its picture.

      • slotinteger

        Which place on the item it takes.

      • wearnumberoptional

        How scraped it is, 0 for intact.

      • scalenumberoptional

        Its scale, as the game places it.

      • rotationnumberoptional

        Its rotation, as the game places it.

      • offset_xnumberoptional

        Its offset along x, as the game places it.

      • offset_ynumberoptional

        Its offset along y, as the game places it.

      • offset_znumberoptional

        Its offset along z, as the game places it.

      • tint_idintegeroptional

        Its tint's number in the game.

      • patternintegeroptional

        The pattern of a charm.

      • highlightintegeroptional

        The moment on a souvenir charm.

    • tagsobject[]optional

      All the labels Steam gives the item.

      Fields of tags
      • categorystring

        The label's kind, such as Collection.

      • namestring

        The label itself.

    • notesstring[]optional

      Steam's lines about this item: its match, its date of issue, what a container holds.

    • referenceobjectoptional

      A 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_centsinteger

        The price in US cents.

      • offersinteger

        How many lots of this name, or this phase, lis-skins has.

  • lot_price_centsinteger

    What the lot costs now, in US cents.

  • price_centsinteger

    The buyer's price, in US cents.

  • counter_centsintegeroptional

    The seller's answer to it, in US cents. Left out until there is one.

  • order_idstringoptional

    The deal an accepted bargain became.

  • actionsstring[]

    What you can do with the bargain now.

    One ofacceptcounterdeclinecancel

  • created_atdate-time

    When the buyer offered the price.

  • expires_atdate-time

    When 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

StatusCodeWhen
403bannedThis account can't start anything new on Rockvel.
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.
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.

Any route can also answer with the statuses on the Errors page.