---
title: "Redeem Position"
method: POST
path: "/workflows/polymarket/redeemPosition"
tags: ["Polymarket"]
---

# Redeem Position

`POST /workflows/polymarket/redeemPosition`

Redeems position from a resolved Polymarket market. For positions with a current value > 0, this endpoint allows users to claim their winnings from a specific market condition. For losing positions with a current value = 0, this endpoint allows users to burn their position tokens to clean up their account. 
 Endpoint awaits successful execution of the redemption transaction before returning the transaction hash.

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 `redeemPosition` 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)
  - `conditionId` string, required — Polymarket condition ID for the position to redeem
  - `assetId` string, required — Polymarket asset ID for the asset to redeem
  - `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 redeemed successfully

- object
  - `txHash` string, required — Hex string with 0x prefix
  - `status` string, required — Status message of the redemption

## 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)
