wallets is optional. Omit it (or pass null), set a top-level amount,
and the swap runs on every wallet with spot trading enabled in Bloom — the
same wallets the bot and extension trade from. To name wallets explicitly,
list them with GET /api/v1/wallets first. An
empty wallets array is an error (NO_WALLETS), not a fallback.
auto_orders has three states. Omitted or null applies the Spot
strategy saved in Bloom Manager; an empty array [] attaches no auto-orders
at all; a non-empty array uses exactly those orders. See the
Auto-orders guide for the full field reference,
the target_value table, and examples.
Building a bot that might see the same token twice? Set skip_if_bought on
a Buy and the request becomes a no-op if any wallet on your account already
bought that token. A skipped request is a 200 with data.skipped: true and
no signatures — not an error.
Building on Bloom for other traders? Set builder_address and
builder_fee_bps (1–100) together and that wallet earns a share of the
swap, paid on top of Bloom’s fee in the same transaction. See
Builder fees.
EVM host only. The chain to trade on, matched case-insensitively. Optional — when omitted, the token address is resolved across the supported chains automatically. Pass it explicitly to pin the lookup to one chain. An unrecognised value fails with INVALID_REQUEST. Not used on the Solana host. See Chains and quote assets.
For a Sell, how each wallet's amount is interpreted: percent (1-100 of holdings, the default) or tokens (absolute token quantity). An over-amount in tokens mode sells the full balance. Ignored for a Buy. tokens is Solana-only — the EVM host rejects it with INVALID_REQUEST.
When true, skip the whole swap if any wallet on your account has already bought this token — for a bot that may see the same token twice and must not double-buy. The check runs against your Bloom trade history for the token, so it also covers buys placed from the bot, the extension, or the manager, not just from this API.
A skipped request is not an error: it returns 200 with data.skipped: true and an empty signatures. It still consumes one unit of rate-limit budget.
Buys only — ignored for a Sell, where it would mean "refuse to sell what you hold".
EVM host only. Maximum token buy/sell tax you will accept, as a percentage (5 = 5%). The token's tax is probed before execution; a trade on a token whose tax exceeds the cap is rejected with TAX_OUT_OF_RANGE. An explicit 0 means "tax-free tokens only". Omitted = no cap: the tax check does not run. Not used on the Solana host.
The tax check is best-effort and not guaranteed to catch every case: the tax actually applied at execution can differ from the probed value. Trading taxed or malicious tokens is at your own risk; Bloom is not responsible for losses caused by token taxes or token contract behaviour.
Default amount for every wallet the swap runs on, as a decimal string in the same units as wallets[].amount (quote asset to spend on a Buy; percent of holdings or token quantity on a Sell, per sell_mode). Required when wallets is omitted — each default wallet trades this amount. When wallets is given, it is the fallback for any entry that leaves its own amount unset.
Wallets to swap from; each must belong to your account. Optional: omit it (or pass null) and the swap runs on every wallet with spot trading enabled in Bloom — the same set the Bloom bot and extension trade from — each spending the top-level amount. List them with GET /api/v1/wallets (spot_active: true). An empty array is rejected with NO_WALLETS; it never falls back to the defaults.
Attach take-profit / stop-loss / trailing / time / dev-sell exits to this swap (up to 20; any beyond 20 are dropped). See the Auto-orders guide for the full field reference, the target_value table, and examples.
Omitted or null: the swap uses the auto-orders of the Spot strategy saved in Bloom Manager, exactly as a trade from the bot or extension would. Empty array []: no auto-orders at all, even if a strategy is saved. Non-empty: exactly the orders given; the saved strategy is not merged in.
Quote asset to trade against — what a Buy spends, and the unit of wallets[].amount. Omit it to use the chain's native token.
Each chain's native token is named by its own symbol: SOL on the Solana host, and on EVM ETH (eth, base, rbh), BNB (bsc) or USDC (arc, whose native token is USDC).
Support is validated per chain — eth USDC/USDT, bsc USD1/USDC/USDT, base USDC, rbh USDG, arc native only, Solana USDC/USD1. An asset the chain does not support is rejected with INVALID_REQUEST, and the error lists the valid set. See Chains and quote assets.
Builder fee: a wallet that earns a share of this trade, paid on top of Bloom's fee as a separate transfer in the same transaction, in the asset the trade settles in. A Buy pays it on the amount spent, a Sell on the proceeds. An address on the chain being traded — base58 on the Solana host, 0x… on the EVM host.
Sent together with builder_fee_bps, or not at all — one without the other is rejected with INVALID_REQUEST, never half-applied. Omit both for a swap with no builder fee. See Builder fees.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Bloom API","colors":{"primary":"#10b981","light":"#34d399","dark":"#059669"},"logo":{"light":"https://mintcdn.com/bloom-885be02a/wtWL9euAd-YmeFaz/logo/light.png?fit=max\u0026auto=format\u0026n=wtWL9euAd-YmeFaz\u0026q=85\u0026s=5ff91d43ce547549db2ad3385945cc42","dark":"https://mintcdn.com/bloom-885be02a/wtWL9euAd-YmeFaz/logo/dark.png?fit=max\u0026auto=format\u0026n=wtWL9euAd-YmeFaz\u0026q=85\u0026s=6e4b3138a50c475b2bca48746bca4625"},"favicon":"https://mintcdn.com/bloom-885be02a/wtWL9euAd-YmeFaz/favicon.svg?fit=max\u0026auto=format\u0026n=wtWL9euAd-YmeFaz\u0026q=85\u0026s=1671c818086caeaad02865bfe514e5ab","navbar":{"primary":{"type":"button","label":"Open Bloom","href":"https://bloombot.app"}},"footer":{"socials":{"x":"https://x.com/bloom"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"bloom-885be02a","hasAudioNarration":false,"actualSubdomain":"bloom-885be02a","customDomains":["dev.bloombot.app"],"gitSource":{"type":"github","owner":"bloomorganization","repo":"bloom-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"daffca48-9ce9-471d-9953-3e66ba2a00a1","liveDeploymentHistoryId":"6ac33a7dda22a01a82414fcf","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac33a7dda22a01a82414fcf"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ac33a7dda22a01a82414fcf","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Guides","count":9},{"language":"default","tag":"Core Concepts","count":5},{"language":"default","tag":"API Reference","count":4},{"language":"default","tag":"Endpoints","count":4},{"language":"default","tag":"Getting Started","count":4}]},"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":"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":"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":"llms-txt-v2","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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/swap","slug":"/api-reference/swap","pageMetadata":{"title":"Execute a swap","description":"Buy or sell a token across one or more of your wallets.","openapi":"openapi.yaml POST /api/v1/swap","href":"/api-reference/swap"},"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: \"Buy or sell a token across one or more of your wallets.\"\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`,strong:`strong`,..._provideComponents(),...props.components},{Note,Tip}=_components;if(!Note)_missingMdxReference(`Note`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`wallets`}),` is optional.`]}),` Omit it (or pass `,_jsx(_components.code,{children:`null`}),`), set a top-level `,_jsx(_components.code,{children:`amount`}),`,\nand the swap runs on every wallet with spot trading enabled in Bloom — the\nsame wallets the bot and extension trade from. To name wallets explicitly,\nlist them with `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/api-reference/wallets`,children:_jsx(_components.code,{children:`GET /api/v1/wallets`})})}),` first. An\nempty `,_jsx(_components.code,{children:`wallets`}),` array is an error (`,_jsx(_components.code,{children:`NO_WALLETS`}),`), not a fallback.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`auto_orders`}),` has three states.`]}),` Omitted or `,_jsx(_components.code,{children:`null`}),` applies the Spot\nstrategy saved in Bloom Manager; an empty array `,_jsx(_components.code,{children:`[]`}),` attaches no auto-orders\nat all; a non-empty array uses exactly those orders. See the\n`,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/concepts/auto-orders`,children:`Auto-orders guide`})}),` for the full field reference,\nthe `,_jsx(_components.code,{children:`target_value`}),` table, and examples.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Building a bot that might see the same token twice? Set `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`skip_if_bought`})}),` on\na Buy and the request becomes a no-op if any wallet on your account already\nbought that token. A skipped request is a `,_jsx(_components.code,{children:`200`}),` with `,_jsx(_components.code,{children:`data.skipped: true`}),` and\nno signatures — not an error.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Building on Bloom for other traders? Set `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`builder_address`})}),` and\n`,_jsx(_components.strong,{children:_jsx(_components.code,{children:`builder_fee_bps`})}),` (1–100) together and that wallet earns a share of the\nswap, paid on top of Bloom’s fee in the same transaction. See\n`,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/concepts/builder-fees`,children:`Builder fees`})}),`.`]})})]})}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":"Execute a swap","description":"Buy or sell a token across one or more of your wallets.","openapi":"openapi.yaml POST /api/v1/swap","href":"/api-reference/swap"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Trading"],"summary":"Execute a swap","operationId":"swap","description":"Buy or sell a token across one or more of your wallets.","requestBody":"9027bdcb-7300-4cdf-a9f4-6e57536c2f6c","responses":{"200":"85e27042-6c2b-46ed-8564-3e23facae8c8","400":"74c0e6ef-b3b0-4e95-bcd5-f85b635e6363","401":"b1730614-d95f-4a48-8431-688af3754484","429":"9c840ac5-5a24-450b-b765-6bc097675511","500":"b5c20e9f-1f87-483a-aee5-b99270bd82f4"},"method":"post","type":"path","servers":["40730cd0-ddbc-429c-9647-3d9a622ca42a","509f1201-5d73-4eff-9146-0e56054456c8","e4e3f11f-c319-4095-85f0-6e6e6282e841"],"security":["96605d66-2616-45ca-828f-65cbaa0a1866"],"path":"/api/v1/swap","baseUrlOptions":["https://eu.solana.bloombot.app","https://us.solana.bloombot.app","https://evm.bloombot.app"],"title":"Execute a swap","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address","side","priority_fee","processor_tip","slippage","anti_mev","auto_tip"],"properties":{"address":{"type":"string","description":"Token mint address or pool ID.","isRequired":true,"uniqueKey":"address","typeLabel":"string"},"side":{"type":"string","enum":["Buy","Sell"],"isRequired":true,"uniqueKey":"side","typeLabel":"enum\u003cstring>"},"priority_fee":{"type":"number","description":"Priority fee. Denominated in SOL on the Solana host and in **gwei** on the EVM host — see [Fee denomination](/concepts/chains#fee-denomination).\n","isRequired":true,"uniqueKey":"priority_fee","typeLabel":"number"},"processor_tip":{"type":"number","description":"Processor tip; ignored when `auto_tip` is true. Denominated in SOL on the Solana host and in the chain's **native asset** on the EVM host.\n","isRequired":true,"uniqueKey":"processor_tip","typeLabel":"number"},"slippage":{"type":"number","description":"Slippage tolerance as a percentage, e.g. 10 = 10%.","isRequired":true,"uniqueKey":"slippage","typeLabel":"number"},"anti_mev":{"type":"boolean","isRequired":true,"uniqueKey":"anti_mev","typeLabel":"boolean"},"auto_tip":{"type":"boolean","description":"When true, the server sets the priority fee and processor tip for you.","isRequired":true,"uniqueKey":"auto_tip","typeLabel":"boolean"},"chain":{"type":"string","enum":["eth","bsc","base","rbh","arc"],"description":"**EVM host only.** The chain to trade on, matched case-insensitively. Optional — when omitted, the token address is resolved across the supported chains automatically. Pass it explicitly to pin the lookup to one chain. An unrecognised value fails with `INVALID_REQUEST`. Not used on the Solana host. See [Chains and quote assets](/concepts/chains).\n","uniqueKey":"chain","typeLabel":"enum\u003cstring>"},"sell_mode":{"type":"string","enum":["percent","tokens"],"default":"percent","description":"For a Sell, how each wallet's `amount` is interpreted: `percent` (1-100 of holdings, the default) or `tokens` (absolute token quantity). An over-amount in `tokens` mode sells the full balance. Ignored for a Buy. `tokens` is **Solana-only** — the EVM host rejects it with `INVALID_REQUEST`.\n","uniqueKey":"sell_mode","typeLabel":"enum\u003cstring>"},"skip_if_bought":{"type":"boolean","default":false,"description":"When true, skip the whole swap if **any** wallet on your account has already bought this token — for a bot that may see the same token twice and must not double-buy. The check runs against your Bloom trade history for the token, so it also covers buys placed from the bot, the extension, or the manager, not just from this API.\n\nA skipped request is **not** an error: it returns `200` with `data.skipped: true` and an empty `signatures`. It still consumes one unit of rate-limit budget.\n\n**Buys only** — ignored for a Sell, where it would mean \"refuse to sell what you hold\".\n","uniqueKey":"skip_if_bought","typeLabel":"boolean"},"max_tax":{"type":"number","minimum":0,"maximum":100,"description":"**EVM host only.** Maximum token buy/sell tax you will accept, as a percentage (5 = 5%). The token's tax is probed before execution; a trade on a token whose tax exceeds the cap is rejected with `TAX_OUT_OF_RANGE`. An explicit `0` means \"tax-free tokens only\". **Omitted = no cap: the tax check does not run.** Not used on the Solana host.\n\nThe tax check is best-effort and not guaranteed to catch every case: the tax actually applied at execution can differ from the probed value. Trading taxed or malicious tokens is at your own risk; Bloom is not responsible for losses caused by token taxes or token contract behaviour.\n","uniqueKey":"max_tax","typeLabel":"number"},"amount":{"type":"string","description":"Default amount for every wallet the swap runs on, as a decimal string in the same units as `wallets[].amount` (quote asset to spend on a Buy; percent of holdings or token quantity on a Sell, per `sell_mode`). **Required when `wallets` is omitted** — each default wallet trades this amount. When `wallets` is given, it is the fallback for any entry that leaves its own `amount` unset.\n","uniqueKey":"amount","typeLabel":"string"},"wallets":{"type":"array","minItems":1,"description":"Wallets to swap from; each must belong to your account. **Optional:** omit it (or pass `null`) and the swap runs on every wallet with spot trading enabled in Bloom — the same set the Bloom bot and extension trade from — each spending the top-level `amount`. List them with [`GET /api/v1/wallets`](/api-reference/wallets) (`spot_active: true`). An empty array is rejected with `NO_WALLETS`; it never falls back to the defaults.\n","items":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"One of your wallets — see [`GET /api/v1/wallets`](/api-reference/wallets).","isRequired":true,"uniqueKey":"wallets.items.[INDEX].address","typeLabel":"string"},"amount":{"type":"string","description":"Amount to swap from this wallet, as a decimal string (avoids floating-point precision loss). For a Buy, this is the amount of the chosen `quote_asset` to spend (e.g. `\"10\"` with `quote_asset: USDC` spends 10 USDC; SOL when `quote_asset` is SOL or omitted). For a Sell, it is interpreted per the request's `sell_mode`: a percentage of holdings `1`-`100` (default), or an absolute token quantity when `sell_mode` is `tokens`. Optional when the request carries a top-level `amount`, which then applies to this wallet.\n","uniqueKey":"wallets.items.[INDEX].amount","typeLabel":"string"}},"uniqueKey":"wallets.items.[INDEX]","typeLabel":"object"},"uniqueKey":"wallets","typeLabel":"object[]"},"auto_orders":{"type":"array","maxItems":20,"description":"Attach take-profit / stop-loss / trailing / time / dev-sell exits to this swap (up to 20; any beyond 20 are dropped). See the [Auto-orders guide](/concepts/auto-orders) for the full field reference, the `target_value` table, and examples.\n\n**Omitted or `null`:** the swap uses the auto-orders of the Spot strategy saved in Bloom Manager, exactly as a trade from the bot or extension would. **Empty array `[]`:** no auto-orders at all, even if a strategy is saved. **Non-empty:** exactly the orders given; the saved strategy is not merged in.\n","items":{"type":"object","description":"An exit order attached to a swap (take-profit, stop-loss, trailing,\ntime-based, or dev-sell). The order is evaluated after the parent trade\nlands and sells automatically when it triggers. See the\n[Auto-orders guide](/concepts/auto-orders) for examples and guidance.\n\nThe meaning of `target_value` depends on `target_type`:\n\n| target_type | target_value means |\n|--------------|------------------------------------------------------------------------------------------------------------------------|\n| `percentage` | Percent to sell at. Positive = take-profit (sell when up X%); negative = stop-loss (sell when down X%). |\n| `fixed` | Target market cap in USD — sell when the market cap reaches this value. |\n| `fixed_add` | Market-cap change threshold in USD — sell when the market cap moves (up or down) by this amount. |\n| `trailing` | Trailing distance as a percent — the stop trails this far below the peak and moves up as the price rises. |\n| `time` | Seconds — sell this many seconds after the order is placed. |\n| `dev_sell` | Triggers when the token creator sells: `0` = any dev sell, `100` = only a full (whole-position) dev sell. |\n","required":["target_type","target_value","amount","slippage","priority_fee"],"properties":{"target_type":{"type":"string","enum":["percentage","fixed","fixed_add","trailing","time","dev_sell"],"description":"Order trigger type. The meaning of `target_value` depends on this. Use `dev_sell` for an automatic dev-sell.","isRequired":true,"uniqueKey":"auto_orders.items.[INDEX].target_type","typeLabel":"enum\u003cstring>"},"target_value":{"type":"number","description":"Trigger threshold; its meaning depends on `target_type` — see [what target_value means](/concepts/auto-orders#what-target_value-means).","isRequired":true,"uniqueKey":"auto_orders.items.[INDEX].target_value","typeLabel":"number"},"amount":{"type":"number","description":"Percentage of your position to sell when the order triggers, 1–100 (100 = sell the entire position).","isRequired":true,"uniqueKey":"auto_orders.items.[INDEX].amount","typeLabel":"number"},"slippage":{"type":"number","description":"Slippage tolerance as a percentage (e.g. 10 = 10%).","isRequired":true,"uniqueKey":"auto_orders.items.[INDEX].slippage","typeLabel":"number"},"priority_fee":{"type":"number","description":"Priority fee. Denominated in SOL on the Solana host and in **gwei** on the EVM host — see [Fee denomination](/concepts/chains#fee-denomination).\n","isRequired":true,"uniqueKey":"auto_orders.items.[INDEX].priority_fee","typeLabel":"number"},"processor_tip":{"type":"number","description":"Processor tip. Denominated in SOL on the Solana host and in the chain's **native asset** on the EVM host.\n","uniqueKey":"auto_orders.items.[INDEX].processor_tip","typeLabel":"number"},"anti_mev":{"type":"boolean","default":false,"description":"Submit the exit through an anti-MEV path. Optional; defaults to false.","uniqueKey":"auto_orders.items.[INDEX].anti_mev","typeLabel":"boolean"}},"uniqueKey":"auto_orders.items.[INDEX]","typeLabel":"object"},"uniqueKey":"auto_orders","typeLabel":"object[]"},"quote_asset":{"type":"string","enum":["SOL","ETH","BNB","USDC","USDT","USD1","USDG"],"description":"Quote asset to trade against — what a Buy spends, and the unit of `wallets[].amount`. Omit it to use the chain's native token.\n\nEach chain's native token is named by its own symbol: `SOL` on the Solana host, and on EVM `ETH` (eth, base, rbh), `BNB` (bsc) or `USDC` (arc, whose native token is USDC).\n\nSupport is validated **per chain** — eth `USDC`/`USDT`, bsc `USD1`/`USDC`/`USDT`, base `USDC`, rbh `USDG`, arc native only, Solana `USDC`/`USD1`. An asset the chain does not support is rejected with `INVALID_REQUEST`, and the error lists the valid set. See [Chains and quote assets](/concepts/chains).\n","uniqueKey":"quote_asset","typeLabel":"enum\u003cstring>"},"min_liquidity":{"type":"number","description":"Pool liquidity bounds in USD.","uniqueKey":"min_liquidity","typeLabel":"number"},"max_liquidity":{"type":"number","description":"Pool liquidity bounds in USD.","uniqueKey":"max_liquidity","typeLabel":"number"},"min_market_cap":{"type":"number","description":"Token market-cap bounds in USD.","uniqueKey":"min_market_cap","typeLabel":"number"},"max_market_cap":{"type":"number","description":"Token market-cap bounds in USD.","uniqueKey":"max_market_cap","typeLabel":"number"},"builder_address":{"type":"string","description":"Builder fee: a wallet that earns a share of this trade, paid on top of Bloom's fee as a separate transfer in the same transaction, in the asset the trade settles in. A Buy pays it on the amount spent, a Sell on the proceeds. An address on the chain being traded — base58 on the Solana host, `0x…` on the EVM host.\n\n**Sent together with `builder_fee_bps`, or not at all** — one without the other is rejected with `INVALID_REQUEST`, never half-applied. Omit both for a swap with no builder fee. See [Builder fees](/concepts/builder-fees).\n","uniqueKey":"builder_address","typeLabel":"string"},"builder_fee_bps":{"type":"integer","minimum":1,"maximum":100,"description":"The builder's share in basis points, `1`–`100` (100 = 1%). Required with `builder_address`; a value outside the range is rejected with `INVALID_REQUEST`.\n","uniqueKey":"builder_fee_bps","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"buy":{"title":"buy","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Buy","wallets":[{"address":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"0.1"}],"slippage":10,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":false}},"buyDefaultWallets":{"title":"buyDefaultWallets","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Buy","amount":"0.1","slippage":10,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":false}},"buyOnce":{"title":"buyOnce","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Buy","skip_if_bought":true,"wallets":[{"address":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"0.1"}],"slippage":10,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":false}},"buyEvm":{"title":"buyEvm","value":{"address":"0x9afedf881ca7e07f4f3cc7ecd2b974705834ffce","chain":"bsc","side":"Buy","wallets":[{"address":"0x2e8f0C9199cE40a66100917Ec09BD67A114D2827","amount":"0.05"}],"slippage":10,"priority_fee":3,"processor_tip":0.0005,"anti_mev":false,"auto_tip":false}},"buyEvmStable":{"title":"buyEvmStable","value":{"address":"0x9afedf881ca7e07f4f3cc7ecd2b974705834ffce","chain":"rbh","side":"Buy","quote_asset":"USDG","wallets":[{"address":"0x2e8f0C9199cE40a66100917Ec09BD67A114D2827","amount":"25"}],"slippage":10,"priority_fee":3,"processor_tip":0.0005,"anti_mev":false,"auto_tip":false}},"buyWithTakeProfit":{"title":"buyWithTakeProfit","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Buy","wallets":[{"address":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"0.05"}],"slippage":10,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":false,"auto_orders":[{"target_type":"percentage","target_value":50,"amount":100,"slippage":15,"priority_fee":0.001,"anti_mev":true}]}},"buyWithDevSell":{"title":"buyWithDevSell","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Buy","wallets":[{"address":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"0.05"}],"slippage":10,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":true,"auto_orders":[{"target_type":"dev_sell","target_value":0,"amount":100,"slippage":25,"priority_fee":0.001,"anti_mev":false}]}},"buyWithoutAutoOrders":{"title":"buyWithoutAutoOrders","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Buy","wallets":[{"address":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"0.1"}],"auto_orders":[],"slippage":10,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":false}},"buyWithBuilderFee":{"title":"buyWithBuilderFee","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Buy","wallets":[{"address":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"0.1"}],"builder_address":"9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin","builder_fee_bps":50,"slippage":10,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":false}},"sellPercent":{"title":"sellPercent","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Sell","sell_mode":"percent","wallets":[{"address":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"100"}],"slippage":25,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":false}},"sellTokens":{"title":"sellTokens","value":{"address":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","side":"Sell","sell_mode":"tokens","wallets":[{"address":"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU","amount":"330000.5"}],"slippage":25,"priority_fee":0.001,"processor_tip":0.0001,"anti_mev":false,"auto_tip":false}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"85e27042-6c2b-46ed-8564-3e23facae8c8":{"description":"Swap accepted.","headers":{"X-RateLimit-Limit-Minute":{"description":"Configured per-minute limit.","schema":{"type":"integer"}},"X-RateLimit-Limit-Hour":{"description":"Configured per-hour limit.","schema":{"type":"integer"}},"X-RateLimit-Limit-Week":{"description":"Configured per-week limit.","schema":{"type":"integer"}},"X-RateLimit-Remaining-Minute":{"description":"Requests remaining in the current minute window.","schema":{"type":"integer"}},"X-RateLimit-Remaining-Hour":{"description":"Requests remaining in the current hour window.","schema":{"type":"integer"}},"X-RateLimit-Remaining-Week":{"description":"Requests remaining in the current week window.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","data"],"properties":{"success":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"data":{"type":"object","required":["order_id","signatures"],"properties":{"order_id":{"type":"string","isRequired":true,"uniqueKey":"data.order_id","typeLabel":"string"},"signatures":{"type":"array","description":"Submitted transaction signatures, one per wallet/transaction. These confirm what was broadcast on-chain (not final confirmation). May be empty if nothing was submitted.","items":{"type":"string","uniqueKey":"data.signatures.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.signatures","typeLabel":"string[]"},"skipped":{"type":"boolean","default":false,"description":"True only when `skip_if_bought` suppressed the swap. Lets you tell \"we chose not to trade\" apart from an execution that submitted nothing — both return an empty `signatures`.","uniqueKey":"data.skipped","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"data":{"order_id":"\u003cstring>","signatures":["\u003cstring>"],"skipped":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"74c0e6ef-b3b0-4e95-bcd5-f85b635e6363":{"description":"Bad request. Codes: NO_WALLETS (`wallets` is empty, or it was omitted and no wallet has spot trading enabled), INVALID_REQUEST (missing or invalid field, or a builder fee that cannot be applied), WALLET_NOT_OWNED (a wallet address does not belong to your account), LIQUIDITY_OUT_OF_RANGE (pool liquidity outside requested band), MARKET_CAP_OUT_OF_RANGE (market cap outside requested band), TOKEN_OR_POOL_NOT_FOUND (mint or pool address could not be resolved), NO_ROUTE (no swap route found), INSUFFICIENT_BALANCE (the wallet cannot cover the trade — including when the fees alone exceed the balance).","content":{"application/json":{"schema":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"string","uniqueKey":"error.details.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"b1730614-d95f-4a48-8431-688af3754484":{"description":"Unauthorized. Codes: UNAUTHORIZED (missing, malformed, unknown, or revoked Bearer token).","content":{"application/json":{"schema":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"string","uniqueKey":"error.details.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"9c840ac5-5a24-450b-b765-6bc097675511":{"description":"Too many requests. Code: RATE_LIMITED. The rejected request is not counted against your budget.","headers":{"Retry-After":{"description":"Seconds until the blocking window resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"string","uniqueKey":"error.details.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"b5c20e9f-1f87-483a-aee5-b99270bd82f4":{"description":"Internal server error (code `INTERNAL_ERROR`). The request could not be completed — safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"oneOf":[{"type":"string","uniqueKey":"error.details.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.details.oneOf.1","typeLabel":"null"}],"uniqueKey":"error.details","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":{"code":"\u003cstring>","message":"\u003cstring>","details":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"96605d66-2616-45ca-828f-65cbaa0a1866":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your Bloom API key, e.g. `Authorization: Bearer blm_sol_live_…`. Create one in Bloom Manager → Manage API Keys.","scopes":[]}}},"servers":{"40730cd0-ddbc-429c-9647-3d9a622ca42a":{"url":"https://eu.solana.bloombot.app","description":"Solana — EU"},"509f1201-5d73-4eff-9146-0e56054456c8":{"url":"https://us.solana.bloombot.app","description":"Solana — US"},"e4e3f11f-c319-4095-85f0-6e6e6282e841":{"url":"https://evm.bloombot.app","description":"EVM"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your Bloom API key, e.g. `Authorization: Bearer blm_sol_live_…`. Create one in Bloom Manager → Manage API Keys.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your Bloom API key, e.g. `Authorization: Bearer blm_sol_live_…`. Create one in Bloom Manager → Manage API Keys.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"bloom-885be02a","siteName":"Bloom API","title":"Execute a swap - Bloom API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-05T05:49:53.722Z","originalFileLocation":"api-reference/swap.mdx"},"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=\"system\"}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=\"Buy or sell a token across one or more of your wallets.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Bloom 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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Execute a swap - Bloom API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Buy or sell a token across one or more of your wallets.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Bloom API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://dev.bloombot.app/api-reference/swap\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://bloom-885be02a.mintlify.app/_mintlify/api/og/v2?division=Endpoints\u0026amp;title=Execute+a+swap\u0026amp;description=Buy+or+sell+a+token+across+one+or+more+of+your+wallets.\u0026amp;theme=cc6b1df695cab85bba2ebdfc\u0026amp;signature=ce6a463d879b5798ac78b42dd28ce11de8c07aac107bafa9c192fa3c536232c4\">\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=\"Execute a swap - Bloom API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Buy or sell a token across one or more of your wallets.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://bloom-885be02a.mintlify.app/_mintlify/api/og/v2?division=Endpoints\u0026amp;title=Execute+a+swap\u0026amp;description=Buy+or+sell+a+token+across+one+or+more+of+your+wallets.\u0026amp;theme=cc6b1df695cab85bba2ebdfc\u0026amp;signature=ce6a463d879b5798ac78b42dd28ce11de8c07aac107bafa9c192fa3c536232c4\">\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/bloom-885be02a/hnjvr4Eqr4Kv3dxV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Bloom API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#10b981\">\u003clink data-mint-head rel=\"canonical\" href=\"https://dev.bloombot.app/api-reference/swap\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/swap.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://dev.bloombot.app/#organization\",\"name\":\"Bloom API\",\"url\":\"https://dev.bloombot.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/bloom-885be02a/wtWL9euAd-YmeFaz/logo/light.png?fit=max\u0026auto=format\u0026n=wtWL9euAd-YmeFaz\u0026q=85\u0026s=5ff91d43ce547549db2ad3385945cc42\"}},{\"@type\":\"WebSite\",\"@id\":\"https://dev.bloombot.app#website\",\"name\":\"Bloom API\",\"url\":\"https://dev.bloombot.app\",\"publisher\":{\"@id\":\"https://dev.bloombot.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://dev.bloombot.app/api-reference/swap#webpage\",\"url\":\"https://dev.bloombot.app/api-reference/swap\",\"name\":\"Execute a swap\",\"description\":\"Buy or sell a token across one or more of your wallets.\",\"dateModified\":\"2026-10-05T05:49:53.722Z\",\"isPartOf\":{\"@id\":\"https://dev.bloombot.app#website\"},\"breadcrumb\":{\"@id\":\"https://dev.bloombot.app/api-reference/swap#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://dev.bloombot.app/api-reference/swap#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Bloom API\",\"item\":\"https://dev.bloombot.app\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Execute a swap\",\"item\":\"https://dev.bloombot.app/api-reference/swap\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://dev.bloombot.app/api-reference/swap#apireference\",\"headline\":\"Execute a swap\",\"name\":\"Execute a swap\",\"description\":\"Buy or sell a token across one or more of your wallets.\",\"url\":\"https://dev.bloombot.app/api-reference/swap\",\"mainEntityOfPage\":{\"@id\":\"https://dev.bloombot.app/api-reference/swap#webpage\"},\"dateModified\":\"2026-10-05T05:49:53.722Z\",\"publisher\":{\"@id\":\"https://dev.bloombot.app/#organization\"},\"isPartOf\":{\"@id\":\"https://dev.bloombot.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Bloom API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Bloom API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Endpoints","pages":[{"title":"Execute a swap","openapi":"openapi.yaml POST /api/v1/swap","href":"/api-reference/swap"},{"title":"Deploy a token","description":"Launch a token on a supported launchpad, on Solana or an EVM chain.","openapi":"openapi.yaml POST /api/v1/deploy","href":"/api-reference/deploy"},{"title":"List wallets","openapi":"openapi.yaml GET /api/v1/wallets","href":"/api-reference/wallets"},{"title":"Ping","openapi":"openapi.yaml GET /api/v1/ping","href":"/api-reference/ping"}]}]}]},"basePath":"","title":"Execute a swap - Bloom API","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}