GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot
Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.
{
"code": "missing_api_key",
"detail": "Provide your API key via `Authorization: Bearer csb_pub_…`. Generate one at https://csboard.com/profile?tab=api"
}
{
"code": "rate_limit_exceeded",
"detail": "Read rate limit of 100 requests/min exceeded. The counter restarts in 23 s. For new listings use GET /v1/listings/stream instead of polling.",
"bucket": "read",
"limit_per_min": 100,
"retry_after_sec": 23
}
The snapshot endpoint serves the complete CSBoard price list as a single gzipped NDJSON file. Every decompressed line is one PriceRow JSON object — the same schema returned by GET /v1/prices. This is the intended path for full-catalog consumers such as comparison sites, arbitrage bots, or data pipelines that need a complete local copy of the price list. For targeted queries against a subset of items, use GET /v1/prices instead.Authentication required. Send your key as Authorization: Bearer csb_pub_....Rate limit: 1 request per minute, separate from the general 100 requests/min limit. Plan your polling interval accordingly.
Pass the ETag value from a previous snapshot response to make a conditional request. If the snapshot has not changed since that ETag, the server returns 304 Not Modified with no body, saving bandwidth and avoiding a fresh download.
Snapshot unchanged since the supplied If-None-Match ETag.
401
missing_api_key, invalid_api_key
Missing or invalid API key.
429
snapshot_rate_limited
Over the 1 request/min snapshot-specific rate limit. Wait before retrying.
Always store the ETag from each successful download and send it back as If-None-Match on the next request. A 304 response costs nothing against your rate limit quota and keeps your local copy up to date without unnecessary re-downloads.
This endpoint is designed for full-catalog ingestion. If you only need prices for a specific item or a filtered subset, use GET /v1/prices — it supports search, category, and wear filters and does not count against the snapshot rate limit.
Send your key as a Bearer token on every request: Authorization: Bearer csb_pub_.... Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and X-RateLimit-Bucket for the bucket the call spent. See Rate limits.
{
"code": "missing_api_key",
"detail": "Provide your API key via `Authorization: Bearer csb_pub_…`. Generate one at https://csboard.com/profile?tab=api"
}
{
"code": "rate_limit_exceeded",
"detail": "Read rate limit of 100 requests/min exceeded. The counter restarts in 23 s. For new listings use GET /v1/listings/stream instead of polling.",
"bucket": "read",
"limit_per_min": 100,
"retry_after_sec": 23
}
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"CSBoard API","colors":{"primary":"#2563eb","light":"#60a5fa","dark":"#172554"},"favicon":"https://mintcdn.com/csboard/LyXJsSfteiiBK7GJ/favicon.svg?fit=max\u0026auto=format\u0026n=LyXJsSfteiiBK7GJ\u0026q=85\u0026s=29fd93b872ec9ce02b5ca0a5aecc8d03","appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://csboard.com/profile?tab=api","label":"Get a key"}],"primary":{"type":"button","label":"csboard.com","href":"https://csboard.com"}},"footer":{"socials":{"website":"https://csboard.com"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":"introduction"},{"language":"ru","href":"ru/introduction"},{"language":"zh-Hans","href":"zh-Hans/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"csboard","hasAudioNarration":false,"actualSubdomain":"csboard","customDomains":["api.csboard.com"],"gitSource":{"type":"github","owner":"kizilovv","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aed460334fe7746877e0ec2","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"en","tag":"API Reference","count":42},{"language":"ru","tag":"Справочник API","count":22},{"language":"zh-Hans","tag":"API 参考","count":22},{"language":"en","tag":"Market Data","count":10},{"language":"en","tag":"Guides","count":10},{"language":"en","tag":"Webhooks","count":8},{"language":"ru","tag":"Рыночные данные","count":8},{"language":"ru","tag":"Руководства","count":8},{"language":"zh-Hans","tag":"市场数据","count":8},{"language":"zh-Hans","tag":"指南","count":8},{"language":"en","tag":"Trading","count":7},{"language":"ru","tag":"Торговля","count":7},{"language":"zh-Hans","tag":"交易","count":7},{"language":"en","tag":"Instant Sell","count":6},{"language":"en","tag":"Walkthroughs","count":6},{"language":"en","tag":"P2P","count":5},{"language":"en","tag":"Account","count":5},{"language":"ru","tag":"P2P","count":5},{"language":"ru","tag":"Инструкции","count":5},{"language":"zh-Hans","tag":"P2P","count":5},{"language":"zh-Hans","tag":"教程","count":5},{"language":"en","tag":"Get Started","count":4},{"language":"ru","tag":"Начало работы","count":3},{"language":"zh-Hans","tag":"快速开始","count":3},{"language":"ru","tag":"Аккаунт","count":1},{"language":"ru","tag":"Статус","count":1},{"language":"ru","tag":"Журнал изменений","count":1},{"language":"zh-Hans","tag":"账户","count":1},{"language":"zh-Hans","tag":"状态","count":1},{"language":"zh-Hans","tag":"更新日志","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/get-prices-snapshot","slug":"/api-reference/get-prices-snapshot","pageMetadata":{"title":"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot","sidebarTitle":"GET /prices/snapshot","description":"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.","openapi":"GET /prices/snapshot.ndjson.gz","href":"/api-reference/get-prices-snapshot"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,ParamField,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`The snapshot endpoint serves the complete CSBoard price list as a single gzipped NDJSON file. Every decompressed line is one `,_jsx(_components.code,{children:`PriceRow`}),` JSON object — the same schema returned by `,_jsx(_components.code,{children:`GET /v1/prices`}),`. This is the intended path for full-catalog consumers such as comparison sites, arbitrage bots, or data pipelines that need a complete local copy of the price list. For targeted queries against a subset of items, use `,_jsx(_components.code,{children:`GET /v1/prices`}),` instead.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Authentication required.`}),` Send your key as `,_jsx(_components.code,{children:`Authorization: Bearer csb_pub_...`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Rate limit:`}),` 1 request per minute, separate from the general 100 requests/min limit. Plan your polling interval accordingly.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request-headers`,children:`Request headers`}),`\n`,_jsx(ParamField,{header:`If-None-Match`,type:`string`,id:`param-if-none-match`,children:_jsxs(_components.p,{children:[`Pass the `,_jsx(_components.code,{children:`ETag`}),` value from a previous snapshot response to make a conditional request. If the snapshot has not changed since that ETag, the server returns `,_jsx(_components.code,{children:`304 Not Modified`}),` with no body, saving bandwidth and avoiding a fresh download.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`response-headers`,children:`Response headers`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Header`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ETag`})}),_jsxs(_components.td,{children:[`Opaque version string identifying this snapshot. Store it and send back as `,_jsx(_components.code,{children:`If-None-Match`}),` on the next request.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Content-Encoding`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`gzip`}),` — the body is always gzip-compressed.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`response-body`,children:`Response body`}),`\n`,_jsxs(_components.p,{children:[`A gzip-compressed stream. After decompression, each newline-delimited line is a valid JSON object conforming to the `,_jsx(_components.code,{children:`PriceRow`}),` schema:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`market_hash_name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Steam market hash name.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`wear`})}),_jsx(_components.td,{children:`string | null`}),_jsxs(_components.td,{children:[`Wear bucket, or `,_jsx(_components.code,{children:`null`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`doppler_phase`})}),_jsx(_components.td,{children:`string | null`}),_jsxs(_components.td,{children:[`Doppler phase, or `,_jsx(_components.code,{children:`null`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`min_price_usd`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`Cheapest current ask in USD.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`qty`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{children:`Number of listings in this group.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`example-download-and-inspect`,children:`Example: download and inspect`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://csboard.com/v1/prices/snapshot.ndjson.gz`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer csb_pub_...\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --output`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` snapshot.ndjson.gz`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`gunzip`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` snapshot.ndjson.gz`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` head`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -5`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Example decompressed output:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`jsonl`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`jsonl`,children:_jsxs(_components.code,{language:`jsonl`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"market_hash_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"AK-47 | Redline (Field-Tested)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"wear\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Field-Tested\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"doppler_phase\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"min_price_usd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`11.92`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"qty\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`73`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"market_hash_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"AWP | Asiimov (Field-Tested)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"wear\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Field-Tested\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"doppler_phase\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"min_price_usd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`54.20`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"qty\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`12`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"market_hash_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Karambit | Doppler (Factory New)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"wear\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Factory New\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"doppler_phase\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Ruby\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"min_price_usd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1240.00`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"qty\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`example-conditional-request-with-etag`,children:`Example: conditional request with ETag`}),`\n`,_jsxs(_components.p,{children:[`On the first download you receive an `,_jsx(_components.code,{children:`ETag`}),` header. Pass it back on subsequent requests to avoid re-downloading an unchanged snapshot:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# First request — save ETag from response headers`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://csboard.com/v1/prices/snapshot.ndjson.gz`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer csb_pub_...\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --dump-header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` headers.txt`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --output`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` snapshot.ndjson.gz`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Subsequent request — conditional fetch`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://csboard.com/v1/prices/snapshot.ndjson.gz`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer csb_pub_...\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"If-None-Match: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`etag-value`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --output`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` snapshot.ndjson.gz`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`304 Not Modified`}),` response means the snapshot is identical to the one you already have — no new download needed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`error-codes`,children:`Error codes`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`304`}),_jsx(_components.td,{children:_jsx(_components.em,{children:`(no body)`})}),_jsxs(_components.td,{children:[`Snapshot unchanged since the supplied `,_jsx(_components.code,{children:`If-None-Match`}),` ETag.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`missing_api_key`}),`, `,_jsx(_components.code,{children:`invalid_api_key`})]}),_jsx(_components.td,{children:`Missing or invalid API key.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`429`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`snapshot_rate_limited`})}),_jsx(_components.td,{children:`Over the 1 request/min snapshot-specific rate limit. Wait before retrying.`})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Always store the `,_jsx(_components.code,{children:`ETag`}),` from each successful download and send it back as `,_jsx(_components.code,{children:`If-None-Match`}),` on the next request. A `,_jsx(_components.code,{children:`304`}),` response costs nothing against your rate limit quota and keeps your local copy up to date without unnecessary re-downloads.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`This endpoint is designed for `,_jsx(_components.strong,{children:`full-catalog ingestion`}),`. If you only need prices for a specific item or a filtered subset, use `,_jsx(_components.code,{children:`GET /v1/prices`}),` — it supports search, category, and wear filters and does not count against the snapshot rate limit.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot","sidebarTitle":"GET /prices/snapshot","description":"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.","openapi":"GET /prices/snapshot.ndjson.gz","href":"/api-reference/get-prices-snapshot"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Request headers","slug":"request-headers","depth":2,"children":[]},{"title":"Response headers","slug":"response-headers","depth":2,"children":[]},{"title":"Response body","slug":"response-body","depth":2,"children":[]},{"title":"Example: download and inspect","slug":"example-download-and-inspect","depth":2,"children":[]},{"title":"Example: conditional request with ETag","slug":"example-conditional-request-with-etag","depth":2,"children":[]},{"title":"Error codes","slug":"error-codes","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Market data"],"summary":"Full price-list snapshot (gzipped NDJSON)","description":"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.","operationId":"getPriceSnapshot","parameters":["9734d8ff-6a63-4569-b0b1-03180111a493"],"responses":{"200":"85ae0cf5-c774-4881-906e-c378f3be8784","304":"b665e440-4ac3-4c42-9aa9-364ad092842d","401":"e793453a-8616-486a-a2f2-a0ef868c25d1","429":"466ea2d3-8686-491d-8bca-35e4ccbc6ae4"},"method":"get","type":"path","servers":["0e703a7c-bb72-4382-a5c4-7af713801e30"],"security":["06dc2d5d-3307-4e9d-932f-2c2f29b1a6df"],"path":"/prices/snapshot.ndjson.gz","baseUrlOptions":["https://csboard.com/v1"],"title":"Full price-list snapshot (gzipped NDJSON)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"9734d8ff-6a63-4569-b0b1-03180111a493":{"name":"If-None-Match","in":"header","description":"Conditional request. Pass the ETag from a previous snapshot to receive 304 if unchanged.","schema":{"type":"string","description":"Conditional request. Pass the ETag from a previous snapshot to receive 304 if unchanged.","uniqueKey":"","typeLabel":"string"}}},"responses":{"85ae0cf5-c774-4881-906e-c378f3be8784":{"description":"Gzipped NDJSON stream. Each decompressed line is one PriceRow JSON object. Sets an ETag header.","headers":{"ETag":{"description":"Opaque snapshot version. Send back as If-None-Match to skip unchanged downloads.","schema":{"type":"string"}}},"content":{"application/x-ndjson":{"schema":{"type":"string","format":"binary","uniqueKey":"","typeLabel":"file"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"exampleType":"generated"},"b665e440-4ac3-4c42-9aa9-364ad092842d":{"description":"Not Modified — the snapshot has not changed since the ETag you sent.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"e793453a-8616-486a-a2f2-a0ef868c25d1":{"description":"Missing or invalid API key (`missing_api_key` or `invalid_api_key`).","content":{"application/json":{"schema":{"type":"object","description":"All errors return { code, detail }. Some carry extra fields (e.g. price_moved adds current_total_usd, insufficient_balance adds required_usd/current_usd, item_unavailable adds unavailable_ids and, on CS2 buys, unknown_ids).","properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. rate_limit_exceeded, trading_not_enabled, price_moved.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable explanation.","uniqueKey":"detail","typeLabel":"string"}},"required":["code"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"missing_api_key","detail":"Provide your API key via `Authorization: Bearer csb_pub_…`. Generate one at https://csboard.com/profile?tab=api"},"examples":{"Example":{"title":"Example","value":{"code":"missing_api_key","detail":"Provide your API key via `Authorization: Bearer csb_pub_…`. Generate one at https://csboard.com/profile?tab=api"}}},"exampleType":"examples"}},"exampleType":"examples"},"466ea2d3-8686-491d-8bca-35e4ccbc6ae4":{"description":"A per-key limit is spent. The key's own buckets answer `rate_limit_exceeded` with `bucket` (`read`, `trading` or `buy_orders`), `limit_per_min` and `retry_after_sec`. `Retry-After` is the seconds left until the one-minute window restarts (1–60), not a flat 60. Endpoint-specific limits (`snapshot_rate_limited` on the price snapshot, `rate_limited` on Instant Sell) send only `code` and `detail`.","headers":{"Retry-After":{"description":"Seconds until the one-minute window restarts (1–60). Waiting that long is always enough.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"description":"The ceiling per minute of the bucket this call spent (named in `X-RateLimit-Bucket`).","schema":{"type":"integer"},"example":3000},"X-RateLimit-Remaining":{"description":"Calls left on that bucket in the current one-minute window.","schema":{"type":"integer","minimum":0},"example":2987},"X-RateLimit-Reset":{"description":"Seconds until the one-minute window restarts and the counter starts again.","schema":{"type":"integer","minimum":1,"maximum":60},"example":41},"X-RateLimit-Bucket":{"description":"The bucket this call spent: `read` (reads and every other keyed call) or `trading` (buys, order reads, claims, cancels, balance). A `429` from the buy-order limit says `buy_orders`.","schema":{"type":"string","enum":["read","trading","buy_orders"]},"example":"trading"}},"content":{"application/json":{"schema":{"type":"object","description":"The `429` body of a per-key bucket. Endpoint-specific limits send only `code` and `detail`.","properties":{"code":{"type":"string","description":"`rate_limit_exceeded` for the key's buckets. Endpoint-specific limits use their own code (`snapshot_rate_limited`, `rate_limited`).","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable explanation.","uniqueKey":"detail","typeLabel":"string"},"bucket":{"type":"string","enum":["read","trading","buy_orders"],"description":"Which bucket is spent.","uniqueKey":"bucket","typeLabel":"enum\u003cstring>"},"limit_per_min":{"type":"integer","description":"That bucket's ceiling per minute.","uniqueKey":"limit_per_min","typeLabel":"integer"},"retry_after_sec":{"type":"integer","minimum":1,"maximum":60,"description":"Seconds until the window restarts — the same number as `Retry-After`.","uniqueKey":"retry_after_sec","typeLabel":"integer"}},"required":["code"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"rate_limit_exceeded","detail":"Read rate limit of 100 requests/min exceeded. The counter restarts in 23 s. For new listings use GET /v1/listings/stream instead of polling.","bucket":"read","limit_per_min":100,"retry_after_sec":23},"examples":{"Example":{"title":"Example","value":{"code":"rate_limit_exceeded","detail":"Read rate limit of 100 requests/min exceeded. The counter restarts in 23 s. For new listings use GET /v1/listings/stream instead of polling.","bucket":"read","limit_per_min":100,"retry_after_sec":23}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"06dc2d5d-3307-4e9d-932f-2c2f29b1a6df":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Send your key as a Bearer token on every request: `Authorization: Bearer csb_pub_...`. Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and `X-RateLimit-Bucket` for the bucket the call spent. See [Rate limits](/rate-limits).","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"0e703a7c-bb72-4382-a5c4-7af713801e30":{"url":"https://csboard.com/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Send your key as a Bearer token on every request: `Authorization: Bearer csb_pub_...`. Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and `X-RateLimit-Bucket` for the bucket the call spent. See [Rate limits](/rate-limits).","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Send your key as a Bearer token on every request: `Authorization: Bearer csb_pub_...`. Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and `X-RateLimit-Bucket` for the bucket the call spent. See [Rate limits](/rate-limits).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"csboard","siteName":"CSBoard API","title":"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot - CSBoard API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/get-prices-snapshot","matchLevel":0},"ru":{"href":"/ru/api-reference/get-prices-snapshot","matchLevel":1},"zh-Hans":{"href":"/zh-Hans/api-reference/get-prices-snapshot","matchLevel":1}}},"lastModified":"2026-10-02T12:04:30.016Z","originalFileLocation":"api-reference/get-prices-snapshot.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.\">\u003cmeta data-mint-head name=\"application-name\" content=\"CSBoard API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot - CSBoard API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CSBoard API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api.csboard.com/api-reference/get-prices-snapshot\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://csboard.mintlify.site/_mintlify/api/og/v2?division=Market+Data\u0026amp;title=GET+%2Fv1%2Fprices%2Fsnapshot.ndjson.gz+%E2%80%94+Full+Price+Snapshot\u0026amp;description=Download+the+full+CSBoard+price+catalog+as+a+gzipped+NDJSON+file.+One+PriceRow+per+line.+Designed+for+bulk+ingestion+with+ETag-based+conditional+fetching.\u0026amp;theme=932e691933583ab42431355a\u0026amp;signature=0cc53ea1f67a5417c31cd7c2833366b557290194fa459be3f0d23cf699ae48ad\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot - CSBoard API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://csboard.mintlify.site/_mintlify/api/og/v2?division=Market+Data\u0026amp;title=GET+%2Fv1%2Fprices%2Fsnapshot.ndjson.gz+%E2%80%94+Full+Price+Snapshot\u0026amp;description=Download+the+full+CSBoard+price+catalog+as+a+gzipped+NDJSON+file.+One+PriceRow+per+line.+Designed+for+bulk+ingestion+with+ETag-based+conditional+fetching.\u0026amp;theme=932e691933583ab42431355a\u0026amp;signature=0cc53ea1f67a5417c31cd7c2833366b557290194fa459be3f0d23cf699ae48ad\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CSBoard API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563eb\">\u003clink data-mint-head rel=\"canonical\" href=\"https://api.csboard.com/api-reference/get-prices-snapshot\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/get-prices-snapshot.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://api.csboard.com/api-reference/get-prices-snapshot\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://api.csboard.com/ru/api-reference/get-prices-snapshot\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://api.csboard.com/zh-Hans/api-reference/get-prices-snapshot\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://api.csboard.com/api-reference/get-prices-snapshot\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://api.csboard.com/#organization\",\"name\":\"CSBoard API\",\"url\":\"https://api.csboard.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://api.csboard.com#website\",\"name\":\"CSBoard API\",\"url\":\"https://api.csboard.com\",\"publisher\":{\"@id\":\"https://api.csboard.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://api.csboard.com/api-reference/get-prices-snapshot#webpage\",\"url\":\"https://api.csboard.com/api-reference/get-prices-snapshot\",\"name\":\"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot\",\"description\":\"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.\",\"dateModified\":\"2026-10-02T12:04:30.016Z\",\"isPartOf\":{\"@id\":\"https://api.csboard.com#website\"},\"breadcrumb\":{\"@id\":\"https://api.csboard.com/api-reference/get-prices-snapshot#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api.csboard.com/api-reference/get-prices-snapshot#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Market Data\",\"item\":\"https://api.csboard.com/api-reference/get-listings\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot\",\"item\":\"https://api.csboard.com/api-reference/get-prices-snapshot\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api.csboard.com/api-reference/get-prices-snapshot#apireference\",\"headline\":\"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot\",\"name\":\"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot\",\"description\":\"Download the full CSBoard price catalog as a gzipped NDJSON file. One PriceRow per line. Designed for bulk ingestion with ETag-based conditional fetching.\",\"url\":\"https://api.csboard.com/api-reference/get-prices-snapshot\",\"mainEntityOfPage\":{\"@id\":\"https://api.csboard.com/api-reference/get-prices-snapshot#webpage\"},\"dateModified\":\"2026-10-02T12:04:30.016Z\",\"publisher\":{\"@id\":\"https://api.csboard.com/#organization\"},\"isPartOf\":{\"@id\":\"https://api.csboard.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CSBoard API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"CSBoard API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/get-prices-snapshot.md","siteName":"CSBoard API","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Market Data","pages":[{"title":"GET /v1/listings — Browse Live CS2 Marketplace Listings","sidebarTitle":"GET /listings","openapi":"GET /listings","href":"/api-reference/get-listings"},{"title":"GET /v1/listings/depth — One Item's Whole Book, Live","sidebarTitle":"GET /listings/depth","openapi":"GET /listings/depth","href":"/api-reference/get-listings-depth"},{"title":"GET /v1/listings/stream — Live Feed of New and Sold Listings","sidebarTitle":"GET /listings/stream","openapi":"GET /listings/stream","href":"/api-reference/get-listings-stream"},{"title":"GET /v1/listings/snapshot.ndjson.gz — Every Listing in One File","sidebarTitle":"GET /listings/snapshot","openapi":"GET /listings/snapshot.ndjson.gz","href":"/api-reference/get-listings-snapshot"},{"title":"GET /v1/listings/availability — Bulk Availability Check","sidebarTitle":"GET /listings/availability","openapi":"GET /listings/availability","href":"/api-reference/get-listings-availability"},{"title":"GET /v1/games — Games You Can Pass as appId","sidebarTitle":"GET /games","openapi":"GET /games","href":"/api-reference/get-games"},{"title":"GET /v1/prices — CS2 minAsk Price List by Item Group","sidebarTitle":"GET /prices","description":"Retrieve a paginated minAsk price snapshot grouped by market hash name, wear, and Doppler phase, with cheapest ask and listing count per row.","openapi":"GET /prices","href":"/api-reference/get-prices"},{"title":"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot","sidebarTitle":"GET /prices/snapshot","openapi":"GET /prices/snapshot.ndjson.gz","href":"/api-reference/get-prices-snapshot"},{"title":"GET /v1/public/prices — Keyless Min-Ask Feed for CS2, Dota 2 and Rust","sidebarTitle":"GET /public/prices","description":"One cheapest price per item name, for CS2, Dota 2 or Rust. No API key, no balance requirement — limited to one request per minute per IP.","openapi":"GET /public/prices","href":"/api-reference/get-public-prices"},{"title":"GET /v1/currency — FX Rates for USD Price Conversion","sidebarTitle":"GET /currency","openapi":"GET /currency","href":"/api-reference/get-currency"}]},{"group":"Trading","pages":[{"title":"POST /v1/orders — Buy CS2 Listings from Your Balance","sidebarTitle":"POST /orders","openapi":"POST /orders","href":"/api-reference/post-orders"},{"title":"POST /v1/market/buy — Buy and Deliver to a Steam Trade URL","sidebarTitle":"POST /market/buy","openapi":"POST /market/buy","href":"/api-reference/post-market-buy"},{"title":"POST /v1/orders/:id/claim — Release a Held Order","sidebarTitle":"POST /orders/:id/claim","openapi":"POST /orders/{id}/claim","href":"/api-reference/post-orders-claim"},{"title":"POST /v1/orders/:id/cancel — Cancel an Undelivered Order","sidebarTitle":"POST /orders/:id/cancel","openapi":"POST /orders/{id}/cancel","href":"/api-reference/post-orders-cancel"},{"title":"GET /v1/orders — List Your Purchase History","sidebarTitle":"GET /orders","openapi":"GET /orders","href":"/api-reference/get-orders"},{"title":"GET /v1/orders/info — Batch Order Lookup","sidebarTitle":"GET /orders/info","openapi":"GET /orders/info","href":"/api-reference/get-orders-info"},{"title":"GET /v1/orders/{id} — Fetch a Single Order","sidebarTitle":"GET /orders/{id}","openapi":"GET /orders/{id}","href":"/api-reference/get-order"}]},{"group":"Instant Sell","pages":[{"title":"GET /v1/sell/status: Is Instant Sell Enabled for My Key?","sidebarTitle":"GET /sell/status","openapi":"GET /sell/status","href":"/api-reference/get-sell-status"},{"title":"POST /v1/sell/quotes: Quote a Steam Inventory for Instant Sell","sidebarTitle":"POST /sell/quotes","openapi":"POST /sell/quotes","href":"/api-reference/post-sell-quotes"},{"title":"POST /v1/sell/orders: Sell Items from a Steam Inventory","sidebarTitle":"POST /sell/orders","openapi":"POST /sell/orders","href":"/api-reference/post-sell-orders"},{"title":"GET /v1/sell/orders: List Your Instant Sell Orders","sidebarTitle":"GET /sell/orders","openapi":"GET /sell/orders","href":"/api-reference/get-sell-orders"},{"title":"GET /v1/sell/orders/{id}: One Instant Sell Order","sidebarTitle":"GET /sell/orders/{id}","openapi":"GET /sell/orders/{id}","href":"/api-reference/get-sell-order"},{"title":"POST /v1/sell/orders/{id}/cancel: Cancel an Instant Sell Order","sidebarTitle":"POST /sell/orders/{id}/cancel","openapi":"POST /sell/orders/{id}/cancel","href":"/api-reference/post-sell-order-cancel"}]},{"group":"P2P","pages":[{"title":"GET /v1/p2p/inventory — Your CS2 Inventory, Ready to List","sidebarTitle":"GET /p2p/inventory","openapi":"GET /p2p/inventory","href":"/api-reference/get-p2p-inventory"},{"title":"POST /v1/p2p/listings — List Your CS2 Items on the P2P Market","sidebarTitle":"POST /p2p/listings","openapi":"POST /p2p/listings","href":"/api-reference/post-p2p-listings"},{"title":"GET /v1/p2p/listings — Your P2P Listings","sidebarTitle":"GET /p2p/listings","openapi":"GET /p2p/listings","href":"/api-reference/get-p2p-listings"},{"title":"PATCH /v1/p2p/listings/{id} — Change a Listing's Price","sidebarTitle":"PATCH /p2p/listings/{id}","openapi":"PATCH /p2p/listings/{id}","href":"/api-reference/patch-p2p-listing"},{"title":"DELETE /v1/p2p/listings/{id} — Remove a P2P Listing","sidebarTitle":"DELETE /p2p/listings/{id}","openapi":"DELETE /p2p/listings/{id}","href":"/api-reference/delete-p2p-listing"}]},{"group":"Account","pages":[{"title":"GET /v1/balance — Account Balance and Trading Status","sidebarTitle":"GET /balance","openapi":"GET /balance","href":"/api-reference/get-balance"},{"title":"GET /v1/transactions — Your Balance Ledger","sidebarTitle":"GET /transactions","openapi":"GET /transactions","href":"/api-reference/get-transactions"},{"title":"GET /v1/stats — Your Delivery and Refund Record","sidebarTitle":"GET /stats","openapi":"GET /stats","href":"/api-reference/get-stats"},{"title":"GET /v1/key — Inspect Your API Key","sidebarTitle":"GET /key","openapi":"GET /key","href":"/api-reference/get-key"},{"title":"PUT /v1/key/allowed-ips — Restrict a Key to Your Servers","sidebarTitle":"PUT /key/allowed-ips","openapi":"PUT /key/allowed-ips","href":"/api-reference/put-key-allowed-ips"}]},{"group":"Webhooks","pages":[{"title":"GET /v1/webhooks — List Your Webhook Endpoints","sidebarTitle":"GET /webhooks","openapi":"GET /webhooks","href":"/api-reference/get-webhooks"},{"title":"POST /v1/webhooks — Register a Webhook Endpoint","sidebarTitle":"POST /webhooks","openapi":"POST /webhooks","href":"/api-reference/post-webhooks"},{"title":"PATCH /v1/webhooks/{id} — Update a Webhook Endpoint","sidebarTitle":"PATCH /webhooks/{id}","openapi":"PATCH /webhooks/{id}","href":"/api-reference/patch-webhook"},{"title":"DELETE /v1/webhooks/{id} — Remove a Webhook Endpoint","sidebarTitle":"DELETE /webhooks/{id}","openapi":"DELETE /webhooks/{id}","href":"/api-reference/delete-webhook"},{"title":"POST /v1/webhooks/{id}/test — Send a Test Event","sidebarTitle":"POST /webhooks/{id}/test","openapi":"POST /webhooks/{id}/test","href":"/api-reference/post-webhook-test"},{"title":"POST /v1/webhooks/{id}/rotate-secret — Rotate the Signing Secret","sidebarTitle":"POST /webhooks/{id}/rotate-secret","openapi":"POST /webhooks/{id}/rotate-secret","href":"/api-reference/post-webhook-rotate-secret"},{"title":"GET /v1/webhooks/{id}/deliveries — Delivery History","sidebarTitle":"GET /webhooks/{id}/deliveries","openapi":"GET /webhooks/{id}/deliveries","href":"/api-reference/get-webhook-deliveries"},{"title":"POST /v1/webhooks/{id}/deliveries/{deliveryId}/retry — Retry a Delivery","sidebarTitle":"POST …/retry","openapi":"POST /webhooks/{id}/deliveries/{deliveryId}/retry","href":"/api-reference/post-webhook-delivery-retry"}]},{"group":"Status","pages":[{"title":"GET /v1/health — CSBoard API Liveness and Freshness Probe","sidebarTitle":"GET /health","openapi":"GET /health","href":"/api-reference/get-health"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},{"language":"ru","pages":[{"title":"ru","href":"/ru/api-reference/get-prices-snapshot"}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-Hans/api-reference/get-prices-snapshot"}]}]},"basePath":"","title":"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot - CSBoard API","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-DTNSD-0M.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}