POST /v1/market/buy — покупка и доставка на Steam trade URL
Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.
Этот эндпоинт позволяет покупать и доставлять предметы напрямую на любой указанный вами Steam trade URL — не только на trade URL, привязанный к вашему аккаунту. Trade URL формируется из полей partner и token. Покупки финансируются только из вашего подтверждённого (защищённого от реверса) баланса, что делает эндпоинт пригодным для оптовых объёмов и потоков автоматической доставки.Сохраните один custom_id для каждой выдачи. Успешный ответ хранится в кэше до 24 часов и при повторе содержит заголовок Idempotent-Replayed: true. Если ответ потерян, проверьте заказ по сохранённому идентификатору. Пустой результат возможен до появления заказа. Оставьте выдачу в ожидании до сверки.
Этот эндпоинт работает за kill-switch и требует аккаунта, для которого включена торговля и нет истории реверсов. Когда kill-switch выключен, возвращается 403 external_buy_disabled.
Требуется аутентификация. Отправьте ключ как Authorization: Bearer csb_pub_....Требуется возможность торговли. Для ключа должны быть включены покупки, а аккаунт должен быть чистым от реверсов.
Верхняя граница итоговой цены в USD. Если живой итог превышает её, заказ отклоняется с ошибкой price_moved и ничего не списывается. Настоятельно рекомендуется.
Игра, к которой относятся item_ids: 730 CS2 (по умолчанию), 570 Dota 2, 252490 Rust. Передавайте тот же appId, с которым читали id из GET /v1/listings. В заказе Dota 2 и Rust до 10 id; такие заказы ставятся в очередь, поэтому каждый скин сначала отвечает pending.
Некорректное тело (например, item_ids пуст или содержит более 100 элементов).
400
unsupported_item
Один или несколько предметов нельзя доставить через этот эндпоинт (например, id ss_live_*).
400
invalid_trade_url
partner + token не образуют валидный Steam trade URL.
400
unsupported_game
appId недоступен вашему ключу. Содержит supported_app_ids.
400
too_many_items
Больше 10 id Dota 2 или Rust в одном заказе. Содержит max_items.
401
invalid_api_key
Отсутствует или некорректный API-ключ.
402
insufficient_settled_balance
Подтверждённый баланс ниже суммы заказа. Включает required_usd и settled_usd.
402
insufficient_balance
Баланс ниже суммы заказа.
403
external_buy_disabled
Kill-switch выключен; эндпоинт сейчас недоступен.
403
trading_not_enabled
Покупки не включены для этого ключа.
403
account_restricted
Эндпоинт требует аккаунт без истории реверсов.
409
item_unavailable
Один или несколько предметов больше недоступны. Включает unavailable_ids[], а для CS2 может включать и unknown_ids[]. См. «Недоступные предметы» ниже.
409
price_moved
Живой итог превысил верхнюю границу. Включает quoted_max_usd, current_total_usd и items[].
409
idempotency_in_progress
Запрос с этим custom_id ещё обрабатывается.
409
price_updating
Цены обновляются; повторите через короткое время.
429
rate_limit_exceeded
Более 250 заказов на покупку в минуту (bucket: "buy_orders") или превышен торговый лимит ключа (bucket: "trading"). Подождите время, указанное в заголовке Retry-After.
500
order_failed
Проверьте, появился ли исходный заказ, прежде чем снова отправлять покупку.
Средства берутся исключительно из вашего подтверждённого баланса. Перед большой партией проверяйте settled_balance_usd через GET /v1/balance и всегда передавайте max_price_usd в качестве защиты от переплаты.
Листинг может уйти из каталога между вашим чтением и покупкой. В теле 409 item_unavailable все пропавшие id перечислены в unavailable_ids. При покупке CS2 (без appId или с 730) там может быть и unknown_ids — те из пропавших id, о которых у нас нет никакой записи. Либо это не id листинга CSBoard, либо листинг ушёл из каталога больше часа назад. Чаще всего вместо id листинга присылают asset id из Steam. У листингов CSBoard id никогда не состоит из одних цифр, поэтому отправляйте id строки из /v1/listings или стрима.
{ "code": "item_unavailable", "detail": "One or more items are no longer available. 1 of the ids are not known here (`unknown_ids`): not a listing id, or a listing gone for over an hour. Steam asset ids are not listing ids: send the `id` of a row from /v1/listings or the stream.", "unavailable_ids": ["31846262931"], "unknown_ids": ["31846262931"]}
Чтобы убирать проданные листинги до попытки покупки, подпишитесь на события gone в GET /v1/listings/stream.
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.
Sticky per-account setting (not per-order). Send true once to switch your key into auto-claim mode: every held order is then auto-released the moment its hold clears (your bot must auto-accept the Steam trade offer within ~15 minutes). Send false to switch back to manual claiming via POST /orders/{id}/claim. Omit to leave the setting unchanged.
Game the item_ids belong to: 730 = CS2 (the default), 570 = Dota 2, 252490 = Rust. Send the same appId you read the ids with from GET /listings. Dota 2 and Rust take up to 10 ids per order. A game this key may not buy in answers 400 unsupported_game — tradable in GET /games tells you in advance.
Доступные опции:
730,
570,
252490
Ответ
Purchase accepted and debited from settled balance.
{"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":"ru/api-reference/post-market-buy","slug":"/ru/api-reference/post-market-buy","pageMetadata":{"title":"POST /v1/market/buy — покупка и доставка на Steam trade URL","sidebarTitle":"POST /market/buy","description":"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.","openapi":"POST /market/buy","href":"/ru/api-reference/post-market-buy"},"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: \"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.\"\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={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Note,ParamField,ResponseField,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Этот эндпоинт позволяет покупать и доставлять предметы напрямую на `,_jsx(_components.strong,{children:`любой`}),` указанный вами Steam trade URL — не только на trade URL, привязанный к вашему аккаунту. Trade URL формируется из полей `,_jsx(_components.code,{children:`partner`}),` и `,_jsx(_components.code,{children:`token`}),`. Покупки финансируются `,_jsx(_components.strong,{children:`только`}),` из вашего `,_jsx(_components.strong,{children:`подтверждённого`}),` (защищённого от реверса) баланса, что делает эндпоинт пригодным для оптовых объёмов и потоков автоматической доставки.`]}),`\n`,_jsxs(_components.p,{children:[`Сохраните один `,_jsx(_components.code,{children:`custom_id`}),` для каждой выдачи. Успешный ответ хранится в кэше до 24 часов и при повторе содержит заголовок `,_jsx(_components.code,{children:`Idempotent-Replayed: true`}),`. Если ответ потерян, `,_jsx(_components.a,{href:`/ru/api-reference/get-orders-info`,children:`проверьте заказ`}),` по сохранённому идентификатору. Пустой результат возможен до появления заказа. Оставьте выдачу в ожидании до сверки.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Этот эндпоинт работает за kill-switch и требует аккаунта, для которого включена торговля и нет истории реверсов. Когда kill-switch выключен, возвращается `,_jsx(_components.code,{children:`403 external_buy_disabled`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Требуется аутентификация.`}),` Отправьте ключ как `,_jsx(_components.code,{children:`Authorization: Bearer csb_pub_...`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Требуется возможность торговли.`}),` Для ключа должны быть включены покупки, а аккаунт должен быть чистым от реверсов.`]}),`\n`,_jsx(Heading,{level:`2`,id:`тело-запроса`,children:`Тело запроса`}),`\n`,_jsx(ParamField,{body:`item_ids`,type:`string[]`,required:true,id:`param-item-ids`,children:_jsx(_components.p,{children:`От 1 до 100 уникальных id листингов для покупки.`})}),`\n`,_jsx(ParamField,{body:`partner`,type:`string`,required:true,id:`param-partner`,children:_jsxs(_components.p,{children:[`Значение `,_jsx(_components.code,{children:`partner`}),` из Steam trade URL (1–32 символа). Вместе с `,_jsx(_components.code,{children:`token`}),` образует конечный trade URL, на который доставляются предметы.`]})}),`\n`,_jsx(ParamField,{body:`token`,type:`string`,required:true,id:`param-token`,children:_jsxs(_components.p,{children:[`Значение `,_jsx(_components.code,{children:`token`}),` из Steam trade URL (1–32 символа). Вместе с `,_jsx(_components.code,{children:`partner`}),` образует конечный trade URL.`]})}),`\n`,_jsx(ParamField,{body:`max_price_usd`,type:`number`,id:`param-max-price-usd`,children:_jsxs(_components.p,{children:[`Верхняя граница итоговой цены в USD. Если живой итог превышает её, заказ отклоняется с ошибкой `,_jsx(_components.code,{children:`price_moved`}),` и ничего не списывается. Настоятельно рекомендуется.`]})}),`\n`,_jsx(ParamField,{body:`custom_id`,type:`string`,id:`param-custom-id`,children:_jsx(_components.p,{children:`Идентификатор выдачи (1–128 символов). После истечения срока кэша запрос с тем же идентификатором может запустить новую покупку.`})}),`\n`,_jsx(ParamField,{body:`skip_unavailable`,type:`boolean`,default:`false`,id:`param-skip-unavailable`,children:_jsxs(_components.p,{children:[`Если `,_jsx(_components.code,{children:`true`}),`, пропускать предметы, которые больше недоступны, вместо того чтобы отклонить весь запрос.`]})}),`\n`,_jsx(ParamField,{body:`appId`,type:`integer`,default:`730`,id:`param-app-id`,children:_jsxs(_components.p,{children:[`Игра, к которой относятся `,_jsx(_components.code,{children:`item_ids`}),`: `,_jsx(_components.code,{children:`730`}),` CS2 (по умолчанию), `,_jsx(_components.code,{children:`570`}),` Dota 2, `,_jsx(_components.code,{children:`252490`}),` Rust. Передавайте тот же `,_jsx(_components.code,{children:`appId`}),`, с которым читали id из `,_jsx(_components.a,{href:`/ru/api-reference/get-listings`,children:_jsx(_components.code,{children:`GET /v1/listings`})}),`. В заказе Dota 2 и Rust до 10 id; такие заказы ставятся в очередь, поэтому каждый скин сначала отвечает `,_jsx(_components.code,{children:`pending`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`поля-ответа`,children:`Поля ответа`}),`\n`,_jsx(ResponseField,{name:`data`,type:`object`,required:true,id:`param-data`,children:_jsxs(Expandable,{title:`data object`,children:[_jsx(ResponseField,{name:`purchase_id`,type:`string`,required:true,id:`param-purchase-id`}),_jsx(ResponseField,{name:`steam_id`,type:`string`,required:true,id:`param-steam-id`,children:_jsxs(_components.p,{children:[`Steam ID, определённый по переданным `,_jsx(_components.code,{children:`partner`}),` + `,_jsx(_components.code,{children:`token`}),`.`]})}),_jsx(ResponseField,{name:`created_at`,type:`datetime`,required:true,id:`param-created-at`}),_jsx(ResponseField,{name:`custom_id`,type:`string | null`,id:`param-custom-id-1`}),_jsxs(ResponseField,{name:`skins`,type:`object[]`,required:true,id:`param-skins`,children:[_jsx(_components.p,{children:`Результат по каждому предмету.`}),_jsxs(Expandable,{title:`skin object`,children:[_jsx(ResponseField,{name:`name`,type:`string | null`,id:`param-name`}),_jsx(ResponseField,{name:`price`,type:`number | null`,id:`param-price`}),_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`}),_jsx(ResponseField,{name:`return_reason`,type:`string | null`,id:`param-return-reason`}),_jsx(ResponseField,{name:`steam_trade_offer_id`,type:`string | null`,id:`param-steam-trade-offer-id`})]})]})]})}),`\n`,_jsx(Heading,{level:`2`,id:`пример-запроса`,children:`Пример запроса`}),`\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:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://csboard.com/v1/market/buy`}),_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:` \"Content-Type: application/json\"`}),_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:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"item_ids\": [\"itm_8841201\", \"itm_8841340\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"partner\": \"447383001\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"token\": \"Ab3xZ9Qp\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_price_usd\": 30.00,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"custom_id\": \"batch-2026-06-29-01\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"skip_unavailable\": false`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`пример-ответа`,children:`Пример ответа`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"purchase_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pur_01J9Z3K8Q2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"steam_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"76561198000000000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-06-29T17:12:04Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"custom_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"batch-2026-06-29-01\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"skins\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"AK-47 | Redline (Minimal Wear)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"price\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14.37`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"delivering\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"return_reason\"`}),_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:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"steam_trade_offer_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"5512345678\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`коды-ошибок`,children:`Коды ошибок`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP-статус`}),_jsx(_components.th,{children:`Код`}),_jsx(_components.th,{children:`Значение`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_request`})}),_jsxs(_components.td,{children:[`Некорректное тело (например, `,_jsx(_components.code,{children:`item_ids`}),` пуст или содержит более 100 элементов).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`unsupported_item`})}),_jsxs(_components.td,{children:[`Один или несколько предметов нельзя доставить через этот эндпоинт (например, id `,_jsx(_components.code,{children:`ss_live_*`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_trade_url`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`partner`}),` + `,_jsx(_components.code,{children:`token`}),` не образуют валидный Steam trade URL.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`unsupported_game`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`appId`}),` недоступен вашему ключу. Содержит `,_jsx(_components.code,{children:`supported_app_ids`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`too_many_items`})}),_jsxs(_components.td,{children:[`Больше 10 id Dota 2 или Rust в одном заказе. Содержит `,_jsx(_components.code,{children:`max_items`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_api_key`})}),_jsx(_components.td,{children:`Отсутствует или некорректный API-ключ.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`402`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`insufficient_settled_balance`})}),_jsxs(_components.td,{children:[`Подтверждённый баланс ниже суммы заказа. Включает `,_jsx(_components.code,{children:`required_usd`}),` и `,_jsx(_components.code,{children:`settled_usd`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`402`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`insufficient_balance`})}),_jsx(_components.td,{children:`Баланс ниже суммы заказа.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`external_buy_disabled`})}),_jsx(_components.td,{children:`Kill-switch выключен; эндпоинт сейчас недоступен.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`trading_not_enabled`})}),_jsx(_components.td,{children:`Покупки не включены для этого ключа.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`account_restricted`})}),_jsx(_components.td,{children:`Эндпоинт требует аккаунт без истории реверсов.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`item_unavailable`})}),_jsxs(_components.td,{children:[`Один или несколько предметов больше недоступны. Включает `,_jsx(_components.code,{children:`unavailable_ids[]`}),`, а для CS2 может включать и `,_jsx(_components.code,{children:`unknown_ids[]`}),`. См. `,_jsx(_components.a,{href:`#unavailable-items`,children:`«Недоступные предметы»`}),` ниже.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`price_moved`})}),_jsxs(_components.td,{children:[`Живой итог превысил верхнюю границу. Включает `,_jsx(_components.code,{children:`quoted_max_usd`}),`, `,_jsx(_components.code,{children:`current_total_usd`}),` и `,_jsx(_components.code,{children:`items[]`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`idempotency_in_progress`})}),_jsxs(_components.td,{children:[`Запрос с этим `,_jsx(_components.code,{children:`custom_id`}),` ещё обрабатывается.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`price_updating`})}),_jsx(_components.td,{children:`Цены обновляются; повторите через короткое время.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`429`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`rate_limit_exceeded`})}),_jsxs(_components.td,{children:[`Более 250 заказов на покупку в минуту (`,_jsx(_components.code,{children:`bucket: \"buy_orders\"`}),`) или превышен торговый лимит ключа (`,_jsx(_components.code,{children:`bucket: \"trading\"`}),`). Подождите время, указанное в заголовке `,_jsx(_components.code,{children:`Retry-After`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`500`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`order_failed`})}),_jsx(_components.td,{children:`Проверьте, появился ли исходный заказ, прежде чем снова отправлять покупку.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`504`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`upstream_timeout`})}),_jsxs(_components.td,{children:[`Площадка не ответила вовремя. Оставьте выдачу в ожидании и проверьте заказ по сохранённому идентификатору. `,_jsx(_components.a,{href:`https://csboard.com/cs2-skins-api/for/case-opening/#reconciliation`,children:`Пример запроса на Node.js, на английском`}),`.`]})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Средства берутся исключительно из вашего `,_jsx(_components.strong,{children:`подтверждённого`}),` баланса. Перед большой партией проверяйте `,_jsx(_components.code,{children:`settled_balance_usd`}),` через `,_jsx(_components.a,{href:`/api-reference/get-balance`,children:_jsx(_components.code,{children:`GET /v1/balance`})}),` и всегда передавайте `,_jsx(_components.code,{children:`max_price_usd`}),` в качестве защиты от переплаты.`]})}),`\n`,_jsx(`a`,{id:`unavailable-items`}),`\n`,_jsx(Heading,{level:`2`,id:`недоступные-предметы`,children:`Недоступные предметы`}),`\n`,_jsxs(_components.p,{children:[`Листинг может уйти из каталога между вашим чтением и покупкой. В теле `,_jsx(_components.code,{children:`409 item_unavailable`}),` все пропавшие id перечислены в `,_jsx(_components.code,{children:`unavailable_ids`}),`. При покупке CS2 (без `,_jsx(_components.code,{children:`appId`}),` или с `,_jsx(_components.code,{children:`730`}),`) там может быть и `,_jsx(_components.code,{children:`unknown_ids`}),` — те из пропавших id, о которых у нас нет никакой записи. Либо это не id листинга CSBoard, либо листинг ушёл из каталога больше часа назад. Чаще всего вместо id листинга присылают asset id из Steam. У листингов CSBoard id никогда не состоит из одних цифр, поэтому отправляйте `,_jsx(_components.code,{children:`id`}),` строки из `,_jsx(_components.code,{children:`/v1/listings`}),` или стрима.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"item_unavailable\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"detail\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:'\"One or more items are no longer available. 1 of the ids are not known here (`unknown_ids`): not a listing id, or a listing gone for over an hour. Steam asset ids are not listing ids: send the `id` of a row from /v1/listings or the stream.\"'}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"unavailable_ids\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"31846262931\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"unknown_ids\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"31846262931\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Чтобы убирать проданные листинги до попытки покупки, подпишитесь на события `,_jsx(_components.code,{children:`gone`}),` в `,_jsx(_components.a,{href:`/ru/api-reference/get-listings-stream`,children:_jsx(_components.code,{children:`GET /v1/listings/stream`})}),`.`]})]})}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":"POST /v1/market/buy — покупка и доставка на Steam trade URL","sidebarTitle":"POST /market/buy","description":"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.","openapi":"POST /market/buy","href":"/ru/api-reference/post-market-buy"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Тело запроса","slug":"тело-запроса","depth":2,"children":[]},{"title":"Поля ответа","slug":"поля-ответа","depth":2,"children":[]},{"title":"Пример запроса","slug":"пример-запроса","depth":2,"children":[]},{"title":"Пример ответа","slug":"пример-ответа","depth":2,"children":[]},{"title":"Коды ошибок","slug":"коды-ошибок","depth":2,"children":[]},{"title":"Недоступные предметы","slug":"недоступные-предметы","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Trading"],"summary":"Buy and deliver to a Steam trade URL","description":"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.","operationId":"marketBuy","requestBody":"63f70b05-c0ac-498d-965d-dc227e5ed296","responses":{"201":"c91847cf-bb06-414d-a180-633eebb59711","400":"6f327894-5d82-495a-8517-1c29bad7dde7","401":"fc046267-d064-4b4d-b8a2-074aedd9b2fb","402":"3d9fc73a-0fc0-4c2d-b7cf-19c2559b3bf6","403":"0e899eec-2d70-45c2-be96-afd05b599c26","409":"4f775094-982e-4307-848f-d6810ceac624","429":"c64b15ce-793e-4b81-bccc-743072b606bd","500":"1f854a22-669e-4cba-a7fc-e2c75d201dbb","504":"90a978ad-df3f-4f8e-ade9-5d93f6962a6f"},"method":"post","type":"path","servers":["0e703a7c-bb72-4382-a5c4-7af713801e30"],"security":["06dc2d5d-3307-4e9d-932f-2c2f29b1a6df"],"path":"/market/buy","baseUrlOptions":["https://csboard.com/v1"],"title":"Buy and deliver to a Steam trade URL","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"item_ids":{"type":"array","items":{"type":"string","uniqueKey":"item_ids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":100,"uniqueItems":true,"description":"1–100 unique listing ids to buy.","isRequired":true,"uniqueKey":"item_ids","typeLabel":"string[]"},"partner":{"type":"string","minLength":1,"maxLength":32,"description":"Steam trade URL `partner` value. With `token`, forms the destination trade URL.","isRequired":true,"uniqueKey":"partner","typeLabel":"string"},"token":{"type":"string","minLength":1,"maxLength":32,"description":"Steam trade URL `token` value. With `partner`, forms the destination trade URL.","isRequired":true,"uniqueKey":"token","typeLabel":"string"},"max_price_usd":{"type":"number","description":"Total ceiling in USD. Order is rejected with `price_moved` if the live total exceeds it.","uniqueKey":"max_price_usd","typeLabel":"number"},"custom_id":{"type":"string","minLength":1,"maxLength":128,"description":"Save one key per withdrawal. A cached success can be replayed for up to 24 hours. After expiry the same value may start a new purchase.","uniqueKey":"custom_id","typeLabel":"string"},"skip_unavailable":{"type":"boolean","default":false,"description":"If true, skip items that are no longer available instead of failing the whole request.","uniqueKey":"skip_unavailable","typeLabel":"boolean"},"autoclaim":{"type":"boolean","description":"Sticky per-account setting (not per-order). Send `true` once to switch your key into auto-claim mode: every held order is then auto-released the moment its hold clears (your bot must auto-accept the Steam trade offer within ~15 minutes). Send `false` to switch back to manual claiming via `POST /orders/{id}/claim`. Omit to leave the setting unchanged.","uniqueKey":"autoclaim","typeLabel":"boolean"},"appId":{"type":"integer","enum":[730,570,252490],"default":730,"description":"Game the `item_ids` belong to: `730` = CS2 (the default), `570` = Dota 2, `252490` = Rust. Send the same `appId` you read the ids with from `GET /listings`. Dota 2 and Rust take up to 10 ids per order. A game this key may not buy in answers `400 unsupported_game` — `tradable` in `GET /games` tells you in advance.","uniqueKey":"appId","typeLabel":"enum\u003cinteger>"}},"required":["item_ids","partner","token"],"uniqueKey":"","typeLabel":"object"},"example":{"item_ids":["itm_8841201","itm_8841340"],"partner":"447383001","token":"Ab3xZ9Qp","max_price_usd":30,"custom_id":"batch-2026-06-29-01","skip_unavailable":false},"examples":{"Example":{"title":"Example","value":{"item_ids":["itm_8841201","itm_8841340"],"partner":"447383001","token":"Ab3xZ9Qp","max_price_usd":30,"custom_id":"batch-2026-06-29-01","skip_unavailable":false}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"c91847cf-bb06-414d-a180-633eebb59711":{"description":"Purchase accepted and debited from settled balance.","headers":{"Idempotent-Replayed":{"description":"Present and `true` when this response replays an earlier purchase made with the same `custom_id`.","schema":{"type":"boolean"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"purchase_id":{"type":"string","isRequired":true,"uniqueKey":"data.purchase_id","typeLabel":"string"},"steam_id":{"type":"string","isRequired":true,"uniqueKey":"data.steam_id","typeLabel":"string"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.created_at","typeLabel":"string\u003cdate-time>"},"skins":{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","uniqueKey":"data.skins.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.skins.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.skins.items.[INDEX].name","typeLabel":"string | null"},"price":{"oneOf":[{"type":"number","uniqueKey":"data.skins.items.[INDEX].price.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.skins.items.[INDEX].price.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.skins.items.[INDEX].price","typeLabel":"number | null"},"status":{"type":"string","uniqueKey":"data.skins.items.[INDEX].status","typeLabel":"string"},"return_reason":{"oneOf":[{"type":"string","uniqueKey":"data.skins.items.[INDEX].return_reason.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.skins.items.[INDEX].return_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.skins.items.[INDEX].return_reason","typeLabel":"string | null"},"steam_trade_offer_id":{"oneOf":[{"type":"string","uniqueKey":"data.skins.items.[INDEX].steam_trade_offer_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.skins.items.[INDEX].steam_trade_offer_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.skins.items.[INDEX].steam_trade_offer_id","typeLabel":"string | null"}},"uniqueKey":"data.skins.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.skins","typeLabel":"object[]"},"custom_id":{"oneOf":[{"type":"string","uniqueKey":"data.custom_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.custom_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.custom_id","typeLabel":"string | null"}},"required":["purchase_id","steam_id","created_at","skins"],"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"uniqueKey":"","typeLabel":"object"},"example":{"data":{"purchase_id":"pur_01J9Z3K8Q2","steam_id":"76561198000000000","created_at":"2026-06-29T17:12:04Z","custom_id":"batch-2026-06-29-01","skins":[{"name":"AK-47 | Redline (Minimal Wear)","price":14.37,"status":"delivering","return_reason":null,"steam_trade_offer_id":"5512345678"}]}},"examples":{"Example":{"title":"Example","value":{"data":{"purchase_id":"pur_01J9Z3K8Q2","steam_id":"76561198000000000","created_at":"2026-06-29T17:12:04Z","custom_id":"batch-2026-06-29-01","skins":[{"name":"AK-47 | Redline (Minimal Wear)","price":14.37,"status":"delivering","return_reason":null,"steam_trade_offer_id":"5512345678"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"6f327894-5d82-495a-8517-1c29bad7dde7":{"description":"Bad request.","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"},"examples":{"invalid_request":{"title":"invalid_request","value":{"code":"invalid_request","detail":"item_ids must contain 1–100 unique ids."}},"unsupported_item":{"title":"unsupported_item","value":{"code":"unsupported_item","detail":"One or more items cannot be delivered via this endpoint."}},"invalid_trade_url":{"title":"invalid_trade_url","value":{"code":"invalid_trade_url","detail":"partner and token do not form a valid Steam trade URL."}},"unsupported_game":{"title":"unsupported_game","value":{"code":"unsupported_game","detail":"appId 570 is not available to this key. Supported: CS2 (730).","supported_app_ids":[730]}},"too_many_items":{"title":"too_many_items","value":{"code":"too_many_items","detail":"Up to 10 Rust items per order.","max_items":10}}},"exampleType":"examples"}},"exampleType":"examples"},"fc046267-d064-4b4d-b8a2-074aedd9b2fb":{"description":"Missing 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":"invalid_api_key","detail":"Missing or invalid API key."},"examples":{"Example":{"title":"Example","value":{"code":"invalid_api_key","detail":"Missing or invalid API key."}}},"exampleType":"examples"}},"exampleType":"examples"},"3d9fc73a-0fc0-4c2d-b7cf-19c2559b3bf6":{"description":"Not enough funds.","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"},"examples":{"insufficient_settled_balance":{"title":"insufficient_settled_balance","value":{"code":"insufficient_settled_balance","detail":"External delivery is payable only from settled (reversal-safe) balance. Wait for in-window credit to settle or top up.","required_usd":26.47,"balance_usd":30,"settled_usd":10}},"insufficient_balance":{"title":"insufficient_balance","value":{"code":"insufficient_balance","detail":"Balance is lower than the order total. Top up and retry.","required_usd":26.47,"balance_usd":4.75,"settled_usd":4.75}}},"exampleType":"examples"}},"exampleType":"examples"},"0e899eec-2d70-45c2-be96-afd05b599c26":{"description":"Not permitted.","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"},"examples":{"external_buy_disabled":{"title":"external_buy_disabled","value":{"code":"external_buy_disabled","detail":"This endpoint is currently disabled."}},"trading_not_enabled":{"title":"trading_not_enabled","value":{"code":"trading_not_enabled","detail":"Enable buying for this key in your profile."}},"account_restricted":{"title":"account_restricted","value":{"code":"account_restricted","detail":"This endpoint requires a reversal-clean account."}}},"exampleType":"examples"}},"exampleType":"examples"},"4f775094-982e-4307-848f-d6810ceac624":{"description":"Conflict — an item is gone, the live price moved past your ceiling, a request with the same `custom_id` is still running, or prices are mid-refresh. An in-progress conflict leaves the original request unresolved. `item_unavailable` lists every missing id in `unavailable_ids`; on a CS2 buy, `unknown_ids` names the ones we have no record of at all — not a CSBoard listing id (a Steam asset id is the usual mix-up; listing ids are never all digits) or a listing that left the catalogue more than an hour ago. Follow the stream's `gone` events to drop listings before you buy them.","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"},"examples":{"item_unavailable":{"title":"item_unavailable","value":{"code":"item_unavailable","detail":"One or more items are no longer available.","unavailable_ids":["itm_8841999"]}},"item_unknown":{"title":"item_unknown","value":{"code":"item_unavailable","detail":"One or more items are no longer available. 1 of the ids are not known here (`unknown_ids`): not a listing id, or a listing gone for over an hour. Steam asset ids are not listing ids: send the `id` of a row from /v1/listings or the stream.","unavailable_ids":["31846262931"],"unknown_ids":["31846262931"]}},"price_moved":{"title":"price_moved","value":{"code":"price_moved","detail":"Live total exceeds max_price_usd.","quoted_max_usd":30,"current_total_usd":31.2,"items":[{"id":"itm_8841201","market_hash_name":"AK-47 | Redline (Minimal Wear)","price_usd":15.1}]}},"idempotency_in_progress":{"title":"idempotency_in_progress","value":{"code":"idempotency_in_progress","detail":"A request with this custom_id is still being processed."}},"price_updating":{"title":"price_updating","value":{"code":"price_updating","detail":"Prices are updating; retry shortly."}},"concurrent_update":{"title":"concurrent_update","value":{"code":"concurrent_update","detail":"Another order touched the same items at the same moment and this one was rolled back. Nothing was charged — retry."}}},"exampleType":"examples"}},"exampleType":"examples"},"c64b15ce-793e-4b81-bccc-743072b606bd":{"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"},"1f854a22-669e-4cba-a7fc-e2c75d201dbb":{"description":"The purchase could not be completed.","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":"order_failed","detail":"The purchase could not be completed."},"examples":{"Example":{"title":"Example","value":{"code":"order_failed","detail":"The purchase could not be completed."}}},"exampleType":"examples"}},"exampleType":"examples"},"90a978ad-df3f-4f8e-ade9-5d93f6962a6f":{"description":"The purchase outcome is unknown. Keep the original order pending and reconcile through GET /v1/orders/info using the saved identifier. An empty lookup can precede order creation. Do not automatically repeat an unresolved purchase, even with the same identifier.","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":"upstream_timeout","detail":"The marketplace did not answer in time, so the outcome of this purchase is UNKNOWN — it may still have gone through. Do not re-send blindly: poll the order list (or re-send the identical custom_id, which replays rather than buys) before treating it as failed."},"examples":{"Example":{"title":"Example","value":{"code":"upstream_timeout","detail":"The marketplace did not answer in time, so the outcome of this purchase is UNKNOWN — it may still have gone through. Do not re-send blindly: poll the order list (or re-send the identical custom_id, which replays rather than buys) before treating it as failed."}}},"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":"POST /v1/market/buy — покупка и доставка на Steam trade URL - CSBoard API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/post-market-buy","matchLevel":1},"ru":{"href":"/ru/api-reference/post-market-buy","matchLevel":0},"zh-Hans":{"href":"/zh-Hans/api-reference/post-market-buy","matchLevel":1}}},"lastModified":"2026-11-06T03:14:16.486Z","originalFileLocation":"ru/api-reference/post-market-buy.mdx","locale":"ru"},"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=\"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.\">\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=\"POST /v1/market/buy — покупка и доставка на Steam trade URL - CSBoard API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CSBoard API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api.csboard.com/ru/api-reference/post-market-buy\">\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=%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BB%D1%8F\u0026amp;title=POST+%2Fv1%2Fmarket%2Fbuy+%E2%80%94+%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B0+%D0%B8+%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0+%D0%BD%D0%B0+Steam+trade+URL\u0026amp;description=%D0%9F%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D0%B9%D1%82%D0%B5+%D0%B4%D0%BE+100+%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BE%D0%B2+%D0%B8+%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B9%D1%82%D0%B5+%D0%B8%D1%85+%D0%BF%D1%80%D1%8F%D0%BC%D0%BE+%D0%BD%D0%B0+%D0%BB%D1%8E%D0%B1%D0%BE%D0%B9+%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9+%D0%B2%D0%B0%D0%BC%D0%B8+Steam+trade+URL%2C+%D0%BE%D0%BF%D0%BB%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D1%8F+%D0%B8%D0%B7+%D0%BF%D0%BE%D0%B4%D1%82%D0%B2%D0%B5%D1%80%D0%B6%D0%B4%D1%91%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE+%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0.+%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%BE+%D0%B4%D0%BB%D1%8F+%D0%BE%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D1%85+%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BE%D0%BA+%D0%B8+%D0%B0\u0026amp;theme=932e691933583ab42431355a\u0026amp;signature=786b9ba0e31263f5ede7e32136b552536ce8e8cc8e6e36770cf7f1666c15889a\">\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=\"POST /v1/market/buy — покупка и доставка на Steam trade URL - CSBoard API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://csboard.mintlify.site/_mintlify/api/og/v2?division=%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BB%D1%8F\u0026amp;title=POST+%2Fv1%2Fmarket%2Fbuy+%E2%80%94+%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B0+%D0%B8+%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0+%D0%BD%D0%B0+Steam+trade+URL\u0026amp;description=%D0%9F%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D0%B9%D1%82%D0%B5+%D0%B4%D0%BE+100+%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BE%D0%B2+%D0%B8+%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B9%D1%82%D0%B5+%D0%B8%D1%85+%D0%BF%D1%80%D1%8F%D0%BC%D0%BE+%D0%BD%D0%B0+%D0%BB%D1%8E%D0%B1%D0%BE%D0%B9+%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9+%D0%B2%D0%B0%D0%BC%D0%B8+Steam+trade+URL%2C+%D0%BE%D0%BF%D0%BB%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D1%8F+%D0%B8%D0%B7+%D0%BF%D0%BE%D0%B4%D1%82%D0%B2%D0%B5%D1%80%D0%B6%D0%B4%D1%91%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE+%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0.+%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%BE+%D0%B4%D0%BB%D1%8F+%D0%BE%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D1%85+%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BE%D0%BA+%D0%B8+%D0%B0\u0026amp;theme=932e691933583ab42431355a\u0026amp;signature=786b9ba0e31263f5ede7e32136b552536ce8e8cc8e6e36770cf7f1666c15889a\">\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/ru/api-reference/post-market-buy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ru/api-reference/post-market-buy.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://api.csboard.com/ru/api-reference/post-market-buy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://api.csboard.com/api-reference/post-market-buy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://api.csboard.com/zh-Hans/api-reference/post-market-buy\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://api.csboard.com/api-reference/post-market-buy\">\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/ru/api-reference/post-market-buy#webpage\",\"url\":\"https://api.csboard.com/ru/api-reference/post-market-buy\",\"name\":\"POST /v1/market/buy — покупка и доставка на Steam trade URL\",\"description\":\"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.\",\"dateModified\":\"2026-11-06T03:14:16.486Z\",\"isPartOf\":{\"@id\":\"https://api.csboard.com#website\"},\"breadcrumb\":{\"@id\":\"https://api.csboard.com/ru/api-reference/post-market-buy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api.csboard.com/ru/api-reference/post-market-buy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Торговля\",\"item\":\"https://api.csboard.com/ru/api-reference/post-orders\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"POST /v1/market/buy — покупка и доставка на Steam trade URL\",\"item\":\"https://api.csboard.com/ru/api-reference/post-market-buy\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api.csboard.com/ru/api-reference/post-market-buy#apireference\",\"headline\":\"POST /v1/market/buy — покупка и доставка на Steam trade URL\",\"name\":\"POST /v1/market/buy — покупка и доставка на Steam trade URL\",\"description\":\"Покупайте до 100 предметов и доставляйте их прямо на любой указанный вами Steam trade URL, оплачивая из подтверждённого баланса. Создано для оптовых покупок и автоматической доставки.\",\"url\":\"https://api.csboard.com/ru/api-reference/post-market-buy\",\"mainEntityOfPage\":{\"@id\":\"https://api.csboard.com/ru/api-reference/post-market-buy#webpage\"},\"dateModified\":\"2026-11-06T03:14:16.486Z\",\"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":"/ru/api-reference/post-market-buy.md","siteName":"CSBoard API","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/api-reference/post-market-buy"}]},{"language":"ru","tabs":[{"tab":"Руководства","pages":[{"title":"Руководства","href":"/ru/introduction"}]},{"tab":"Справочник API","groups":[{"group":"Рыночные данные","pages":[{"title":"GET /v1/listings — просмотр актуальных листингов маркетплейса CS2","sidebarTitle":"GET /listings","openapi":"GET /listings","href":"/ru/api-reference/get-listings"},{"title":"GET /v1/listings/stream — живая лента появления и продажи листингов","sidebarTitle":"GET /listings/stream","openapi":"GET /listings/stream","href":"/ru/api-reference/get-listings-stream"},{"title":"GET /v1/listings/availability — пакетная проверка доступности","sidebarTitle":"GET /listings/availability","openapi":"GET /listings/availability","href":"/ru/api-reference/get-listings-availability"},{"title":"GET /v1/games — игры, которые можно передать в appId","sidebarTitle":"GET /games","openapi":"GET /games","href":"/ru/api-reference/get-games"},{"title":"GET /v1/prices — список minAsk цен CS2 по группам товаров","sidebarTitle":"GET /prices","openapi":"GET /prices","href":"/ru/api-reference/get-prices"},{"title":"GET /v1/prices/snapshot.ndjson.gz — полный снимок цен","sidebarTitle":"GET /prices/snapshot","openapi":"GET /prices/snapshot.ndjson.gz","href":"/ru/api-reference/get-prices-snapshot"},{"title":"GET /v1/public/prices — фид минимальных цен без ключа для CS2, Dota 2 и Rust","sidebarTitle":"GET /public/prices","openapi":"GET /public/prices","href":"/ru/api-reference/get-public-prices"},{"title":"GET /v1/currency — курсы валют для конвертации USD","sidebarTitle":"GET /currency","openapi":"GET /currency","href":"/ru/api-reference/get-currency"}]},{"group":"Торговля","pages":[{"title":"POST /v1/orders — покупка листингов CS2 со своего баланса","sidebarTitle":"POST /orders","description":"Покупайте 1–10 листингов CS2 по ID в одном атомарном запросе со списанием с баланса CSBoard. Требуется API-ключ с включённой торговлей и привязанный аккаунт Steam.","openapi":"POST /orders","href":"/ru/api-reference/post-orders"},{"title":"POST /v1/market/buy — покупка и доставка на Steam trade URL","sidebarTitle":"POST /market/buy","openapi":"POST /market/buy","href":"/ru/api-reference/post-market-buy"},{"title":"POST /v1/orders/:id/claim — забрать заказ из холда","sidebarTitle":"POST /orders/:id/claim","description":"Запускает доставку заказа, находящегося в холде (эскроу), после снятия блокировки. Часть заказов доставляется автоматически, часть требует явного claim.","openapi":"POST /orders/{id}/claim","href":"/ru/api-reference/post-orders-claim"},{"title":"POST /v1/orders/:id/cancel — отменить недоставленный заказ","sidebarTitle":"POST /orders/:id/cancel","openapi":"POST /orders/{id}/cancel","href":"/ru/api-reference/post-orders-cancel"},{"title":"GET /v1/orders — история ваших покупок","sidebarTitle":"GET /orders","openapi":"GET /orders","href":"/ru/api-reference/get-orders"},{"title":"GET /v1/orders/info — пакетный поиск заказов","sidebarTitle":"GET /orders/info","openapi":"GET /orders/info","href":"/ru/api-reference/get-orders-info"},{"title":"GET /v1/orders/{id} — получение одного заказа","sidebarTitle":"GET /orders/{id}","openapi":"GET /orders/{id}","href":"/ru/api-reference/get-order"}]},{"group":"P2P","pages":[{"title":"GET /v1/p2p/inventory — ваш инвентарь CS2, готовый к выставлению","sidebarTitle":"GET /p2p/inventory","openapi":"GET /p2p/inventory","href":"/ru/api-reference/get-p2p-inventory"},{"title":"POST /v1/p2p/listings — выставление ваших предметов CS2 на P2P-маркет","sidebarTitle":"POST /p2p/listings","openapi":"POST /p2p/listings","href":"/ru/api-reference/post-p2p-listings"},{"title":"GET /v1/p2p/listings — ваши P2P-листинги","sidebarTitle":"GET /p2p/listings","openapi":"GET /p2p/listings","href":"/ru/api-reference/get-p2p-listings"},{"title":"PATCH /v1/p2p/listings/{id} — изменение цены листинга","sidebarTitle":"PATCH /p2p/listings/{id}","openapi":"PATCH /p2p/listings/{id}","href":"/ru/api-reference/patch-p2p-listing"},{"title":"DELETE /v1/p2p/listings/{id} — снятие P2P-листинга","sidebarTitle":"DELETE /p2p/listings/{id}","openapi":"DELETE /p2p/listings/{id}","href":"/ru/api-reference/delete-p2p-listing"}]},{"group":"Аккаунт","pages":[{"title":"GET /v1/balance — баланс аккаунта и статус торговли","sidebarTitle":"GET /balance","openapi":"GET /balance","href":"/ru/api-reference/get-balance"}]},{"group":"Статус","pages":[{"title":"GET /v1/health — проверка доступности и свежести API CSBoard","sidebarTitle":"GET /health","openapi":"GET /health","href":"/ru/api-reference/get-health"}]}]},{"tab":"Журнал изменений","pages":[{"title":"Журнал изменений","href":"/ru/changelog/overview"}]}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-Hans/api-reference/post-market-buy"}]}]},"basePath":"","title":"POST /v1/market/buy — покупка и доставка на Steam trade URL - 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"]}