Examples And Recipes
Shipped Examples
These examples are published with the package and included in the npm tarball:
| File | Shows |
|---|---|
examples/basic.mjs | authenticated me + inventory + public stall bootstrap |
examples/market-public-feeds.mjs | public listings with homepage/public-page presets |
examples/watchlist-stall-iteration.mjs | authenticated watchlist iteration plus public stall iteration |
examples/loadout-companion.mjs | recommender token flow plus loadout discover/recommend helpers |
examples/buy-order-expression.mjs | single-skin expression preview plus similar buy-order lookup |
examples/workflows.mjs | the 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:workflowsCLI 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 falseIf you are using the published package:
npx csfloat-node-sdk help
npx csfloat-node-sdk feeds --api-key "$CSFLOAT_API_KEY"Recommended Recipe Paths
- 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.mdwhen you need route-level certainty.
Last updated on