交易历史导出
按日期区间一次购买,每个钱包每天一个文件。
交易历史:一次性
按天收费,区间越长,日费率越低。费率按边际方式分档:90 天的区间,前 30 天按 $0.07/天算,中间 30 天 $0.06,最后 30 天 $0.05,合计 $5.40 。后续档位不影响前面天数的价格。
每个实体按天计费,多个实体的费用相加:
| 天数 | 每天 |
|---|---|
| 1–30 | $0.07 |
| 31–60 | $0.06 |
| 61–90 | $0.05 |
| 91–180 | $0.03 |
| 181–365 | $0.02 |
| 366+ | $0.01 |
前 90 天费率最高,因为近期活动更能反映钱包当前的表现。
最少 30 天,单笔订单最多 25 个实体。一次购买即可保留数据,无需续费。
导出:先报价
报价不扣费、不保存记录,也不查询所填钱包的数据。价格只取决于日期区间和实体数量。不返回行数:某段日期的精确行数可能暴露钱包身份,免费报价因此可能用于匹配地址与榜单 handle。购买后可在订单中查看实际行数。
curl -X POST https://api.pmwallets.com/v1/account/exports/quote \ -H 'content-type: application/json' \ -H "Authorization: Bearer $PMW_KEY" \ -d '{"entityIds":["0x9a3f…21e8"],"from":"2026-06-01","to":"2026-08-29"}' # → 201 (a POST, although nothing is created)
{ "window": { "from": "2026-05-04", "to": "2026-09-19", "days": 139 }, "from": "2026-06-01", "to": "2026-08-29", "days": 90, "sellable": true, "entities": 1, "orderPriceCents": 540, "perEntityCents": 540, "discount": 1, "price": { "cents": 540, "usd": 5.4, "cny": 35 }, "breakdown": [ { "fromDay": 1, "toDay": 30, "days": 30, "perDayCents": 7, "cents": 210 }, { "fromDay": 31, "toDay": 60, "days": 30, "perDayCents": 6, "cents": 180 }, { "fromDay": 61, "toDay": 90, "days": 30, "perDayCents": 5, "cents": 150 } ] }
不可售区间返回 sellable: false 和原因: below_minimum 或 no_data,不作为错误处理。日期选择器可以显示该区间并说明不可售原因。window 是实际有数据的日期范围,请求区间超出时会缩到此范围内。
GET /v1/account/exports/window 返回该日期范围,以及四个快捷区间 (30、60、90 天和全部)的报价。
导出:下单与下载
请求体与报价接口相同。服务端按费率表重新计算价格,客户端显示的报价不参与扣款计算。 文件已生成,无需等待:订单返回时就是 ready,因为你买的是对已有文件的访问权。 每个 UTC 日结束后,我们为当天每个有成交的钱包生成一个文件,所以可买的最新一天是昨天。 下单时每个实体占用 1 次每日不同实体额度(超出返回 403);报价不占额度。
# same body as the quote, plus the price you accepted as a ceiling — the price is recomputed here, # and if it is now above maxPriceCents nothing is charged: 409 price_changed with the new quote curl -X POST https://api.pmwallets.com/v1/account/exports \ -H 'content-type: application/json' -H "Authorization: Bearer $PMW_KEY" \ -d '{"entityIds":["0x9a3f…21e8"],"from":"2026-06-01","to":"2026-08-29","maxPriceCents":540}' # → 201 {"id":"7c1e…","priceCents":540,"days":90,"rows":12483,"status":"ready"} # the files it grants: one per wallet per UTC day (a wallet with no fill that day has none) curl https://api.pmwallets.com/v1/account/exports/7c1e…/files -H "Authorization: Bearer $PMW_KEY" # → {"files":[{"wallet":"0x5b71…0cd2","day":"2026-06-01","rows":212,"bytes":9841, # "path":"/v1/account/data/0x5b71…0cd2/2026-06-01"}, …]} # each path answers with a 302 to a short-lived link; -L follows it curl -L -o 0x5b71…0cd2-2026-06-01.csv.zst \ https://api.pmwallets.com/v1/account/data/0x5b71…0cd2/2026-06-01 -H "Authorization: Bearer $PMW_KEY"
GET /v1/account/exports/:id/files 列出一个订单包含的文件;GET /v1/account/data/:wallet/:day 检查账户是否已购买该钱包当天的数据,然后 302 到一个有效 5 分钟的签名链接。两个接口都支持 API key。每次请求都会生成新的签名链接,链接不保存; 文件不会过期,需要时可重新下载。某个钱包某天没有成交就没有文件,请求它和请求未购买的日期一样返回 404。
文件是 zstd 压缩的 CSV(.csv.zst),按时间正序。 钱包和日期已经在路径里,每行不再重复;金额是账本整数(6 位小数)。pandas、polars、DuckDB 都能直接读.csv.zst。
ts,block,blockHash,txHash,logIndex,exchange,side,role,tokenId,price,shares,usdc,fee 2026-06-01 14:02:11,93912410,0x8f2c…,0x4d0e…,41,pm_ctf_v2,BUY,taker,3200000000…,0.57,3200000000,1824000000,0
导出包含完整链上账本,不做 API 采样。Polymarket 自己的成交接口每个钱包最多给到 10,000 条历史成交; 这里没有这个上限,数据来自我们采集的 Polygon 日志。导出包含实体名下的全部地址,每个地址一个文件。