打开网易新闻 查看精彩图片

二手交易有个反直觉的痛点:越专业的玩家,花在比价上的时间越像黑洞。一张宝可梦卡牌,TCGPlayer看一遍;一把Fender,Reverb翻一轮;想捡本地漏还得刷OfferUp和Craigslist。五个标签页切来切去,价格记在脑子里,最后发现记串了。

有人算过,职业倒爷每周纯比价时间超过6小时。这还不算最窒息的——真正的套利机会往往活不过20分钟,等你切完网页,低价货早被脚本扫走了。

一个API把20个市场缝成一张表

一个API把20个市场缝成一张表

开发者@ddupont built了个统一接口,把TCGPlayer、Reverb、OfferUp、Craigslist这些孤岛串成了一条流水线。输入商品名,返回跨平台标准化数据,按价格排序。

核心逻辑朴素到近乎粗暴:Promise.all并发请求多个市场,flatMap拍平结果数组,filter筛掉零元购,sort按价格升序。30行代码解决的是个存在十几年的体验债。

代码跑出来的结果长这样:Fender American Professional II Stratocaster,OfferUp卖850刀,Reverb同款899刀,Craigslist有个HSS版本925刀。差价最高14%,够买两条琴弦。

TCGPlayer的数据更细。查Charizard ex 223,返回marketPrice、lowPrice、midPrice三档,卡牌交易的标准黑话直接翻译成可比较的数字。

套利的本质是信息差自动化

套利的本质是信息差自动化

比价只是表层。真正让贩子们坐不住的是套利脚本——自动扫描A平台的低价货源,比对B平台的成交中枢,算出扣除手续费后的净利润。

function findArbitrage(query, buyFrom, sellOn) 这个签名暴露了一切:输入商品、进货渠道、出货渠道,输出是否存在价差空间。以前靠人肉盯盘的机会,现在变成定时任务跑批。

有个细节很有意思:API对Craigslist和OfferUp这类本地交易平台做了特殊处理。它们的列表质量参差不齐,有些甚至没有明确标价,返回结果里price字段可能为0——这就是为什么代码里要加 .filter(l => l.price > 0) 这层保险。

这暴露了本地交易的脏数据问题。全国市场的Reverb和TCGPlayer有标准化字段,Craigslist的自由文本描述里藏着"OBO"(or best offer)和"trade only"的暗语。统一API的价值,一部分在于把这些噪音清洗成可计算的结构。

谁在真正用这个?

谁在真正用这个?

GitHub仓库没有公开star数,但Railway的部署日志暴露了规模:API托管在免费档,说明调用量还没大到需要付费扩容。作者自己说"built this for personal flipping",工具属性大于平台野心。

但这恰恰是这类项目的典型路径。2015年的Keepa从浏览器插件做起,现在成了亚马逊比价的基础设施;2020年的Slickdeals靠论坛爬虫起家,去年被Vitalize卖给了Ziff Davis。个人工具解决的具体痛点,往往是平台级机会的早期信号。

风险也明显。TCGPlayer和Reverb的API条款里都有反爬虫条款,大规模商用可能触发封禁。作者的折中方案是自建索引层,不直接调用官方API,而是通过搜索接口抓取公开列表——这解释了为什么Craigslist能被纳入,它根本没有官方API。

技术债转移到了维护成本。每个市场的页面结构变一次,解析逻辑就要跟进。20个市场意味着20份潜在的breaking change,个人项目能撑多久是个问号。

价格透明化之后呢

价格透明化之后呢

这个工具最狠的影响不在技术层面,而在博弈结构。二手市场的利润来自信息不对称:卖家不知道其他平台卖多少,买家不知道历史成交价。统一比价API把双边信息差压缩到最小,套利空间从"发现机会"变成"执行速度"的竞争。

已经有用户在Discord频道反馈,用脚本监控特定SKU后,本地捡漏成功率从月均2单降到0。不是货没了,是货刚上架就被更快的手速截走。

这像是2010年HFT(高频交易)在股票市场的重演。当信息传递延迟趋近于零,优势只能来自更靠近交易所的服务器、更激进的算法、或者更宽松的资本约束。个人玩家在这场军备竞赛里,胜算越来越取决于能不能写那30行代码。

作者最后更新的README里加了一行:"Rate limited to 100 req/min on free tier"。限制的不是技术,是成本。当这个上限被突破的时候,二手市场的玩法会再变一次——那时候,手动刷网页的人还剩多少?