ToolAssay

Plexa /v1/quote — executable swap quote

Plexa /v1/quote — executable swap quote: the realizable fill price at your trade size, not a mid/spot price feed. Returns price impact (bps), worst-case slippage, depth and the per-leg route across Base/Polygon/Arbitrum liquidity, from canonical on-chain quoters. Call it before a swap to see what the fill actually costs. Informational data, not financial advice.

Not tested: has real-world effectsour last check, 2026-09-24
0 of 0checks answered this week
n/amedian answer time
$0.02listed price per call
n/aprice it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://api.getplexa.com/v1/quote

CategoryMarket data
Provider hostapi.getplexa.com
Networkseip155:137, eip155:42161, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days73 from 3 payers (the provider's figure, not ours)

Our checks, last 30 days

We never call tools that send, buy, move money or file anything, not even without paying.

Example input (from the provider)

{
  "body": {
    "chain": "base",
    "sizeUSD": "5000",
    "tokenIn": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "tokenOut": "0x4200000000000000000000000000000000000006"
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "anyOf": [
            {
              "required": [
                "sizeIn"
              ]
            },
            {
              "required": [
                "sizeUSD"
              ]
            }
          ],
          "examples": [
            {
              "chain": "base",
              "sizeUSD": "5000",
              "tokenIn": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
              "tokenOut": "0x4200000000000000000000000000000000000006"
            }
          ],
          "properties": {
            "chain": {
              "description": "Optional, default \"base\". One of: base | polygon | matic | arbitrum | arbitrum-one | arb | eip155:8453 | eip155:137 | eip155:42161 \u2014 case-sensitive (see `enum`). This is the chain the QUOTE is computed on; the networks you may PAY on (including Solana) are a separate list in `accepts[]`.",
              "enum": [
                "base",
                "polygon",
                "matic",
                "arbitrum",
                "arbitrum-one",
                "arb",
                "eip155:8453",
                "eip155:137",
                "eip155:42161"
              ],
              "type": "string"
            },
            "sizeIn": {
              "description": "Trade size as a human amount of tokenIn, e.g. \"1.5\" for 1.5 WETH. A STRING, not a number. At least one of sizeIn / sizeUSD is required; if BOTH are sent, sizeUSD wins and sizeIn is ignored.",
              "maxLength": 78,
              "pattern": "^(?:0\\.\\d*[1-9]\\d*|[1-9]\\d*(?:\\.\\d+)?)$",
              "type": "string"
            },
            "sizeUSD": {
              "description": "Trade size as a USD notional, e.g. \"5000\". A STRING, not a number; positive, no thousands separator (\"5,000\" is rejected) and no exponent (\"5e3\" is rejected) \u2014 see `pattern`. At least one of sizeIn / sizeUSD is required; if BOTH are sent, sizeUSD wins.",
              "maxLength": 78,
              "pattern": "^(?:0\\.\\d*[1-9]\\d*|[1-9]\\d*(?:\\.\\d+)?)$",
              "type": "string"
            },
            "tokenIn": {
              "description": "ERC-20 being SOLD. 0x + 40 hex (see `pattern`) \u2014 a symbol like \"USDC\" is rejected with 400.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "tokenOut": {
              "description": "ERC-20 being BOUGHT. 0x + 40 hex (see `pattern`) \u2014 a symbol like \"WETH\" is rejected with 400.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            }
          },
          "required": [
            "tokenIn",
            "tokenOut"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "confidence": {
              "description": "Engine confidence: high | medium | low",
              "type": "string"
            },
            "depthAtSize": {
              "description": "Realizable output at the requested size, in human units of tokenOut (NOT USD)",
              "type": "number"
            },
            "executablePrice": {
              "description": "REALIZABLE fill price for the full requested size \u2014 the price the swap actually executes at after price impact, NOT a mid/spot price feed. This is Plexa's core difference from a price oracle. Units: tokenOut PER tokenIn (for USDC\u2192WETH it is WETH per 1 USDC, a small number \u2014 not the reciprocal).",
              "type": "number"
            },
            "priceImpactBps": {
              "description": "Price impact at this size, in basis points. Null when no defensible mid exists (P16) \u2014 impact is derived from the mid.",
              "type": [
                "number",
                "null"
              ]
            },
            "route": {
              "description": "Per-leg execution route (dex / pool / fee tier)",
              "type": "object"
            },
            "worstCaseSlippageBps": {
              "description": "Worst-case slippage, in basis points. Null when no defensible mid exists (P16).",
              "type": [
                "number",
                "null"
              ]
            }
          },
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON