# How to see your positions on Kalshi and Polymarket in one view

Six ways to put your own positions on two venues side by side — and why the one-line total is the number to distrust.

*https://predictionmarkets.tools/how-to/track-positions-across-two-venues · next to Trading Clients & Bots*

**Answer:** Link both accounts to a terminal that reads them, import one venue's export into a tracker that reads the other live, or pull each venue's positions endpoint into one sheet yourself. Each works, and none produces a true single total: Kalshi holds dollars in an account, Polymarket an on-chain stablecoin, the two settle on different schedules, and a question that looks shared across them may not be one contract.

## The approaches, in order

1. [PredictFolio](https://predictionmarkets.tools/tools/predictfolio.md) — Free and read-only — your Polymarket wallet live from the chain, with Kalshi's export imported beside it or summed into one line.
2. [Parity (PredictParity)](https://predictionmarkets.tools/tools/predictparity.md) — Link Kalshi, Polymarket and Polymarket US and one Portfolio view merges positions, orders and fills — the Kalshi link is a key that can trade.
3. [Kairos](https://predictionmarkets.tools/tools/kairos.md) — Positions on Kalshi, Polymarket and Predict.fun on one screen, deliberately with no grand total; a US account sees Kalshi only.
4. [Kalshi API](https://predictionmarkets.tools/tools/kalshi-api.md) — Your own Kalshi positions over RSA-signed REST, paged by cursor, for a sheet you control and a key that never leaves your machine.
5. [Polymarket Data API](https://predictionmarkets.tools/tools/polymarket-data-api.md) — Keyless /v2/positions for the wallet that holds your Polymarket positions, with average price, current value and cash P&L per row.
6. [Polymarket US API](https://predictionmarkets.tools/tools/polymarket-us-api.md) — The US exchange's portfolio over signed REST, in dollars — a US reader's only route to it here, after the iOS app and an identity check.

*Ordered editorially. Paid placement does not affect this order.*

## The short way

If you trade from outside the United States and will hand over a Kalshi key, link both venues to a
terminal and read its portfolio page. If you will not, read Polymarket live and bring Kalshi in as a
file. If you are in the United States, skip to the end of the options: nothing here shows both of the
venues open to you under its own terms, and the route that works is your own sheet.

The second way costs nothing and holds no key. [PredictFolio](https://predictionmarkets.tools/tools/predictfolio) reads a
Polymarket address from the chain — any address, no wallet connection — and draws its profit and loss
over time, with a mark-to-market setting that values open positions at the current price. Its
importer takes Kalshi's export and draws it beside the Polymarket line, or sums the two into one. The
importer checks the file: a Kalshi export whose rows do not add up gets a warning, and the chart then
uses the file's own profit-and-loss columns anyway.

That is the whole of the trade-off in one product. Polymarket is live and Kalshi is a snapshot as of
the day you exported it.

## What the options are

**A terminal that reads both live.** [Parity](https://predictionmarkets.tools/tools/predictparity) links Kalshi with an API key ID
and the entire RSA private key, Polymarket US with a key ID and secret, and Polymarket through an
embedded wallet or an imported key. Its Portfolio view then merges positions, resting orders, fills
and a profit breakdown by category across every linked venue. Parity charges no fee of its own today.
Its terms bar US persons, which rules out the one reader most likely to hold Polymarket US.

[Kairos](https://predictionmarkets.tools/tools/kairos) shows positions, orders and profit and loss across Kalshi, Polymarket and
Predict.fun, and its account docs refuse to add them up: there is no grand total, because Kalshi
dollars and on-chain collateral sit in different custody domains and no single order can spend both.
That is the correct answer, delivered as a missing number. A US account sees Kalshi only. Kairos
charges per taker fill, which costs nothing if you only read. The two terminals are compared on fees
and keys in [Kairos vs Parity](https://predictionmarkets.tools/compare/cross-venue-trading-terminals).

**Your own sheet.** Each venue publishes your positions; the join is yours.

On the international venue, [Polymarket's Data API](https://predictionmarkets.tools/tools/polymarket-data-api) needs no key at all.
`GET /v2/positions` serves a user's open book and, with `status=CLOSED`, the closed one, each row
carrying size, average price, current value, cash profit and the current price of the outcome.

```bash
# Open positions for the address that holds them (the proxy wallet, not the key that signs)
curl "https://data-api.polymarket.com/v2/positions?user=YOUR_WALLET_ADDRESS"
# Exited positions
curl "https://data-api.polymarket.com/v2/positions?user=YOUR_WALLET_ADDRESS&status=CLOSED"
```

On Kalshi, [the Kalshi API](https://predictionmarkets.tools/tools/kalshi-api) serves `GET /portfolio/positions` behind
authentication: every request signed with the RSA key you created in your account settings, over a
timestamp, the method and the path. It pages by cursor, filters by settlement status, and can be
narrowed to positions with a non-zero holding or any traded volume. Run it on your own machine and
the key never leaves it, which is the one thing a hosted tracker cannot offer.

On [Polymarket US](https://predictionmarkets.tools/tools/polymarket-us-api), the portfolio and balance endpoints sit on the signed
trading host, and a private WebSocket carries position and balance updates. The key comes from a
developer portal you sign into with the same method as the iOS app, after the identity check.

Then flatten all of it to one shape and keep the columns that refuse to merge:

```text
venue,market_id,question,side,contracts,avg_price,mark,currency,status,as_of
```

`currency` and `as_of` are the two a first draft drops, and the next section is why they stay.

## Where this breaks

**Two currencies, presented as one column.** Kalshi and Polymarket US hold dollars in an account.
Polymarket holds pUSD, a stablecoin on Polygon, through fields still named `usdc_size` and
`entry_cost_usdc`. Kairos refuses to total them; Parity's Portfolio merges them while its own docs
say the positions settle separately and the balances are not interchangeable; PredictFolio offers to
sum them. A total is a figure about two custody arrangements, and the day you need to move money
from one to the other it will be wrong by whatever the move costs —
[how money gets out](https://predictionmarkets.tools/guides/how-money-gets-out) is that cost.

**A question that looks shared is not one position.** Putting a Kalshi YES beside a Polymarket NO on
the same screen makes them look like a hedge. They are a hedge only if both contracts settle on the
same source, the same threshold and the same close time. Parity pairs markets by a matching short
title, and its own front page put a Kalshi and a Polymarket Fed market in one ladder with end dates
of 28 and 29 October 2026. Do the check in
[matching a question across venues](https://predictionmarkets.tools/how-to/match-a-question-across-venues) before a merged view
persuades you that two positions cancel.

**The two venues end a position on different schedules.** On Kalshi the winning side is paid a
dollar a contract, netted, shortly after expiration — with timing that varies by market type and
manual review. On Polymarket a resolved winner stays in the default open set until it is redeemed:
Polymarket's documentation says `OPEN` is the superset that includes settled-but-unredeemed winners.
A combined view that counts open positions is counting finished Polymarket positions as live ones
until you redeem them.

**Each venue marks and computes its own way.** Polymarket's Data API documents its profit fields
but not the cost-basis method behind them, and an open position's current value is the venue's
current price applied to a holding — a quote on a thin market, not a valuation. A tracker that
re-derives profit from your trades may not match the venue's figure, and two trackers may not match
each other. [Tracking a wallet's positions](https://predictionmarkets.tools/how-to/track-a-wallets-positions) covers why on the Polymarket
side.

**Reading may cost a key that can trade.** To show Kalshi positions, Parity holds an encrypted copy
of the same RSA private key that signs orders, and disconnecting in Parity does not revoke it at
Kalshi; you delete it there too. Kairos's conditional orders need Kalshi credentials stored with it.
Neither card documents a read-only key. [Where your key lives](https://predictionmarkets.tools/guides/where-your-key-lives) sets
out what a copy of each kind of key lets its holder do.

**An import is a snapshot, and history moves.** PredictFolio's Kalshi line is as current as the file
you last exported. On the API, Kalshi moves positions older than a moving cutoff to a separate set
of historical endpoints, so a script written against the live endpoint quietly loses its oldest
rows. And on Polymarket the address that holds positions is the proxy wallet, not the key that
signs: query the signer and the response is a valid, empty book.

**For a US reader with Kalshi and Polymarket US, there is no shortcut.** Parity's terms bar US
persons, Kairos has no Polymarket US, PredictFolio and the Data API read only the international
venue. Two signed API clients and a sheet is the route, and it needs two identity-checked accounts
and two keys you look after yourself.

## If you outgrow this

If the sheet becomes a daily job, write it once against both venues' official clients rather than
raw signed requests — [the SDKs category](https://predictionmarkets.tools/categories/sdks-and-client-libraries) has Kalshi's and
Polymarket's own packages, and [PMXT](https://predictionmarkets.tools/tools/pmxt) puts several venues behind one interface on your
own keys. If what you need is the record for a year rather than a view of today,
[export your Polymarket trade history](https://predictionmarkets.tools/how-to/export-polymarket-trade-history) covers what a
complete export contains, and [who sends you a tax form](https://predictionmarkets.tools/guides/who-sends-you-a-tax-form) covers
which venue sends paperwork and which leaves it to you.

## FAQ

### Is there one free tool that shows Kalshi and Polymarket positions live?

Not among the cards here. PredictFolio is free and reads Polymarket live, but Kalshi arrives only as an export file you import. Parity reads both live and charges no fee of its own today, but it needs your Kalshi signing key and its terms bar US persons. Kairos reads both live and charges per taker fill.

### I am in the United States and hold Kalshi and Polymarket US. What shows both?

Nothing in this catalogue under its own terms. Parity links both but its terms exclude US persons; Kairos serves US accounts for Kalshi only and has no Polymarket US; PredictFolio and Polymarket's Data API cover the international venue, not Polymarket US. The route that exists is each venue's own API, joined in a sheet you keep.

### Can I give a tracker a read-only Kalshi key?

Do not assume so. Kalshi's key is an RSA key pair minted in a verified account, and most venues here do not document per-key permissions at all. Parity's linking guide asks for the whole private key file, the same one that signs orders. The guide on where your key lives covers what a copy of each kind of key lets its holder do.

### Why does my combined profit figure not match either venue's own screen?

Because it adds two different things. Kalshi reports dollars in an account; Polymarket reports a stablecoin on Polygon, through fields still named after USDC. Each venue computes profit and marks open positions its own way, and Polymarket keeps a resolved winner open until it is redeemed. A sum across the two is a sum of two methods.

## Sources

1. [List positions for a user or market (GET /v2/positions)](https://docs.polymarket.com/api-reference/wallet/list-positions-for-a-user-or-market) — Polymarket, read 2026-10-07
2. [Get Positions (GET /portfolio/positions)](https://docs.kalshi.com/api-reference/portfolio/get-positions) — Kalshi, read 2026-10-07

*Last updated 2026-10-07. A reference page, corrected in place — not a dated post.*
