CoW Swap Settle Fast Path API

The Settle Fast Path API from CoW Swap — 1 operation(s) for settle fast path.

Business capability
DeFi Protocols AE-240.60

Operations 1

POST /settle_fast_path Settle fast path #

Specifications

Schemas & Data

📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-order-creation-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-trade-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-order-quote-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-simulation-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-solver-competition-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-order-quote-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-solve-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-settle-fast-path-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-solve-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-settle-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-reveal-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-quote-response-kind-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-solution-schema.json
📊
JSONSchema
https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-auction-schema.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cow-protocol:cow-protocol-settle-fast-path-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cow-protocol-settle-fast-path-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Solver Settle Fast Path API
  description: The API implemented by Solvers to be queried by Autopilot.
  version: 0.0.1
tags:
- name: Settle Fast Path
paths:
  /settle_fast_path:
    post:
      operationId: settleFastPath
      description: 'Execute a quote solution on chain, outside of any auction.


        The solution is the one this Solver produced for the identified quote

        and the driver cached at quote time. It is re-encoded against the real

        signed order before being submitted, so the fill happens at exactly the

        order''s signed limit.


        By accepting the request the Solver promises to execute the solution on

        chain immediately.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettleFastPathRequest'
      responses:
        '200':
          description: Execution accepted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Settle Fast Path
      summary: Settle fast path
      x-summary-source: derived
components:
  schemas:
    PriceImprovement:
      description: 'A cut from the price improvement over the best quote is taken as a protocol fee.

        '
      type: object
      properties:
        kind:
          type: string
          enum:
          - priceImprovement
        maxVolumeFactor:
          description: Never charge more than that percentage of the order volume.
          type: number
          example: 0.01
        factor:
          description: The factor of the user surplus that the protocol will request from the solver after settling the order
          type: number
          example: 0.5
        quote:
          $ref: '#/components/schemas/Quote'
    Address:
      description: 20 byte Ethereum address encoded as a hex with `0x` prefix.
      type: string
      example: '0x6810e776880c02933d47db1b9fc05908e5386b96'
    SettleFastPathRequest:
      description: 'Request to the `/settle_fast_path` endpoint: settle the quote solution cached under `quoteId`, re-encoded against the real signed order, outside of a competition.

        '
      type: object
      required:
      - quoteId
      - order
      - limitPrices
      - submissionDeadlineLatestBlock
      - auctionId
      properties:
        quoteId:
          description: Id of the quote whose cached solution should be settled.
          type: integer
        order:
          description: The real signed order the cached solution is re-encoded against.
          allOf:
          - $ref: '#/components/schemas/Order'
        limitPrices:
          description: 'The sell/buy amounts defining the exact price at which the order must be filled.

            '
          type: object
          required:
          - sell
          - buy
          properties:
            sell:
              $ref: '#/components/schemas/TokenAmount'
            buy:
              $ref: '#/components/schemas/TokenAmount'
        submissionDeadlineLatestBlock:
          description: The last block number in which the solution TX can be included.
          type: integer
          example: 12345
        auctionId:
          description: 'Auction ID allocated for this settlement. The quote was solved outside of any auction, but its settlement is still attributed to one.

            '
          type: integer
          example: 123
    FeePolicy:
      description: 'A fee policy that applies to an order.

        The solver should make sure the fee policy is applied when computing their solution.

        '
      type: object
      oneOf:
      - $ref: '#/components/schemas/SurplusFee'
      - $ref: '#/components/schemas/PriceImprovement'
      - $ref: '#/components/schemas/VolumeFee'
    SurplusFee:
      description: 'If the order receives more than limit price, pay the protocol a factor of the difference.

        '
      type: object
      properties:
        kind:
          type: string
          enum:
          - surplus
        maxVolumeFactor:
          description: Never charge more than that percentage of the order volume.
          type: number
          example: 0.1
        factor:
          description: The factor of the user surplus that the protocol will request from the solver after settling the order
          type: number
          example: 0.5
    Interaction:
      type: object
      properties:
        target:
          $ref: '#/components/schemas/Address'
        value:
          $ref: '#/components/schemas/TokenAmount'
        callData:
          description: Hex encoded bytes with `0x` prefix.
          type: string
    TokenAmount:
      description: Amount of an ERC20 token. 256 bit unsigned integer in decimal notation.
      type: string
      example: '1234567890'
    VolumeFee:
      type: object
      properties:
        kind:
          type: string
          enum:
          - volume
        factor:
          description: The fraction of the order's volume that the protocol will request from the solver after settling the order.
          type: number
          example: 0.5
    Quote:
      type: object
      properties:
        sellAmount:
          $ref: '#/components/schemas/TokenAmount'
        buyAmount:
          $ref: '#/components/schemas/TokenAmount'
        fee:
          $ref: '#/components/schemas/TokenAmount'
        solver:
          $ref: '#/components/schemas/Address'
    Order:
      description: 'Order information like what is returned by the Orderbook apis.

        '
      type: object
      properties:
        uid:
          $ref: '#/components/schemas/OrderUID'
        sellToken:
          allOf:
          - description: Token being sold
          - $ref: '#/components/schemas/Address'
        buyToken:
          allOf:
          - description: Token being bought
          - $ref: '#/components/schemas/Address'
        sellAmount:
          allOf:
          - description: Amount to be sold
          - $ref: '#/components/schemas/TokenAmount'
        buyAmount:
          allOf:
          - description: Amount to be bought
          - $ref: '#/components/schemas/TokenAmount'
        created:
          description: Creation time of the order. Denominated in epoch seconds.
          type: string
          example: '123456'
        validTo:
          description: The time until which the order is valid.
          type: integer
        kind:
          type: string
          enum:
          - buy
          - sell
        receiver:
          allOf:
          - description: The address that should receive the bought tokens.
          - $ref: '#/components/schemas/Address'
        owner:
          allOf:
          - description: The address that created the order.
          - $ref: '#/components/schemas/Address'
        partiallyFillable:
          description: 'Whether the order can be partially filled.


            If this is false then the solver must fill the entire order or not

            at all.'
          type: boolean
        executed:
          allOf:
          - description: The amount that has already been filled.
          - $ref: '#/components/schemas/TokenAmount'
        preInteractions:
          description: Interactions that must be executed before the order can be filled.
          type: array
          items:
            $ref: '#/components/schemas/Interaction'
        postInteractions:
          description: Interactions that must be executed after the order has been filled.
          type: array
          items:
            $ref: '#/components/schemas/Interaction'
        sellTokenBalance:
          deprecated: true
          description: 'In practice only `erc20` occurs; `internal`/`external` (Balancer Vault)  are deprecated and rejected at order creation. Retained for compatibility.

            '
          type: string
          enum:
          - erc20
          - internal
          - external
        buyTokenBalance:
          deprecated: true
          description: 'In practice only `erc20` occurs; `internal` (Balancer Vault) is rejected at order creation. Retained for compatibility.

            '
          type: string
          enum:
          - erc20
          - internal
        class:
          deprecated: true
          description: 'Every order is a `limit` order. The field is ignored by the driver, retained for compatibility and will be removed.

            '
          type: string
          enum:
          - market
          - limit
          default: limit
        appData:
          description: 32 bytes encoded as hex with `0x` prefix.
          type: string
        signingScheme:
          type: string
          enum:
          - eip712
          - ethsign
          - presign
          - eip1271
        signature:
          description: Hex encoded bytes with `0x` prefix.
          type: string
        protocolFees:
          description: 'Any protocol fee policies that apply to the order.


            The solver should make sure the fee policy is applied when computing

            their solution.'
          type: array
          items:
            $ref: '#/components/schemas/FeePolicy'
        quote:
          allOf:
          - description: A winning quote.
          - $ref: '#/components/schemas/Quote'
        penaltyCapNative:
          allOf:
          - description: 'Cap on the penalty a solver can incur for winning this order

              but failing to execute it, denominated in the native token.'
          - $ref: '#/components/schemas/TokenAmount'
      required:
      - uid
      - sellToken
      - buyToken
      - sellAmount
      - buyAmount
      - created
      - validTo
      - kind
      - receiver
      - owner
      - partiallyFillable
      - executed
      - preInteractions
      - postInteractions
      - sellTokenBalance
      - buyTokenBalance
      - appData
      - signature
      - protocolFees
    OrderUID:
      description: 'Unique identifier for the order: 56 bytes encoded as hex with `0x`

        prefix.


        Bytes 0 to 32 are the order digest, bytes 30 to 52 the owner address and

        bytes 52..56 valid to,'
      type: string
      example: '0x30cff40d9f60caa68a37f0ee73253ad6ad72b45580c945fe3ab67596476937197854163b1b0d24e77dca702b97b5cc33e0f83dcb626122a6'
  responses:
    InternalServerError:
      description: 'Something went wrong when handling the request.

        Body potentially contains extra information.'
      content:
        text/plain:
          schema:
            type: string
    BadRequest:
      description: 'There is something wrong with the request.

        Body potentially contains extra information.'
      content:
        text/plain:
          schema:
            type: string