CoW Swap · Schema

SimulationRequest

Request body for simulating an arbitrary order without it being stored in the orderbook.

DeFiEthereumSwapLiquidityGovernanceAMM

Properties

Name Type Description
sellToken object The token being sold.
buyToken object The token being bought.
sellAmount object Amount of sell token (hex- or decimal-encoded uint256). Must be greater than zero.
buyAmount object Amount of buy token (hex- or decimal-encoded uint256).
kind object Whether this is a sell or buy order.
owner object The address of the order owner.
receiver object The address that will receive the buy tokens. Defaults to the owner if omitted.
sellTokenBalance object Where the sell token should be drawn from.
buyTokenBalance object Where the buy token should be transferred to.
appData string Full app data JSON string.
blockNumber integernull
signingScheme object
signature object
feeAmount object The fee amount in sell token atoms. Expected to be 0; only present because it must be part of the signed order data.
validTo integer Unix timestamp (`uint32`) until which the order is valid.
partiallyFillable boolean Whether the order can be partially filled or must be filled all at once.
View JSON Schema on GitHub

JSON Schema

cow-protocol-simulation-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-simulation-request-schema.json",
  "title": "SimulationRequest",
  "description": "Request body for simulating an arbitrary order without it being stored in the orderbook.\n",
  "x-generated": "2026-10-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/orderbook.yml#/components/schemas/SimulationRequest",
  "type": "object",
  "properties": {
    "sellToken": {
      "description": "The token being sold.",
      "allOf": [
        {
          "$ref": "#/$defs/Address"
        }
      ]
    },
    "buyToken": {
      "description": "The token being bought.",
      "allOf": [
        {
          "$ref": "#/$defs/Address"
        }
      ]
    },
    "sellAmount": {
      "description": "Amount of sell token (hex- or decimal-encoded uint256). Must be greater than zero.\n",
      "allOf": [
        {
          "$ref": "#/$defs/TokenAmount"
        }
      ]
    },
    "buyAmount": {
      "description": "Amount of buy token (hex- or decimal-encoded uint256).",
      "allOf": [
        {
          "$ref": "#/$defs/TokenAmount"
        }
      ]
    },
    "kind": {
      "description": "Whether this is a sell or buy order.",
      "allOf": [
        {
          "$ref": "#/$defs/OrderKind"
        }
      ]
    },
    "owner": {
      "description": "The address of the order owner.",
      "allOf": [
        {
          "$ref": "#/$defs/Address"
        }
      ]
    },
    "receiver": {
      "description": "The address that will receive the buy tokens. Defaults to the owner if omitted.\n",
      "allOf": [
        {
          "$ref": "#/$defs/Address"
        }
      ]
    },
    "sellTokenBalance": {
      "deprecated": true,
      "description": "Where the sell token should be drawn from.",
      "allOf": [
        {
          "$ref": "#/$defs/SellTokenSource"
        }
      ]
    },
    "buyTokenBalance": {
      "deprecated": true,
      "description": "Where the buy token should be transferred to.",
      "allOf": [
        {
          "$ref": "#/$defs/BuyTokenDestination"
        }
      ]
    },
    "appData": {
      "description": "Full app data JSON string.\n",
      "type": "string"
    },
    "blockNumber": {
      "type": [
        "integer",
        "null"
      ]
    },
    "signingScheme": {
      "$ref": "#/$defs/SigningScheme"
    },
    "signature": {
      "$ref": "#/$defs/Signature"
    },
    "feeAmount": {
      "description": "The fee amount in sell token atoms. Expected to be 0; only present because it must be part of the signed order data.\n",
      "allOf": [
        {
          "$ref": "#/$defs/TokenAmount"
        }
      ]
    },
    "validTo": {
      "description": "Unix timestamp (`uint32`) until which the order is valid.",
      "type": "integer"
    },
    "partiallyFillable": {
      "description": "Whether the order can be partially filled or must be filled all at once.",
      "type": "boolean"
    }
  },
  "required": [
    "sellToken",
    "buyToken",
    "sellAmount",
    "buyAmount",
    "kind",
    "owner",
    "signingScheme",
    "signature",
    "feeAmount",
    "validTo",
    "partiallyFillable",
    "appData"
  ],
  "$defs": {
    "Address": {
      "description": "20 byte Ethereum address encoded as a hex with `0x` prefix.",
      "type": "string"
    },
    "BuyTokenDestination": {
      "description": "Where should the `buyToken` be transferred to?\n\n**Only `erc20` is accepted for new orders.** The `internal` (Balancer Vault)\ndestination is rejected at creation with `UnsupportedBuyTokenDestination`.\nThe value remains in the enum because it may still appear on historical\norders returned by the API.",
      "type": "string",
      "enum": [
        "erc20",
        "internal"
      ]
    },
    "EcdsaSignature": {
      "description": "65 bytes encoded as hex with `0x` prefix. `r || s || v` from the spec.",
      "type": "string"
    },
    "OrderKind": {
      "description": "Is this order a buy or sell?",
      "type": "string",
      "enum": [
        "buy",
        "sell"
      ]
    },
    "PreSignature": {
      "description": "Empty signature bytes. Used for \"presign\" signatures.",
      "type": "string"
    },
    "SellTokenSource": {
      "description": "Where should the `sellToken` be drawn from?\n\n**Only `erc20` is accepted for new orders.** The `internal` and `external`\n(Balancer Vault) sources are deprecated: orders using them are rejected at\ncreation with `UnsupportedSellTokenSource`. The values remain in the enum\nbecause they may still appear on historical orders returned by the API.",
      "type": "string",
      "enum": [
        "erc20",
        "internal",
        "external"
      ]
    },
    "Signature": {
      "description": "A signature.",
      "oneOf": [
        {
          "$ref": "#/$defs/EcdsaSignature"
        },
        {
          "$ref": "#/$defs/PreSignature"
        }
      ]
    },
    "SigningScheme": {
      "description": "How was the order signed?",
      "type": "string",
      "enum": [
        "eip712",
        "ethsign",
        "presign",
        "eip1271"
      ]
    },
    "TokenAmount": {
      "description": "Amount of a token. `uint256` encoded in decimal.",
      "type": "string"
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/cow-protocol-simulation-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.