Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[0.9.5] - 2026-03-12
Removed
- removed five exact public alias duplicates from the SDK surface:
account.acceptSale(),account.cancelSale(),account.declineOffer(),listings.unlistBulkListings(), andlistings.unlistListing()
Changed
- standardized the canonical trade/offer/listing naming surface around
acceptTrade(),cancelTrade(),cancelOffer(),deleteBulkListings(), anddeleteListing()
[0.9.4] - 2026-03-11
Added
- low-level trade lifecycle helpers for the browser-confirmed single-trade routes:
account.cannotDeliverTrade(),account.disputeTrade(),account.markTradeReceived(),account.rollbackTrade(),account.manualVerifyTrade(), andaccount.verifyTradeRollback() - low-level account verification helpers
account.verifyEmail()andaccount.verifySms()based on current frontend payload shapes plus live invalid-payload validation - a public Vercel-ready docs site under
website/, including the synced repository Markdown hub, search, sitemap, robots, and the refined dark-gold documentation shell
Changed
- widened
CsfloatTradeSteamStatusNewOfferRequestandaccount.syncSteamNewOffer()to support the current frontend’s optionalgiven_asset_ids/received_asset_idsannotation payload - reconciled stale coverage rows so
filter=sticker_combos,filter=unique, andPATCH /mewithtrade_urlare no longer left as discovered-only when the SDK already supports them - promoted the browser-confirmed low-level trade lifecycle routes from discovered-only to implemented while keeping their docs explicitly conservative and state-gated
- widened response typing again after a slow live shape-audit pass: notifications now expose
latest_notification_id, inspect-linked buy-order lookups can surfacemarket_hash_name, and listing/trade keychain payloads can carryhighlight_reel - strengthened
audit:shapeswith slower default pacing, explicit skip support for state-driven routes, token-helper coverage, and better inspect-link selection forbuy-orders/item/ checker probes - expanded the package docs and docs-site content so the runtime surface, write payloads, stability notes, and low-level account/trade helpers stay synchronized in one source of truth
- refined the docs-site UI with a calmer landing page, better sidebar collapse behavior, custom scrollbar styling, and a wide-screen max-width cap for large displays
[0.9.3] - 2026-03-10
Changed
- expanded docs again with a dedicated write-flow and payload guide, deeper mutation-heavy recipes, and more npm-first CLI guidance so advanced users no longer need to fall back to source for common request bodies
[0.9.2] - 2026-03-10
Changed
- expanded
docs/from a light task-oriented hub into a fuller package-level documentation set, covering the complete runtime surface across resources, workflows, helper exports, CLI usage, transport behavior, and stability guidance
[0.9.1.5] - 2026-03-10
Added
- a new
docs/hub with task-oriented pages for getting started, resource selection, transport/error behavior, and examples/recipes
Changed
- promoted documentation discoverability in the README so npm and GitHub users get direct links into the structured docs instead of only one long landing page
- package publishing now includes
docs/so the same documentation structure can ship with the npm tarball instead of living only in the GitHub repo
[0.9.1] - 2026-03-10
Added
- opt-in low-level response metadata via
client.getWithMetadata(),postWithMetadata(),patchWithMetadata(),putWithMetadata(), anddeleteWithMetadata(), including parsed rate-limit fields such aslimit,remaining,resetAt,retryAfterMs, andsuggestedWaitMs account.acceptOffer()for the browser-observedPOST /offers/{id}/acceptroute, exposed conservatively as a low-level helper while the happy-path response remains only partially mappedlistings.updateListingPrice(),listings.updateListingDescription(),listings.updateListingMaxOfferDiscount(), andlistings.updateListingPrivate()as thin convenience helpers over the already validatedPATCH /listings/{id}contract
Changed
- bumped package versioning and default user agent from
0.9.0to0.9.1 - tightened the README competitor-facing transport story by documenting opt-in response metadata alongside existing retry/backoff/pacing features
- cleaned
API_COVERAGE.mdso already-implemented buy-order and notification routes are no longer duplicated as discovered-only rows, and current public feed presets are called out as implemented helpers rather than stray query strings
[0.9.0] - 2026-03-08
Added
meta.getApp()for the live-confirmedGET /meta/approute, currently returning app bootstrap metadata such asmin_required_versionmeta.getSchemaBrowse()for the live-confirmedGET /schema/browseroute, including typed category names likestickers,keychains, andmusic kitsaccount.getPendingDeposits()for the live-confirmedGET /me/payments/pending-depositsroutelistings.createBulkListings(),listings.updateBulkListings(),listings.deleteBulkListings(), andlistings.unlistBulkListings()for the browser-confirmed bulk listing layer under/listings/bulk-*account.createGsInspectToken()for the live-confirmedPOST /me/gs-inspect-tokencompanion-token routemeta.getItemExampleScreenshot()for the live-confirmed authenticatedGET /schema/images/screenshotrouteCsfloatWatchlistParams/CsfloatWatchlistStatefor the live-confirmed expanded/me/watchlistfilter surfacebuildStickerFilters()andbuildKeychainFilters()for the live-confirmed JSON-encoded applied attachment filters on market/watchlist queries- typed low-level
sticker_optionsupport on listing/watchlist query params after confirmingskins|packagesbehavior on sticker-filtered searches CSFLOAT_EXCLUDE_RARE_ITEMS_MIN_REF_QTYandbuildReferenceQuantityFilter()for the live-confirmedmin_ref_qtylisting/watchlist filter used by theExclude Rare ItemsUI toggleCSFLOAT_STICKER_SEARCH_OPTIONSfor the current live-confirmed sticker attachment search modes (skinsandpackages)npm run audit:live:extendedfor the heavier market-filter and candidate-route live sweepmeta.inspectItem()for the live-confirmed external Float Checker routeGET https://api.csfloat.com/?url=<inspectLink>account.syncSteamNewOffer()andaccount.syncSteamOffers()for the browser-confirmed low-level trade sync routes under/trades/steam-status/*CsfloatStallParamsand expandedstall.getStall()typing for the live-confirmed listing-style public stall query surface- cursor-aware
account.getNotifications({ cursor })support for the live-confirmed notifications timeline pagination surface CsfloatTransactionsParams,CsfloatTransactionOrder, andCsfloatTransactionTypefor the live-confirmed/me/transactionsfiltering and ordering surfaceCsfloatOffersParamsand expandedaccount.getOffers()typing for the live-confirmed page-based/me/offerssurfaceCsfloatOrder,CsfloatBuyOrdersParams, and expandedaccount.getBuyOrders()typing for the browser-confirmed page/order surface on/me/buy-ordersbuildKeychainPatternRange()andCsfloatKeychainPatternRangeParamsfor the live-confirmed charm pattern range search surfaceCSFLOAT_LISTING_TYPESandCSFLOAT_WATCHLIST_STATESfor the current live-confirmed enum-liketype/statevalues used across market and watchlist queriesgetHomepageFeedParams()andCSFLOAT_HOMEPAGE_FEED_PRESETSfor the current live-confirmed public homepage market-feed combinations (top_deals,newest,unique)loadout.getDiscoverLoadouts(),getDiscoverLoadoutParams(),CSFLOAT_DISCOVER_LOADOUT_PARAMS, andCSFLOAT_LOADOUT_SORT_OPTIONSfor the current live-confirmed public discover-mode companion surfacebuildLoadoutListParams(),buildLoadoutSkinSearchParams(),CSFLOAT_LOADOUT_MAX_LIMIT, andloadout.getSkinLoadouts()for the current live-confirmed loadout search boundary and paired skin-search contractaccount.iterateWatchlist()andstall.iterateStall()as live-backed cursor helpers for the current watchlist and public stall pagination surfacegetPublicMarketPageParams()andCSFLOAT_PUBLIC_MARKET_PAGE_PARAMSfor the exact live-confirmed unauthenticated/searchpage bootstrap querybuildLoadoutRecommendationRequest(),buildStickerRecommendationRequest(),buildGenerateLoadoutRecommendationsRequest(),buildSingleSkinRecommendationRequest(),buildSingleSkinStickerRecommendationRequest(),loadout.recommendForSkin(),loadout.recommendStickersForSkin(),CSFLOAT_LOADOUT_FACTIONS, andCSFLOAT_STICKER_RECOMMENDATION_MAX_COUNTfor the current live-confirmed companion recommendation/generate boundary- publishable example scripts for
basic,market,watchlist, andloadoutworkflows, plus package-file inclusion forexamples/ buildCollectionFilter(),buildRarityFilter(),buildPaintSeedFilter(), andbuildMusicKitFilter()for the already live-confirmed visible market filter fieldscheck:node,pack:check,release:check, stronger CI coverage for package/examples/scripts, andprepublishOnlyrelease gating- stronger npm package metadata: clearer live-validated description, broader discoverability keywords, and
sideEffects: false CsfloatBuyOrderExpressionBuilder,buildExpressionBuyOrderRequest(),buildSingleSkinBuyOrderExpression(),buildSingleSkinBuyOrderRequest(), and the related buy-order expression types/constants for the now live-confirmed expression-backed/buy-ordersand/buy-orders/similar-ordersworkflows- a publishable
example:buy-orderscript covering safe expression-backed similar-order lookups without creating a live order sdk.workflowswithgetPublicMarketFeeds(),getAccountWorkspace(), andgetSingleSkinBuyOrderInsights()for higher-level multi-call task helpers built entirely on live-confirmed routes- a publishable CLI entrypoint with
feeds,workspace, andbuy-order-similarcommands - optional
minRequestDelayMstransport pacing for safer bot/runtime usage across a shared SDK instance and its derived companion clients - a publishable
example:workflowsscript covering the new workflow layer end-to-end (getPublicMarketFeeds(),getAccountWorkspace(), andgetSingleSkinBuyOrderInsights())
Changed
- expanded
API_COVERAGE.mdwith the newly confirmed/meta/app,/schema/browse, and/me/payments/pending-depositssurfaces - expanded live audit coverage to keep app meta, schema browse, and pending deposits on the repeatable safe-read path
- expanded
API_COVERAGE.mdagain with live-confirmed bulk listing workflows, including the overpricing/KYC gate onPOST /listings/bulk-listand the current price-focused contract onPATCH /listings/bulk-modify - widened
account.getWatchlist()fromcursor|limitonly to the currently confirmed listing-style watchlist filter surface, including typedstate - documented the bundle-observed
stickers/keychainsquery encoding and then promotedsticker_optionfrom docs-only to typed support after live paired-filter probes proved meaningful behavior - documented that
/listingsand/me/watchlistcurrently hard-caplimitat50, and that invalidmin_ref_qtyvalues hard-fail with schema conversion errors - extended
audit:liveagain so the repeatable market/watchlist checks now covermin_ref_qtyand sticker-filteredsticker_option=skins|packagesprobes - expanded
audit:livecoverage again to keep the live-confirmed JSONstickers/keychainsmarket filters on the repeatable regression path - documented and audited the sticker- and keychain-filtered watchlist path after confirming that
/me/watchlist?stickers=[...]and/me/watchlist?keychains=[...]reuse the same JSON attachment contract - fixed the schema-derived live-audit probes to read
/schemasticker/keychain maps correctly instead of treating them as arrays, and upgraded thesticker_option=packagesregression probe to a positive market case (sticker_id=85) - slowed the default
audit:livepacing to1250msper request and added a single GET retry after429responses so the safe live regression pass better matches the intended market pacing - split
audit:liveintocorevsextendedscopes so the default script keeps the stable surface whileaudit:live:extendedcarries the more rate-limit-prone market query burst and candidate sweep - strengthened
/me/watchlistlive coverage with meaningfultype=auction|buy_now,filter=unique, andsort_by=highest_discount/sort_by=lowest_priceconfirmations, and kept those checks on the core live-audit path - taught the HTTP client to support derived external companion calls with custom default headers and optional authorization suppression, which is now used for the origin-gated checker lookup surface
- promoted
/trades/steam-status/new-offerand/trades/steam-status/offerfrom discovered-only to implemented as explicitly low-level sync helpers after reconfirming their safe request shapes and stable200 {"message":"successfully updated offer state"}responses on 2026-03-08 - documented that the
/selland/stall/mebrowser-auth pages currently stay on already-covered bootstrap routes rather than exposing additional safe backend endpoints - expanded the public stall docs after confirming meaningful
sort_by,filter,type,min_ref_qty, andkeychainsbehavior on/users/{id}/stall, plus the current absence of alimit=50ceiling on that route - clarified notifications timeline pagination semantics:
cursoris live-meaningful, whilelimitcurrently appears to be ignored and therefore remains intentionally unexposed in the typed SDK surface - fixed
audit:liveabsolute-URL handling so external companion routes such asloadout-api.csfloat.comare no longer falsely prefixed with the main CSFloat API base URL during regression runs - widened
account.getTransactions()from plain page params to the live-confirmedpage,limit,order, andtypesurface after browser-auth discovery on the profile transactions tab and direct API validation of the current filter/order values - widened
account.getOffers()fromlimit-only/cursor-oriented typing to the current live profile-UI surface wherepageandlimitare meaningful, while the oldcursorparam now remains documented as backward-compatible but currently ignored - widened
account.getBuyOrders()from plain page params to the current live profile-UI contract wherepage,limit, and validatedorder=asc|descare accepted, while keeping the docs explicit that current account-side ordering differences remain weakly mapped because both test accounts had zero active orders - strengthened market/search docs and live audit coverage around
music_kit_index,keychain_highlight_reel, andmin_keychain_pattern/max_keychain_pattern, including a fresh non-emptyCharm | Semi-Preciouspattern-range confirmation on 2026-03-08 - tightened market/search coverage again with live-distinct
filter=sticker_combosvsfilter=uniquesemantics, a tracked public homepage feed probe (/listings?limit=5&min_ref_qty=20&type=buy_now&min_price=500), and an explicit note that the current cart UI is client-sidecheckout_cart_contractsstate rather than a dedicated/cartbackend route - aligned the repeatable live audit with the current allowed scope by removing stale
verify-sms, report-flow, floatdb-adjacent, and Stripe-connect probes from the default sweep - strengthened the live-backed attachment-filter story by adding a repeatable
custom_sticker_idmarket probe and documenting the currently workingstickers=[{"c":"C10204271498"}]search contract - expanded the public market/homepage coverage again by adding repeatable unauthenticated probes for the current
Top Deals,Newest Items, andUnique Itemshomepage feed variants - tightened the public loadout-discover typing by narrowing
any_filledto the only live-accepted value (true) and adding the current discover-modeGET /v1/loadout?sort_by=favorites&limit=20&months=1&any_filled=trueroute to the repeatable live audit - promoted the buy-order expression path from browser-observed/docs-only semantics to implemented SDK surface after live-confirming
POST /buy-orderscreate/delete andPOST /buy-orders/similar-orders?limit=...happy-paths with a real expression AST on 2026-03-08 - strengthened the release/publish story again by making
release:checkvalidate the built CLI help path in addition to tests, typecheck, build, and tarball checks
[0.7.0] - 2026-03-08
Added
listings.placeBid()for auction max-price bidding via the live-confirmedPOST /listings/{id}/bidrouteaccount.deleteAutoBid()for auction auto-bid cancellation via the live-confirmedDELETE /me/auto-bids/{id}routeloadout.recommend()for bearer-token loadout recommendations via the live-confirmedPOST https://loadout-api.csfloat.com/v1/recommendcompanion routeloadout.getLoadouts(),loadout.favoriteLoadout(), andloadout.unfavoriteLoadout()for the live-confirmed public/bearer companion routes underhttps://loadout-api.csfloat.com/v1/loadoutloadout.createLoadout(),loadout.updateLoadout(), andloadout.deleteLoadout()for the live-confirmed bearer-token CRUD routes underhttps://loadout-api.csfloat.com/v1/loadoutloadout.getFavoriteLoadouts(),loadout.recommendStickers(), andloadout.generateRecommendations()for the next live-confirmed companion routes underhttps://loadout-api.csfloat.com/v1loadout.cloneLoadout()as a safe convenience helper over the already validatedgetLoadout()+createLoadout()flowaccount.cancelTrades(),account.cancelTrade(), andaccount.cancelSale()for the browser-mapped seller-side trade cancellation layer (POST /trades/bulk/cancelandDELETE /trades/{id})account.getTrade()andaccount.getTradeBuyerDetails()for the live-confirmed trade detail routesGET /trades/{id}andGET /trades/{id}/buyer-detailsaccount.acceptTrade()/account.acceptSale()now align with the browser-confirmed single-route contractPOST /trades/{id}/accept, whileaccount.acceptTrades()remains the explicit bulk helpermeta.getNotary()andaccount.createNotaryToken()for the browser-confirmed notary companion flowaccount.getSimilarBuyOrders()for the live-confirmed buy-order insight routePOST /buy-orders/similar-ordersaccount.getBuyOrdersForInspect()for the inspect-link orientedGET /buy-orders/itemroute, returning direct{ expression, qty, price }[]rowsaccount.markTradesReceived()for the buyer-side bulk receipt routePOST /trades/bulk/receivedaccount.exportTransactions()for the live-confirmed monthly CSV export routeGET /me/transactions/exportaccount.getMaxWithdrawable(),account.getPendingWithdrawals(),account.deletePendingWithdrawal(), andaccount.getExtensionStatus()for the newly validated account payout/extension routes under/me/*
Changed
- expanded coverage notes for browser-auth auction flows, including the fact that item-page
historymaps toGET /listings/{id}/bidsand bothBid/Auto Bidconverge on the same max-price bid route - documented that repeated
POST /listings/{id}/bidacts as replacement/update semantics for an existing listing auto-bid - documented the correct auto-bid removal path
DELETE /me/auto-bids/{id}and kept the failed delete guesses (DELETE /auto-bids/{id}andDELETE /listings/{id}/bidboth returned405) as negative findings - tightened
CsfloatTradetyping with live-observedverified_at,expires_at, and explicit state/verification-mode unions - expanded loadout coverage with the bearer-token
recommendflow, including confirmed skin-only request semantics and optionaldef_whitelist/def_blacklistarrays - documented that
GET /v1/loadoutcurrently honorssort_bybut appears to ignoremodeandpage, while invalidsort_byvalues hard-fail with a validation error - expanded
CsfloatLoadoutItemReftyping with live-observed fields from list/detail payloads:paint_index,wear_index,isLocked,stat_trak, andstickers - expanded
CsfloatLoadoutListParamswith browser-observed discover params such aslimit,months,def_index, andpaint_index, while keepingany_filleddocumented as only weakly mapped on current live probes - expanded trade coverage notes with the bundle-confirmed
/trades/{id},/trades/{id}/buyer-details,cannot-deliver,dispute,received,rollback,manual-verification, androllback-verifyroutes, while keeping them discovered-only until real happy-path samples appear - promoted
/trades/{id}and/trades/{id}/buyer-detailsfrom discovered-only to implemented after capturing a real queued cross-account trade sample at 3 cents - clarified the accept-sale split: single-trade
POST /trades/{id}/acceptis the reliable seller-side happy-path on the main account, whilePOST /trades/bulk/acceptremains live but can reject visible queued IDs on some seller states - expanded coverage notes for
/meta/notary,/me/notary-token,/buy-orders/item,/buy-orders/matching-items/floatdb,/trades/bulk/received,/trades/{id}/report-error, and/trades/notary - refined buy-order insight coverage:
/buy-orders/itemis now promoted to implemented based on a real inspect-link happy-path, while/buy-orders/similar-ordersnow documents browser-observedlimitand advanced-expression semantics without over-claiming SDK support for the raw expression AST - promoted
/trades/bulk/receivedto implemented based on bundle-confirmed payload shape{ trade_ids }plus real buyer-side state-gated validation (missing steam offer IDuntil a Steam offer exists)
[0.6.0] - 2026-03-08
Added
account.createOffer()for buyer-side offer creation viaPOST /offersaccount.counterOffer()for seller-side counter offers viaPOST /offers/{id}/counter-offeraccount.cancelOffer()for offer-thread cancellation viaDELETE /offers/{id}listings.buyNow()andlistings.buyListing()for directbuy_nowpurchases viaPOST /listings/buyfetchinjection and optionaldispatchersupport inCsfloatHttpClientfor proxy/custom transport scenarios without adding runtime dependency bloataccount.updateBuyOrder()for directPATCH /buy-orders/{id}updates using the live-confirmed{ max_price }contractaccount.declineOffer()as an ergonomic alias for the live-confirmedDELETE /offers/{id}close route used by seller-side declinesaccount.acceptTrades(),account.acceptTrade(), andaccount.acceptSale()for queued seller-side sale acceptance via the live-confirmedPOST /trades/bulk/acceptroutelistings.getPriceList()for the public market-wide/listings/price-listindex- normalized
CsfloatSdkErrortaxonomy withkind,retryable, andapiMessagefields plus an exportedisCsfloatSdkError()type guard account.createRecommenderToken()for the browser-observedPOST /me/recommender-tokenflow- richer
account.getTrades()typing viaCsfloatTradesParamswith support forstate,role, andpage loadout.getUserLoadouts()andloadout.getLoadout()for the publicloadout-api.csfloat.comcompanion API
Changed
- expanded
API_COVERAGE.mdwith live-confirmed happy-path offer and purchase contracts - updated
.env.exampleto document optionalCSFLOAT_API_KEY_2for controlled cross-account live testing - clarified that
DELETE /offers/{id}is the confirmed close route for both buyer cancel and seller decline flows, whilePOST /offers/{id}/acceptis only discovered so far - expanded trade docs with the confirmed
accept saletransition fromqueuedtopendingand the resultingtrade_url,trade_token, andsteam_offertiming fields - clarified that
/trades/steam-status/new-offerand/trades/steam-status/offerare still discovered-only sync routes, while/listings/price-listis now implemented as a strongly validated public endpoint - hardened transport errors into stable public categories (
validation,authentication,authorization,account_gated,role_gated,not_found,rate_limit,server,timeout,network) - expanded browser-auth coverage notes with the active/history trade query shapes, the offer timeline thread fetch pattern, the stale withdraw fetch to
/me/payments/stripe/connect, and the externalloadout-api.csfloat.comroute used by the stall page - expanded browser-auth coverage again with the public loadout overview/detail routes and the discovery that
/loadoutredirects to/loadout/overview?mode=created&sort_by=date-desc
[0.5.0] - 2026-03-07
Added
- first-class market query helpers via
market.ts, includinggetCategoryParams(),withWearPreset(),buildFloatRange(),buildPriceRange(),buildFadeRange(), andbuildBlueRange() - schema lookup helpers via
schema.ts, including collection, rarity, weapon, paint, music kit, and highlight reel helpers - built-in retry/backoff support for safe requests in
CsfloatHttpClient, with bounded retries for transientGETfailures such as429,502,503, and504 - deep live response-shape audit tooling via
audit:shapes, including optional reversible buy-order sampling for non-emptybuy_ordersinspection account.getOffer(id)andaccount.getOfferHistory(id)for direct offer fetches and historical offer-chain inspection
Changed
- hardened response parsing so non-JSON error bodies no longer lose status/detail context
- expanded supported live shape coverage for authenticated account data, transaction details, offer variants, schema faction fields, and temporary buy-order create responses
- strengthened public README examples around market helpers, schema helpers, retry behavior, and shape-audit workflows
Notes
GET /offers/{id}/historyis now confirmed live and returns the historical offer chain for a threadoffersmay be empty when there are no active offers; type coverage for offer history was finalized using live buyer-offer and seller counter-offer samples
[0.4.5] - 2026-03-07
Added
background_urlandusernamefields toCsfloatUpdateMeRequest— both live-confirmed accepted byPATCH /me(2026-03-07 research pass 2, returns200 "user updated!")account.updateBackground(url)andaccount.updateUsername(name)convenience helpers wrappingPATCH /meaccount.getOffer(id)andaccount.getOfferHistory(id)for direct offer fetches and historical offer-chain inspectionAPI_COVERAGE.mdexpanded with new silently-ignored params:sticker(all forms:ID,ID|slot,ID1,ID2),page,user_id(standalone),source(all string and numeric forms on standard accounts),is_commodityAPI_COVERAGE.mdnew “Confirmed Hard-Rejected Query Params” section:type=any/normal/stattrak/souvenirreturns400(onlybuy_now/auctionare valid)API_COVERAGE.mdlive audit findings notes 27–35: history/graphcategoryparam semantics,filter=auth requirement (403), confirmed-dead listing subroutes, confirmed-dead/me/*hidden routes, confirmed-dead/users/{id}/*extensions,/offersGET method not allowed (405), dead top-level routes, and live-confirmed offer history chain fetches
Notes on Negative Findings
The following routes and params were probed and confirmed dead or silently-ignored in this pass:
- listing subroutes
offers,trades,history,price-history,buyer,seller,item— all404 /me/*hidden routes (balance, preferences, settings, referrals, kyc, payment, payout, stall, bids, listings, cart, disputes, 2fa, extension, rate-limit, limits) — all404/users/{id}/*extensions (offers, trades, buy-orders, statistics, reviews, reputation, watchlist, inventory) — all404- top-level routes (announcements, referrals, promotions, leaderboard, search, items, market, prices, trending, stats, buy-now) — all
400 "invalid resource" sticker/sticker|slot/ multi-sticker filter — silently ignored; items returned do not have the specified sticker
[0.4.0] - 2026-03-07
Added
- improved source typing via
CsfloatSource, with IDE-friendly suggestions forcsfloatandp2pwhile still allowing raw string and numeric forms API_COVERAGE.mdexpanded with a new Confirmed Silently-Ignored Query Params table listing 15/listingsparams that return200but produce no filtering effectAPI_COVERAGE.mdnote thatfilteronly acceptssticker_combosorunique; any other value returns400 invalid filter valueAPI_COVERAGE.mdnote thatcategory=1..4are the confirmed meaningful values, whilecategory=5behaved like an unsupported / effectively unfiltered bucket in live checksAPI_COVERAGE.mdnote thathistory/{name}/graphworks withoutpaint_index, but its exact aggregation semantics are not yet fully mapped- live audit script expanded:
filter=sticker_combos/unique,source=csfloat/p2p,category=1..5, andhistory/graphwithoutpaint_indexadded to repeatable checks
Changed
- removed the previously over-eager typed
market_hash_name/sort_byadditions forGET /me/buy-ordersafter live temporary orders showed no filtering or sorting effect
[0.3.1] - 2026-03-07
Fixed
- added the live-confirmed
listing_idfield toCsfloatInventoryItemso authenticated inventory responses are typed correctly
[0.3.0] - 2026-03-07
Added
- advanced market query support for
category,collection,rarity,min_price,max_price,paint_seed,music_kit_index,keychain_highlight_reel,min_fade,max_fade,min_blue, andmax_blue - live-confirmed watchlist toggle helpers for
POST/DELETE /listings/{id}/watchlist - repeatable keyed audit coverage for advanced market filters and reversible watchlist validation
- refined item and schema typing for fade details, highlight reels, collection metadata, and mixed attachment field shapes
Changed
- expanded
README.mdandAPI_COVERAGE.mdto document the newly confirmed market-query and watchlist surface
[0.2.0] - 2026-03-07
Added
- live API audit script and discovery notes for repeatable endpoint validation
- authenticated account endpoints for trades, offers, watchlist, notifications, transactions, auto-bids, account standing, mobile status, and buy orders
- auction bid fetching and additional listing read helpers for buy orders and similar items
- public schema endpoint support and additional hidden-route discovery coverage
- account write helpers for
PATCH /me, notification read receipts, and mobile status updates - buy-order create/delete helpers based on live happy-path validation
- market query support for
filter, rawsource,sort_by, andmin_ref_qty - live-confirmed wear preset helpers for
FN,MW,FT,WW, andBS
Changed
- strengthened README positioning to present the repository as a maintainer-grade CSFloat SDK and documentation hub
- expanded
API_COVERAGE.mdto reflect the broader live-validated CSFloat API surface
[0.1.0] - 2026-03-07
Added
- initial TypeScript package skeleton
- typed HTTP client
- resources for account, inventory, users, stall, listings, and history
- listing helpers for buy-now and auction request shapes
- cursor pagination helper
- API coverage matrix
- tests, build, and typecheck scripts
- read-only example against the CSFloat API
Last updated on