---
title: "Sell Position"
method: POST
path: "/workflows/polymarket/sellPosition"
tags: ["Polymarket"]
---

# Sell Position

`POST /workflows/polymarket/sellPosition`

Sells an existing position in a Polymarket market. This endpoint allows users to exit their positions by selling their outcome tokens using market orders (FOK/FAK).

Proceeds default to the caller's `evmEoa`. To deliver them to a different wallet or token, set `dstWalletAddress` and/or `dstToken`; when `dstWalletAddress` is present the request must be signed — see the [Polymarket Signing Guide](../polymarket-signing).

> ⚠️ **Upcoming change:** `signatureByEvmEoa` + `expiration` will soon be required on every `sellPosition` request, regardless of whether `dstWalletAddress` is set. The signature is currently optional when `dstWalletAddress` is omitted, but partners should plan to sign every call ahead of the cutover.

## Request body

- object
  - `evmEoa` string, required — EVM address (0x prefix + 40 hex characters)
  - `proxyWallet` string — EVM address (0x prefix + 40 hex characters)
  - `side` 'SELL', required — Order side - must be SELL
  - `tokenID` string, required — Polymarket CLOB token ID of the position to sell
  - `orderType` 'FOK' | 'FAK', required — Order type - Fill-Or-Kill (FOK) or Fill-And-Kill (FAK) for market orders
  - `tickSize` string, required — Tick size from the market details (e.g., '0.01')
  - `negRisk` boolean, required — Negative risk flag from the market details
  - `amount` number, required — Amount of tokens to sell (must be a positive number)
  - `feeRateBps` number — Fee rate in basis points (optional, defaults to 0)
  - `slippage` number — Slippage tolerance in basis points (optional, defaults to 0)
  - `dstToken` PolymarketDstToken — Destination token used by Polymarket workflow endpoints. When provided, proceeds are swapped into this token before delivery.
    - `address` string, required — EVM address (0x prefix + 40 hex characters)
    - `chainId` number, required — Destination chain ID. See the [chain list](/resources/chain-list).
  - `dstWalletAddress` string — EVM address (0x prefix + 40 hex characters)
  - `expiration` integer — Unix timestamp (seconds) when `signatureByEvmEoa` expires. Must be in the future and ≤ 300s ahead.
  - `signatureByEvmEoa` string — Hex string with 0x prefix

## Response `200`

Position sold successfully

- object
  - `txId` string — Transaction ID
  - `orderResponse` object
    - `success` boolean — Whether the sell order was successful
    - `errorMsg` string — Error message if the order failed (empty string if successful)
    - `orderID` string — Unique order ID
    - `transactionsHashes` string[] — Array of transaction hashes
    - `status` string — Order status (e.g., 'matched')
    - `takingAmount` string — Amount of USDC received
    - `makingAmount` string — Amount of tokens sold

## Other responses

- `400` — Bad request due to missing or invalid parameters
- `401` — Unauthorized - Invalid or missing API key
- `500` — Internal server error

---

[API](https://skmtc.dev/swaps/apis/prediction-market-data-api.md) · [All operations](https://skmtc.dev/swaps/apis/prediction-market-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/swaps/prediction-market-data-api/revisions/03e917d60cb7/schema)
