API specification for solvers competing in CoW Protocol batch auctions
The Solver API defines the interface that solvers must implement to participate in CoW Protocol batch auctions. The driver communicates with solvers through this API.
POST /solve — Receive an auction instance and return proposed solutions
The driver sends the current auction (orders, tokens, liquidity sources) and the solver returns one or more settlement solutions ranked by objective value.
Solvers implement this API as an HTTP server. The driver connects to each registered solver’s endpoint during each auction cycle.For a complete guide on building a solver, see the Solver Tutorials.For the auction schema and competition rules, see Auctions.
Last modified on March 12, 2026
Was this page helpful?
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"CoW DAO Documentation","description":"Documentation for CoW Protocol, CoW AMM, and CoW DAO — the most user-protective trading protocol on Ethereum.","colors":{"primary":"#012F7A","light":"#3F80FF","dark":"#012F7A"},"logo":{"light":"https://mintcdn.com/cowswap/eI7SJtCRQaJAMfZg/images/cow-logo.svg?fit=max\u0026auto=format\u0026n=eI7SJtCRQaJAMfZg\u0026q=85\u0026s=ad3ebf82be1922533f9c85c89d92f35b","dark":"https://mintcdn.com/cowswap/eI7SJtCRQaJAMfZg/images/cow-logo-dark.svg?fit=max\u0026auto=format\u0026n=eI7SJtCRQaJAMfZg\u0026q=85\u0026s=ed24d2d3cf4a87aaa8684d19d1f5d415"},"favicon":"/images/cow-dao-favicon.png","background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://github.com/cowprotocol","type":"github"},{"href":"https://discord.com/invite/cowprotocol","type":"discord"}],"primary":{"type":"button","label":"Launch CoW Swap","href":"https://swap.cow.fi"}},"footer":{"socials":{"github":"https://github.com/cowprotocol","x":"https://twitter.com/CoWSwap","discord":"https://discord.com/invite/cowprotocol"},"links":[{"header":"Products","items":[{"label":"CoW Swap","href":"https://swap.cow.fi"},{"label":"CoW Explorer","href":"https://explorer.cow.fi"},{"label":"CoW AMM","href":"https://cow.fi/cow-amm"},{"label":"MEV Blocker","href":"https://mevblocker.io"}]},{"header":"Community","items":[{"label":"Discord","href":"https://discord.com/invite/cowprotocol"},{"label":"Forum","href":"https://forum.cow.fi"},{"label":"Grants","href":"https://grants.cow.fi"},{"label":"Twitter / X","href":"https://twitter.com/CoWSwap"}]},{"header":"Developers","items":[{"label":"GitHub","href":"https://github.com/cowprotocol"},{"label":"SDK","href":"/cow-sdk/quickstart"},{"label":"API Reference","href":"/cow-protocol/reference/apis/orderbook"},{"label":"Contracts","href":"/cow-protocol/reference/contracts/core"}]}]},"search":{"prompt":"Search docs..."},"fonts":{"heading":{"family":"Studio Feixen Sans","weight":700,"source":"fonts/StudioFeixenSans-Bold.woff2","format":"woff2"},"body":{"family":"Studio Feixen Sans","weight":500,"source":"fonts/StudioFeixenSans-Medium.woff2","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","claude","chatgpt","perplexity","cursor","mcp"],"display":"toc"},"interaction":{"drilldown":true},"metadata":{"timestamp":true},"navigation":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/"},{"anchor":"Launch CoW Swap","icon":"arrow-right-arrow-left","href":"https://swap.cow.fi"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"/changelog"},{"anchor":"About These Docs","icon":"book","href":"/about-these-docs"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cowswap","hasAudioNarration":false,"actualSubdomain":"cowswap","customDomains":["docs.cow.bleu.builders"],"gitSource":{"type":"github","owner":"bleu","repo":"cow-docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a21da7f6513352c9695d45f","collectionId":"90e519a4-1f14-48a7-9a45-87233f43d183","schemaVersion":"v2"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a21da7f6513352c9695d45f:success","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Contracts","count":139},{"language":"default","tag":"CoW Protocol","count":86},{"language":"default","tag":"Backend","count":74},{"language":"default","tag":"API Reference","count":72},{"language":"default","tag":"TypeScript SDK","count":41},{"language":"default","tag":"Contracts SDK","count":39},{"language":"default","tag":"Composable CoW","count":36},{"language":"default","tag":"Watch Tower","count":29},{"language":"default","tag":"BFF","count":27},{"language":"default","tag":"Python SDK","count":23}]},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"billing-updated-9-15","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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"#search-bar-entry{min-width:0;width:auto;max-width:16rem}#assistant-entry>span:last-child,#search-bar-entry>span:last-child{white-space:nowrap;flex-shrink:0}#search-bar-entry>span:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}:where(.mdx-content, .api-section, main) :is(\n .overflow-x-auto,\n [data-component-part=\"tabs-list\"],\n [data-component-part=\"code-block-root\"],\n .code-block-background\n){scrollbar-width:thin;scrollbar-color:rgba(1,47,122,.28) transparent}:where(.mdx-content, .api-section, main) :is(\n .overflow-x-auto,\n [data-component-part=\"tabs-list\"],\n [data-component-part=\"code-block-root\"],\n .code-block-background\n)::-webkit-scrollbar{height:10px}:where(.mdx-content, .api-section, main) :is(\n .overflow-x-auto,\n [data-component-part=\"tabs-list\"],\n [data-component-part=\"code-block-root\"],\n .code-block-background\n)::-webkit-scrollbar-track{background:0 0}:where(.mdx-content, .api-section, main) :is(\n .overflow-x-auto,\n [data-component-part=\"tabs-list\"],\n [data-component-part=\"code-block-root\"],\n .code-block-background\n)::-webkit-scrollbar-thumb{background-color:rgba(1,47,122,.28);border:2px solid transparent;border-radius:9999px;background-clip:padding-box}:where(.mdx-content, .api-section, main) :is(\n .overflow-x-auto,\n [data-component-part=\"tabs-list\"],\n [data-component-part=\"code-block-root\"],\n .code-block-background\n)::-webkit-scrollbar-thumb:hover{background-color:rgba(1,47,122,.4)}.dark :where(.mdx-content, .api-section, main) :is(\n .overflow-x-auto,\n [data-component-part=\"tabs-list\"],\n [data-component-part=\"code-block-root\"],\n .code-block-background\n){scrollbar-color:rgba(63,128,255,.42) transparent}.dark :where(.mdx-content, .api-section, main) :is(\n .overflow-x-auto,\n [data-component-part=\"tabs-list\"],\n [data-component-part=\"code-block-root\"],\n .code-block-background\n)::-webkit-scrollbar-thumb{background-color:rgba(63,128,255,.42)}.dark :where(.mdx-content, .api-section, main) :is(\n .overflow-x-auto,\n [data-component-part=\"tabs-list\"],\n [data-component-part=\"code-block-root\"],\n .code-block-background\n)::-webkit-scrollbar-thumb:hover{background-color:rgba(63,128,255,.56)}.dark :where(.mdx-content, .api-section, main) [data-component-part=code-block-root],.dark :where(.mdx-content, .api-section, main) pre.shiki,.dark :where(.mdx-content, .api-section, main) pre.shiki code,.dark :where(.mdx-content, .api-section, main) pre.shiki span{background-color:var(--shiki-dark-bg, #0b0c0e)!important}.dark :where(.mdx-content, .api-section, main) pre.shiki,.dark :where(.mdx-content, .api-section, main) pre.shiki code,.dark :where(.mdx-content, .api-section, main) pre.shiki span{color:var(--shiki-dark, inherit)!important;font-style:var(--shiki-dark-font-style, inherit)!important;font-weight:var(--shiki-dark-font-weight, inherit)!important;text-decoration:var(--shiki-dark-text-decoration, inherit)!important}.inline-resource,.inline-resource__link{display:inline-flex;max-width:100%;min-width:0}.inline-resource{align-items:center;column-gap:.28rem;flex-wrap:nowrap;vertical-align:middle}.inline-resource__link{color:inherit}.inline-resource__value{display:inline-block;line-height:1.45;max-width:100%;overflow-wrap:anywhere;vertical-align:middle;white-space:normal;word-break:break-word}.inline-resource__value--compact{max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inline-resource__actions{align-items:center;column-gap:.2rem;display:inline-flex;flex:0 0 auto}.inline-resource__action{align-items:center;background:0 0;border:0;border-radius:9999px;color:inherit;cursor:pointer;display:inline-flex;height:1.35rem;justify-content:center;opacity:.54;padding:0;text-decoration:none;transition:opacity 160ms ease,background-color 160ms ease,transform 160ms ease,color 160ms ease;width:1.35rem}.inline-resource__action:focus-visible,.inline-resource__action:hover{background:rgba(127,127,127,.08);opacity:1;outline:0}.inline-resource__icon{align-items:center;display:inline-flex;justify-content:center}.inline-resource__action[data-state=copied] .inline-resource__icon--copy,.inline-resource__icon--check{display:none}.inline-resource__action[data-state=copied]{color:#116329;opacity:1}.inline-resource__action[data-state=copied] .inline-resource__icon--check{display:inline-flex}@media (hover:hover) and (pointer:fine){.inline-resource__actions{opacity:0;transform:translateX(-.1rem);transition:opacity 160ms ease,transform 160ms ease}.inline-resource:focus-within .inline-resource__actions,.inline-resource:hover .inline-resource__actions{opacity:1;transform:translateX(0)}}.dark .inline-resource__action[data-state=copied]{color:#9ce89f}"}],"page":{"pagePath":"cow-protocol/reference/apis/solver","slug":"/cow-protocol/reference/apis/solver","pageMetadata":{"title":"Solver API","description":"API specification for solvers competing in CoW Protocol batch auctions","href":"/cow-protocol/reference/apis/solver","hidden":false},"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: \"API specification for solvers competing in CoW Protocol batch auctions\"\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`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The Solver API defines the interface that solvers must implement to participate in CoW Protocol batch auctions. The driver communicates with solvers through this API.`}),`\n`,_jsx(Heading,{level:`2`,id:`endpoints`,children:`Endpoints`}),`\n`,_jsx(Heading,{level:`3`,id:`solve`,children:`Solve`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`POST /solve`}),` — Receive an auction instance and return proposed solutions`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The driver sends the current auction (orders, tokens, liquidity sources) and the solver returns one or more settlement solutions ranked by objective value.`}),`\n`,_jsx(Heading,{level:`3`,id:`notify`,children:`Notify`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`POST /notify`}),` — Receive notification about auction results`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`After a batch is settled, the driver notifies participating solvers about which solution won and why.`}),`\n`,_jsx(Heading,{level:`2`,id:`integration`,children:`Integration`}),`\n`,_jsx(_components.p,{children:`Solvers implement this API as an HTTP server. The driver connects to each registered solver’s endpoint during each auction cycle.`}),`\n`,_jsxs(_components.p,{children:[`For a complete guide on building a solver, see the `,_jsx(_components.a,{href:`/cow-protocol/tutorials/solvers/local_test`,children:`Solver Tutorials`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`For the auction schema and competition rules, see `,_jsx(_components.a,{href:`/cow-protocol/reference/core/auctions`,children:`Auctions`}),`.`]})]})}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":"Solver API","description":"API specification for solvers competing in CoW Protocol batch auctions","href":"/cow-protocol/reference/apis/solver","hidden":false}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Endpoints","slug":"endpoints","depth":2,"children":[{"title":"Solve","slug":"solve","depth":3,"children":[]},{"title":"Notify","slug":"notify","depth":3,"children":[]}]},{"title":"Integration","slug":"integration","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"cowswap","siteName":"CoW DAO Documentation","title":"Solver API - CoW DAO Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-12T22:39:39.643Z","originalFileLocation":"cow-protocol/reference/apis/solver.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=\"API specification for solvers competing in CoW Protocol batch auctions\">\u003cmeta data-mint-head name=\"application-name\" content=\"CoW DAO Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cowswap/nWKu9avl8veqtVHU/_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/cowswap/nWKu9avl8veqtVHU/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cowswap/nWKu9avl8veqtVHU/_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/cowswap/nWKu9avl8veqtVHU/_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/cowswap/nWKu9avl8veqtVHU/_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/cowswap/nWKu9avl8veqtVHU/_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/cowswap/nWKu9avl8veqtVHU/_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/cowswap/nWKu9avl8veqtVHU/_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/cowswap/nWKu9avl8veqtVHU/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Solver API - CoW DAO Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"API specification for solvers competing in CoW Protocol batch auctions\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CoW DAO Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cowswap.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Solver+API\u0026amp;description=API+specification+for+solvers+competing+in+CoW+Protocol+batch+auctions\u0026amp;theme=4da566029b310946c19d5a3d\u0026amp;signature=12da25879873281dc93d6ace8bb0cb24e29ed7196e74bc1c8fb8027ca37cc25a\">\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=\"Solver API - CoW DAO Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"API specification for solvers competing in CoW Protocol batch auctions\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cowswap.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Solver+API\u0026amp;description=API+specification+for+solvers+competing+in+CoW+Protocol+batch+auctions\u0026amp;theme=4da566029b310946c19d5a3d\u0026amp;signature=12da25879873281dc93d6ace8bb0cb24e29ed7196e74bc1c8fb8027ca37cc25a\">\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/cowswap/nWKu9avl8veqtVHU/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CoW DAO Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#012F7A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/cow-protocol/reference/apis/solver.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cow.bleu.builders/#organization\",\"name\":\"CoW DAO Documentation\",\"url\":\"https://docs.cow.bleu.builders\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cowswap/eI7SJtCRQaJAMfZg/images/cow-logo.svg?fit=max\u0026auto=format\u0026n=eI7SJtCRQaJAMfZg\u0026q=85\u0026s=ad3ebf82be1922533f9c85c89d92f35b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cow.bleu.builders#website\",\"name\":\"CoW DAO Documentation\",\"url\":\"https://docs.cow.bleu.builders\",\"publisher\":{\"@id\":\"https://docs.cow.bleu.builders/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver#webpage\",\"url\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver\",\"name\":\"Solver API\",\"description\":\"API specification for solvers competing in CoW Protocol batch auctions\",\"dateModified\":\"2026-03-12T22:39:39.643Z\",\"isPartOf\":{\"@id\":\"https://docs.cow.bleu.builders#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/orderbook\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Solver API\",\"item\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver#article\",\"headline\":\"Solver API\",\"name\":\"Solver API\",\"description\":\"API specification for solvers competing in CoW Protocol batch auctions\",\"url\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cow.bleu.builders/cow-protocol/reference/apis/solver#webpage\"},\"dateModified\":\"2026-03-12T22:39:39.643Z\",\"publisher\":{\"@id\":\"https://docs.cow.bleu.builders/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cow.bleu.builders#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CoW DAO Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CoW DAO Documentation","nav":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/"},{"anchor":"Launch CoW Swap","icon":"arrow-right-arrow-left","href":"https://swap.cow.fi"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"/changelog"},{"anchor":"About These Docs","icon":"book","href":"/about-these-docs"}]},"tabs":[{"tab":"CoW Swap","icon":"arrow-right-arrow-left","pages":[{"title":"CoW Swap","href":"/cow-swap/overview"}]},{"tab":"CoW Protocol","icon":"cow","groups":[{"group":"Overview","icon":"book-open","pages":[{"title":"What is CoW Protocol?","href":"/cow-protocol/overview"},{"title":"Intents","href":"/cow-protocol/explanation/introduction/intents"},{"title":"Solvers","href":"/cow-protocol/explanation/introduction/solvers"},{"title":"Fair Combinatorial Batch Auction","href":"/cow-protocol/explanation/introduction/fair-combinatorial-auction"},{"title":"Integrate CoW Protocol","href":"/cow-protocol/explanation/integration-overview"},{"title":"Building on CoW Protocol","href":"/cow-protocol/explanation/building"}]},{"group":"How It Works","icon":"circle-info","pages":[{"title":"Flow of an order","href":"/cow-protocol/explanation/how-it-works/flow-of-an-order"},{"title":"How Intents Are Formed","href":"/cow-protocol/explanation/how-it-works/how-intents-are-formed"},{"title":"Quote Selection","href":"/cow-protocol/explanation/how-it-works/quote-selection"},{"title":"Coincidence of Wants","href":"/cow-protocol/explanation/how-it-works/coincidence-of-wants"},{"title":"Fee Model","href":"/cow-protocol/explanation/fee-model"}]},{"group":"Benefits","icon":"shield-check","pages":[{"title":"MEV protection","href":"/cow-protocol/explanation/benefits/mev-protection"},{"title":"Price improvement","href":"/cow-protocol/explanation/benefits/price-improvement"},{"title":"Trade any intent","href":"/cow-protocol/explanation/benefits/trade-any-intent"},{"title":"Additional benefits","href":"/cow-protocol/explanation/benefits/additional-benefits"}]},{"group":"Order Types","icon":"list-check","pages":[{"title":"Market orders","href":"/cow-protocol/explanation/order-types/market-orders"},{"title":"Limit orders","href":"/cow-protocol/explanation/order-types/limit-orders"},{"title":"TWAP orders","href":"/cow-protocol/explanation/order-types/twap-orders"},{"title":"Programmatic orders","href":"/cow-protocol/explanation/order-types/programmatic-orders"},{"title":"CoW Hooks","href":"/cow-protocol/explanation/order-types/cow-hooks"},{"title":"Milkman orders","href":"/cow-protocol/explanation/order-types/milkman-orders"},{"title":"Wrappers","href":"/cow-protocol/explanation/order-types/wrappers"},{"title":"Repay debt with collateral using flash loans","href":"/cow-protocol/explanation/order-types/pay-debt-flash-loans"},{"title":"Liquidations","href":"/cow-protocol/explanation/order-types/liquidations"}]},{"group":"Flash Loans","icon":"bolt","pages":[{"title":"What is a flash loan?","href":"/cow-protocol/explanation/flash-loans/Introduction"},{"title":"How does it work?","href":"/cow-protocol/explanation/flash-loans/how-it-works"},{"title":"How to specify an order with flash loan","href":"/cow-protocol/explanation/flash-loans/integrators"}]},{"group":"CoW AMM","icon":"droplet","pages":[{"title":"The Problem of LVR (Loss-versus-rebalancing)","href":"/cow-amm/explanation/the-problem-of-lvr"},{"title":"How CoW AMMs Work","href":"/cow-amm/explanation/how-cow-amms-work"},{"title":"CoW AMM Deployer","href":"/cow-protocol/tutorials/cow-amm-deployer"}]},{"group":"CoW Explorer","icon":"magnifying-glass","pages":[{"title":"Viewing orders","href":"/cow-protocol/howto/cow-explorer"},{"group":"Tutorials","pages":[{"title":"By order","href":"/cow-protocol/tutorials/cow-explorer/order"},{"title":"By batch auction","href":"/cow-protocol/tutorials/cow-explorer/batch-auction"},{"title":"By user address","href":"/cow-protocol/tutorials/cow-explorer/address"}]}]},{"group":"Integration","icon":"wrench","pages":[{"title":"API Integration Guide","href":"/cow-protocol/howto/integrate/api"},{"title":"Testing Your Integration","href":"/cow-protocol/howto/integrate/testing"},{"group":"Quickstarts","pages":[{"title":"Quickstart: Raw API (cURL)","href":"/cow-protocol/tutorials/quickstart-curl"},{"title":"Quickstart: Python","href":"/cow-protocol/tutorials/quickstart-python"},{"title":"Token Approvals \u0026 GPv2VaultRelayer","href":"/cow-protocol/tutorials/token-approvals"}]},{"title":"AI Agent Orders","sidebarTitle":"AI Agent Orders","href":"/cow-protocol/tutorials/agent-orders"}]},{"group":"Architecture","icon":"sitemap","pages":[{"title":"Arbitrating auctions","href":"/cow-protocol/explanation/architecture/overview"},{"title":"Autopilot","href":"/cow-protocol/explanation/architecture/autopilot"},{"title":"Order book","href":"/cow-protocol/explanation/architecture/orderbook"},{"title":"Driver","href":"/cow-protocol/explanation/architecture/driver"},{"title":"Solver Engine","href":"/cow-protocol/explanation/architecture/solver-engine"}]},{"group":"API Reference","icon":"square-terminal","pages":[{"title":"Orderbook API","href":"/cow-protocol/reference/apis/orderbook"},{"group":"Orderbook Endpoints","pages":[{"group":"Quotes","pages":[{"title":"Quote a price and fee for the specified order parameters.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml post /api/v1/quote","href":"/api-reference/quote-a-price-and-fee-for-the-specified-order-parameters"}]},{"group":"Orders","pages":[{"title":"Create a new order.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml post /api/v1/orders","href":"/api-reference/create-a-new-order"},{"title":"Cancel multiple orders by marking them invalid with a timestamp.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml delete /api/v1/orders","href":"/api-reference/cancel-multiple-orders-by-marking-them-invalid-with-a-timestamp"},{"title":"Get existing orders from the list of UIDs.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml post /api/v1/orders/by_uids","href":"/api-reference/get-existing-orders-from-the-list-of-uids"},{"title":"Get existing order from UID.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/orders/{UID}","href":"/api-reference/get-existing-order-from-uid"},{"title":"Cancel an order by marking it invalid with a timestamp.","deprecated":true,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml delete /api/v1/orders/{UID}","href":"/api-reference/cancel-an-order-by-marking-it-invalid-with-a-timestamp"},{"title":"Get the status of an order.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/orders/{UID}/status","href":"/api-reference/get-the-status-of-an-order"},{"title":"Get orders of one user paginated.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/account/{owner}/orders","href":"/api-reference/get-orders-of-one-user-paginated"},{"title":"Get orders by settlement transaction hash.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/transactions/{txHash}/orders","href":"/api-reference/get-orders-by-settlement-transaction-hash"}]},{"group":"Trades","pages":[{"title":"Get existing trades (paginated).","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v2/trades","href":"/api-reference/get-existing-trades-paginated"},{"title":"Get existing trades (unpaginated).","deprecated":true,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/trades","href":"/api-reference/get-existing-trades-unpaginated"}]},{"group":"Auctions","pages":[{"title":"Get the current batch auction.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/auction","href":"/api-reference/get-the-current-batch-auction"},{"title":"Get information about a solver competition.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v2/solver_competition/{auction_id}","href":"/api-reference/get-information-about-a-solver-competition"},{"title":"Get information about solver competition.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v2/solver_competition/by_tx_hash/{tx_hash}","href":"/api-reference/get-information-about-solver-competition"},{"title":"Get information about the most recent solver competition.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v2/solver_competition/latest","href":"/api-reference/get-information-about-the-most-recent-solver-competition"},{"title":"Get information about a solver competition.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v2/solver_competition/{auction_id}","href":"/api-reference/get-information-about-a-solver-competition"},{"title":"Get information about solver competition.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v2/solver_competition/by_tx_hash/{tx_hash}","href":"/api-reference/get-information-about-solver-competition"},{"title":"Get information about the most recent solver competition.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v2/solver_competition/latest","href":"/api-reference/get-information-about-the-most-recent-solver-competition"}]},{"group":"Utilities","pages":[{"title":"Get the API's current deployed version.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/version","href":"/api-reference/get-the-apis-current-deployed-version"},{"title":"Get native price for the given token.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/token/{token}/native_price","href":"/api-reference/get-native-price-for-the-given-token"},{"title":"Get the full `appData` from contract `appDataHash`.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/app_data/{app_data_hash}","href":"/api-reference/get-the-full-`appdata`-from-contract-`appdatahash`"},{"title":"Registers a full `appData` so it can be referenced by `appDataHash`.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml put /api/v1/app_data/{app_data_hash}","href":"/api-reference/registers-a-full-`appdata`-so-it-can-be-referenced-by-`appdatahash`"},{"title":"Registers a full `appData` and returns `appDataHash`.","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml put /api/v1/app_data","href":"/api-reference/registers-a-full-`appdata`-and-returns-`appdatahash`"},{"title":"Get the total surplus earned by the user. [UNSTABLE]","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/users/{address}/total_surplus","href":"/api-reference/get-the-total-surplus-earned-by-the-user-[unstable]"},{"title":"Debug an order's lifecycle.","description":"Returns a comprehensive debug report for the given order, including order details, lifecycle events, auction participation, proposed solutions, executions, trades, and settlement attempts.\n","deprecated":null,"version":null,"openapi":"cow-protocol/reference/apis/openapi/orderbook.yml get /api/v1/debug/order/{uid}","href":"/api-reference/debug-an-orders-lifecycle"}]}]},{"title":"Solver API","href":"/cow-protocol/reference/apis/solver"},{"title":"Driver API","description":"API specification for the CoW Protocol driver component that orchestrates solver competition","href":"/cow-protocol/reference/apis/driver"}]},{"group":"Core Reference","icon":"file-code","pages":[{"title":"Definitions","href":"/cow-protocol/reference/core/definitions"},{"title":"Supported tokens","href":"/cow-protocol/reference/core/tokens"},{"title":"Signing schemes","href":"/cow-protocol/reference/core/signing-schemes"},{"title":"Error Reference","href":"/cow-protocol/reference/core/error-reference"},{"title":"Rate Limits \u0026 Quotas","href":"/cow-protocol/reference/core/rate-limits"},{"group":"Intents","pages":[{"title":"Intents","href":"/cow-protocol/reference/core/intents"},{"title":"Application specific data","href":"/cow-protocol/reference/core/intents/app-data"},{"title":"Hooks","href":"/cow-protocol/reference/core/intents/hooks"}]}]},{"group":"Auctions","icon":"gavel","expanded":false,"pages":[{"title":"Auction mechanism","href":"/cow-protocol/reference/core/auctions"},{"title":"What is solving? A mathematical, high-level description","href":"/cow-protocol/reference/core/auctions/the-problem"},{"title":"Schemas","href":"/cow-protocol/reference/core/auctions/schema"},{"title":"Solver competition rules","href":"/cow-protocol/reference/core/auctions/competition-rules"},{"title":"EBBO violations: details","href":"/cow-protocol/reference/core/auctions/ebbo-rules"},{"title":"Solver rewards","href":"/cow-protocol/reference/core/auctions/rewards"},{"title":"Solver competition accounting process","href":"/cow-protocol/reference/core/auctions/accounting"},{"title":"Setting up a bonding pool","href":"/cow-protocol/reference/core/auctions/bonding-pools"}]}]},{"tab":"Contracts","icon":"file-contract","pages":[{"title":"Contracts","href":"/cow-protocol/reference/contracts/core"}]},{"tab":"TypeScript SDK","icon":"code","pages":[{"title":"TypeScript SDK","href":"/cow-sdk/introduction"}]},{"tab":"Python SDK","icon":"python","pages":[{"title":"Python SDK","href":"/cow-py/introduction"}]},{"tab":"Solvers","icon":"gears","pages":[{"title":"Solvers","href":"/cow-protocol/tutorials/solvers/local_test"}]},{"tab":"Backend","icon":"server","pages":[{"title":"Backend","href":"/bff/introduction"}]},{"tab":"Governance","icon":"landmark","pages":[{"title":"Governance","href":"/governance"}]}]},"title":"Solver API - CoW DAO Documentation","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}