Skip to Content
Canonical source of truth stays in the repository docs. This site is the polished presentation layer.
Examples And Recipes

Examples And Recipes

Shipped Examples

These examples are published with the package and included in the npm tarball:

FileShows
examples/basic.mjsauthenticated me + inventory + public stall bootstrap
examples/market-public-feeds.mjspublic listings with homepage/public-page presets
examples/watchlist-stall-iteration.mjsauthenticated watchlist iteration plus public stall iteration
examples/loadout-companion.mjsrecommender token flow plus loadout discover/recommend helpers
examples/buy-order-expression.mjssingle-skin expression preview plus similar buy-order lookup
examples/workflows.mjsthe higher-level sdk.workflows layer end to end

Example Commands

npm run example:basic npm run example:market npm run example:watchlist npm run example:loadout npm run example:buy-order npm run example:workflows

CLI Commands

If you are working from source after npm run build:

node dist/cli.js help node --env-file=.env dist/cli.js feeds node --env-file=.env dist/cli.js workspace node --env-file=.env dist/cli.js buy-order-similar --def-index 7 --paint-index 72 --stattrak false --souvenir false

If you are using the published package:

npx csfloat-node-sdk help npx csfloat-node-sdk feeds --api-key "$CSFLOAT_API_KEY"
  • Public feed snapshot: examples/market-public-feeds.mjs
  • Authenticated watchlist + stall iteration: examples/watchlist-stall-iteration.mjs
  • Loadout discover / recommend flows: examples/loadout-companion.mjs
  • Expression-backed buy-order research: examples/buy-order-expression.mjs
  • Higher-level multi-call orchestration: examples/workflows.mjs

Mutation-heavy docs-only recipes live here:

They are documented in Markdown instead of shipped as runnable scripts because they can create, modify, or cancel real state.

Common Recipes

Assume const sdk = new CsfloatSdk({ apiKey: process.env.CSFLOAT_API_KEY! }); unless the snippet shows otherwise.

Public Market Snapshot

import { CsfloatSdk, getHomepageFeedParams, getPublicMarketPageParams, } from "csfloat-node-sdk"; const sdk = new CsfloatSdk({ apiKey: process.env.CSFLOAT_API_KEY! }); const [publicPage, topDeals] = await Promise.all([ sdk.listings.getListings(getPublicMarketPageParams()), sdk.listings.getListings(getHomepageFeedParams("top_deals")), ]);

Watchlist Or Stall Iteration

for await (const listing of sdk.account.iterateWatchlist({ limit: 20, state: "listed", sort_by: "most_recent", })) { console.log(listing.id); } for await (const listing of sdk.stall.iterateStall("76561198000000000", { limit: 20, type: "buy_now", })) { console.log(listing.id); }

Compose Search Filters With Helpers

import { buildPriceRange, buildStickerFilters, withWearPreset, } from "csfloat-node-sdk"; const listings = await sdk.listings.getListings({ ...withWearPreset({ type: "buy_now" }, "MW"), ...buildPriceRange({ min_price: 500, max_price: 5_000 }), ...buildStickerFilters([{ sticker_id: 85, slot: 1 }]), });

Preview A Buy-Order Request Before Creating It

import { buildSingleSkinBuyOrderExpression, buildSingleSkinBuyOrderRequest, } from "csfloat-node-sdk"; const expression = buildSingleSkinBuyOrderExpression(7, 72, { stattrak: false, souvenir: false, }); const request = buildSingleSkinBuyOrderRequest(7, 72, { max_price: 3, quantity: 1, stattrak: false, souvenir: false, }); const similar = await sdk.account.getSimilarBuyOrders({ expression }, 5);

Recommender Token Loadout Flow

const recommender = await sdk.account.createRecommenderToken(); const discover = await sdk.loadout.getDiscoverLoadouts({ limit: 5, def_index: 7, paint_index: 490, }); const stickerRecommendations = await sdk.loadout.recommendStickersForSkin( recommender.token, 7, 490, { count: 10 }, );

Response Metadata And Rate Limits

const response = await sdk.client.getWithMetadata("me"); console.log(response.meta.status); console.log(response.meta.rateLimit?.remaining); console.log(response.meta.rateLimit?.suggestedWaitMs);

Schema Media Helpers

import { getCsfloatScreenshotUrls } from "csfloat-node-sdk"; const screenshot = await sdk.meta.getItemExampleScreenshot({ def_index: 7, paint_index: 490, }); console.log(getCsfloatScreenshotUrls(screenshot));

Bulk Listing Mutation

await sdk.listings.updateBulkListings([ { contract_id: "123", price: 1_500 }, { contract_id: "456", price: 2_000 }, ]);

Create Or Counter An Offer

const offer = await sdk.account.createOffer({ contract_id: "945821907352158315", price: 1_250, }); const counter = await sdk.account.counterOffer(String(offer.id), { price: 1_400, });

Create Or Update A Buy Order

const buyOrder = await sdk.account.createBuyOrder({ market_hash_name: "AK-47 | Redline (Field-Tested)", max_price: 1_500, quantity: 1, }); await sdk.account.updateBuyOrder(String(buyOrder.id), { max_price: 1_700, });

Create A Buy-Now Listing

const listing = await sdk.listings.createBuyNowListing({ asset_id: "1234567890", price: 2_500, private: true, max_offer_discount: 5, });

Update Account Preferences

await sdk.account.updateMe({ offers_enabled: true, stall_public: true, max_offer_discount: 5, });

Create A Loadout

const recommender = await sdk.account.createRecommenderToken(); await sdk.loadout.createLoadout(recommender.token, { name: "My CT/T setup", ct: { is_filled: true, rifles: [{ def_index: 7, paint_index: 490 }] }, t: { is_filled: true, rifles: [{ def_index: 60, paint_index: 16 }] }, });

How To Decide Between Examples And Docs

  • Use docs when you want concepts, boundaries, and entrypoint guidance.
  • Use examples when you want something runnable immediately.
  • Use API_COVERAGE.md when you need route-level certainty.
Last updated on