haloskins.com APIhaloskins.com ↗
Search HaloSkins CS2 skin listings, retrieve seller prices, float values, stickers, and paint seeds across 3 structured endpoints.
curl -X POST 'https://api.parse.bot/scraper/7e3806d9-5b8f-4ed8-8c4d-33859c76126f/search_market' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"page": "1",
"limit": "20",
"keyword": "dragon lore"
}'Search the HaloSkins marketplace by keyword. Returns matching items with their prices, quantities, and metadata. Supports pagination. Note: requesting a page beyond total pages returns an empty items array with HTTP 200.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. Pages beyond total available return empty items. |
| limit | integer | Number of results per page (max 50) |
| keywordrequired | string | Search keyword (e.g., 'dragon lore', 'ak-47', 'karambit doppler') |
{
"type": "object",
"fields": {
"page": "integer - current page number",
"items": "array of item objects with: item_id, item_name, short_name, price, steam_price, discount_rate, quantity, image_url, market_hash_name, market_url, item_info (type, exterior, rarity, weapon, quality, collection)",
"limit": "integer - items per page",
"pages": "integer - total number of pages",
"total": "integer - total number of matching items",
"keyword": "string - the search keyword used",
"search_url": "string - URL of the search results page on haloskins.com"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"price": 8.73,
"item_id": "553485835",
"quantity": 193,
"image_url": "https://img.zbt.com/e/steam/item/730/U3RpY2tlciB8IERyYWdvbiBMb3JlIChGb2lsKQ==.png",
"item_info": {
"type": "Sticker",
"rarity": "Exotic",
"weapon": "",
"quality": "foil",
"exterior": "",
"collection": ""
},
"item_name": "Sticker | Dragon Lore (Foil)",
"market_url": "https://www.haloskins.com/market/553485835?keyword=dragon+lore",
"short_name": "Dragon Lore",
"steam_price": 11.63,
"discount_rate": 25,
"market_hash_name": "Sticker | Dragon Lore (Foil)"
}
],
"limit": 20,
"pages": 1,
"total": 14,
"keyword": "dragon lore",
"search_url": "https://www.haloskins.com/market?keyword=dragon+lore"
},
"status": "success"
}
}About the haloskins.com API
The HaloSkins API gives programmatic access to the HaloSkins CS2 skin marketplace across 3 endpoints. Use search_market to find items by keyword with price and quantity data, get_item_listings to pull per-seller listing details including float values, stickers, keychains, and paint seeds, or search_and_get_listings to combine both operations in a single call for the top-matching item.
Searching the Marketplace
The search_market endpoint accepts a keyword string (e.g. 'karambit doppler', 'ak-47') and returns a paginated list of matching items. Each item in the items array includes item_id, item_name, short_name, price, steam_price, discount_rate, quantity, and image_url. Pagination is controlled via page and limit (max 50 per page). Requesting a page number beyond the total available returns an empty items array with HTTP 200, so your pagination loop should check the pages field before advancing.
Per-Seller Listing Detail
get_item_listings takes an item_id (obtained from search_market) and returns individual seller listings. Each entry in the listings array exposes listing_id, price, seller_name, seller_avatar, float_value, paint_seed, stickers, keychains, and a 3D inspect URL. Listings can be sorted by price ascending (sort=1) or descending (sort=2), or left at default order (sort=0). The response also carries total, pages, item_name, and a market_url pointing to the item page on haloskins.com.
Combined Single-Call Lookup
search_and_get_listings merges the two operations above. Pass a keyword and optionally a listings_limit to cap how many seller listings are returned for the top result. The response includes a search_results array covering all matching items and a selected_item object with full listing detail for the first result. When no items match the keyword, selected_item is null rather than an error, so null-checks are required in consuming code.
- Track price fluctuations for specific CS2 skins by polling
search_marketwith item keywords over time. - Build a float-value filter tool by pulling
float_valueandpaint_seedfromget_item_listingsfor sniper-grade skin selection. - Compare HaloSkins
priceagainststeam_priceusingdiscount_ratefields to surface the best discount opportunities. - Aggregate sticker and keychain combinations on high-value listings to identify rare applied items.
- Automate inventory checks by searching a list of skin names and reading the
quantityfield fromsearch_marketresults. - Build a CS2 skin arbitrage monitor that flags listings where
pricediverges significantly fromsteam_price. - Populate a skin database with
image_url,item_name, and metadata from paginatedsearch_marketresults.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does HaloSkins have an official developer API?+
What does `get_item_listings` return beyond price?+
float_value, paint_seed, seller_name, seller_avatar, a list of applied stickers, keychains, and a 3D inspect URL. You also get pagination metadata (total, pages) and a market_url for the item's page on haloskins.com.What happens when I paginate past the last page in `search_market`?+
page value beyond the pages total returns an empty items array with an HTTP 200 status rather than an error. Your code should read the pages field from the first response and stop pagination there.Can I filter search results by float range or exterior condition?+
search_market endpoint filters by keyword only and does not currently support float range or exterior condition parameters. Float values are available at the listing level via get_item_listings. You can fork this API on Parse and revise it to add float-based filtering as an additional input parameter.