Skip to main content
GET
/
api
/
v1
/
portfolio
/
positions
List positions
curl --request GET \
  --url https://carboncopy.inc/api/v1/portfolio/positions \
  --header 'Authorization: Bearer <token>'
{
  "data": {
    "items": [
      {
        "id": "0x1234abcd...",
        "title": "Will BTC exceed $100k by end of 2025?",
        "direction": "YES",
        "shares": 12.5,
        "avgPrice": 47,
        "currentPrice": 52,
        "positionValue": 6.5,
        "pnl": 0.62,
        "pnlPercentage": 9.5,
        "openedAt": 1710000000000,
        "eventSlug": "bitcoin-markets",
        "marketSlug": "will-btc-exceed-100k-by-end-of-2025",
        "copiedFromWallet": "0xAbCd1234...",
        "copiedFromName": "sharptrader"
      }
    ]
  },
  "meta": {
    "requestId": "cf7301af-0c1e-4354-85a8-9153db69ae6d",
    "timestamp": 1741600000000
  }
}

Authorizations

Authorization
string
header
required

API key in the format cc_<64 hex characters>. Obtain from the Dashboard under Settings → API Keys.

Query Parameters

limit
integer
default:50
Required range: 1 <= x <= 200
since
integer

Unix ms timestamp lower bound for position openedAt.

until
integer

Unix ms timestamp upper bound for position openedAt.

status
enum<string>
default:open

Filter positions by status.

Available options:
open,
closed,
all
fresh
boolean

Set to true to bypass cached positions fetch.

Response

Open positions snapshot (not cursor-paginated).

data
object
meta
object