API
ReferenceSelling

List items for sale

Open raw markdownFor pasting into AI assistants
POST
/public/v1/list

Puts backpack items on the market. Every listing holds exactly one copy: each group in listings is a price in cents and the items to sell at it, and every copy in the group becomes its own listing. items holds backpack item ids (the id from GET /public/v1/backpack) with the quantity of each to sell, so amount: 5 creates 5 listings. The response lists every listing created. A commodity backpack row is a quantity rather than a single copy, so the same id may appear in several groups to sell copies at different prices; the groups draw from one pool, and asking for more than the row's amount in total fails with INSUFFICIENT_ITEMS. At most 50 groups per request, 50 items per group. Send price_decay instead of price on a group to list it with an auto-decaying price: it starts at start_price and falls to end_price over total_hours (24-168). To sell something still sitting in Steam, use POST /public/v1/sell instead. Accounts have a ceiling on how much they can have listed at once; past it, listing fails with LISTING_LIMIT_REACHED. Contact support if you are hitting it. While listing is switched off site-wide, the call fails with LISTING_DISABLED.

AuthorizationBearer <token>

API key generated from your account settings on the website. Send as Authorization: Bearer csd_....

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/public/v1/list" \  -H "Content-Type: application/json" \  -d '{    "listings": [      {        "items": [          {            "id": 1,            "amount": 1          }        ],        "price": 1      }    ]  }'
{  "listings": [    {      "id": 1,      "app_id": 1,      "market_hash_name": "string",      "price": -9007199254740991,      "amount": -9007199254740991,      "commodity": true,      "created_at": "2019-08-24T14:15:22Z"    }  ]}