Create an auto-buy

POST/v1/market/items/{slug}/auto-buys

Waits for lots of the item and buys each as it comes: a new lot, or one whose seller lowered the price, at max_price_cents or less, that passes its filter: a float range, paint seeds, stickers, a charm and a phase, as on CSFloat. A sticker or a charm the catalog does not know is refused. Lots already on sale are left alone: buy them in bulk. Each lot is bought at its own price and becomes a deal of its own, until quantity are bought. No money is held meanwhile: when your balance is short, the lot goes to the next auto-buy and yours keeps waiting. The highest price goes first, then the oldest auto-buy. You can keep 100 waiting at once. The same Idempotency-Key answers with the same auto-buy.

Request

Path parameters

  • slugstringrequired

    The item's slug, from a market card.

Headers

  • Idempotency-Keystringrequired

    Any unique string for this auto-buy. Use a new one for each, and the same one when you retry.

Request body

  • max_price_centsintegerrequired

    The most one lot may cost, in US cents.

  • quantityintegerrequired

    How many lots to buy in all, from 1 to 100.

  • filterobjectrequired

    Which lots it takes. A lot has to pass every field that is set, and an empty field narrows nothing.

    Fields of filter
    • phasestring

      The phase of a Doppler or Gamma Doppler.

    • float_minnumber

      The lowest float, from 0 to 1.

    • float_maxnumber

      The highest float, from 0 to 1 and no lower than float_min.

    • paint_seedsinteger[]

      Paint seeds from 0 to 1000, up to 25: a lot with any of them passes.

    • stickersobject[]

      Up to 5 stickers, each of which has to be on the item. Only an unscratched sticker counts, and a name given twice asks for two of it.

      Fields of stickers
      • namestringrequired

        The sticker's name, as the catalog names it without "Sticker | ".

      • slotinteger

        Its place on the weapon, from 0 to 4. Without it any place will do. Two stickers can't ask for one slot.

    • charmstring

      A charm's name, as the catalog names it without "Charm | " or "Souvenir Charm | ". It has to hang on the item.

curl -X POST 'https://api.rockvel.store/v1/market/items/ak-47-redline-field-tested/auto-buys' \
  -H "Authorization: Bearer $ROCKVEL_KEY" \
  -H 'Idempotency-Key: 5b8d2f17-9c4e-4a63-8e1b-d7f02a6c3945' \
  -H 'Content-Type: application/json' \
  -d '{
    "max_price_cents": 3300,
    "quantity": 5,
    "filter": {
      "float_max": 0.3,
      "paint_seeds": [412, 661],
      "stickers": [{ "name": "Crown (Foil)" }]
    }
  }'

Answer 201

  • idstring

    The auto-buy's id.

  • item_slugstring

    The item's slug.

  • namestring

    The market_hash_name.

  • image_urlstring

    The item's picture.

  • raritystringoptional

    Rarity, such as Classified.

  • max_price_centsinteger

    The most it pays for one lot, in US cents.

  • quantityinteger

    How many lots it buys in all.

  • boughtinteger

    How many it has bought so far.

  • filterobject

    Which lots it takes.

    Fields of filter
    • phasestringoptional

      The phase of a Doppler or Gamma Doppler.

    • float_minnumberoptional

      The lowest float, from 0 to 1.

    • float_maxnumberoptional

      The highest float, from 0 to 1 and no lower than float_min.

    • paint_seedsinteger[]optional

      Paint seeds from 0 to 1000, up to 25: a lot with any of them passes.

    • stickersobject[]optional

      Up to 5 stickers, each of which has to be on the item. Only an unscratched sticker counts, and a name given twice asks for two of it.

      Fields of stickers
      • namestring

        The sticker's name, as the catalog names it without "Sticker | ".

      • slotintegeroptional

        Its place on the weapon, from 0 to 4. Without it any place will do. Two stickers can't ask for one slot.

    • charmstringoptional

      A charm's name, as the catalog names it without "Charm | " or "Souvenir Charm | ". It has to hang on the item.

  • created_atdate-time

    When it began to wait.

{
  "id": "019a4d02-8b1c-7e44-a6f2-3c9d5e7b1a08",
  "item_slug": "ak-47-redline-field-tested",
  "name": "AK-47 | Redline (Field-Tested)",
  "image_url": "https://community.akamai.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyLwlcK3wiFO0POlPPNSI_-RHGavzOtyufRkASq2lkxx4W-HnNyqJC3FZwYoC5p0Q7FfthW6wdWxPu-371Pdit5HnyXgznQeHYY5wyA",
  "rarity": "Classified",
  "max_price_cents": 3300,
  "quantity": 5,
  "bought": 0,
  "filter": {
    "float_max": 0.3,
    "paint_seeds": [412, 661],
    "stickers": [{ "name": "Crown (Foil)" }]
  },
  "created_at": "2026-11-02T06:41:17Z"
}

Refusals

StatusCodeWhen
403bannedThis account can't start anything new on Rockvel.
409item_unknownAn item isn't in the catalog yet.
409no_trade_urlSet your trade link first.
409too_many_auto_buysYou already have 100 auto-buys waiting. Call one off first.
422bad_lotThe list is empty, a price is outside 3 to 100000000 cents, or a filter is outside its range.
422too_many_lotsMore than 100 items in one request.

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