PriceAI review: a price radar for AI subscription card shops and relay APIs
AI 订阅卡网渠道比价工具:聚合100+卡网渠道包含 ChatGPT、Claude、Gemini、Grok 等多渠道报价,展示有货最低价、库存状态和原站购买链接。
At a glance
- What is it?
- PriceAI aggregates prices across AI subscription resellers and API relay stations, then links back to the original shop so you can verify before buying. It is a comparison and disclosure tool, not a storefront, and its README is explicit that it guarantees nothing about the channels it lists.
- Who is it for?
- Adopt PriceAI if you are choosing between ChatGPT, Claude, Gemini, Grok or DeepSeek routes and want the price, stock, multiplier and source disclosure in one place before you pay anyone. Do not adopt it if you expect a checkout, escrow, or any assurance that a listed shop will deliver; the README states plainly that it does not sell, collect payment, or guarantee after-sales.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 39 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The problem PriceAI targets: the same AI subscription at six different prices
A ChatGPT Plus or Claude Pro subscription is no longer a single price. The README lists what it calls the real spread: official list price, App Store and Google Play regional pricing, student or device entitlements, top-up services, pre-made accounts, card keys, and third-party channel prices. On the API side the same split appears as official tokens, free tiers, coding plans, and relay stations that resell access with their own recharge ratio and model multiplier.
The people PriceAI is written for fall into two groups. The first is buyers who already have quotes from several card shops, Telegram groups, or second-hand listings and cannot tell which ones are in stock, which are stale, and which delivery format they are actually buying. The README points out that titles like ChatGPT Plus top-up, Plus pre-made account, and ChatGPT Team invite may describe completely different delivery mechanisms under nearly identical wording. The second group is developers comparing DeepSeek, Qwen, Kimi, GLM, MiniMax and OpenAI-compatible endpoints, where free quota, token plans, and pricing units do not line up.
The project's own framing is narrow and worth repeating: it is a pre-purchase reference, not a marketplace. That distinction drives most of the design decisions below.
How PriceAI structures data: standard objects, source retention, in-stock lows
The README includes a short pipeline diagram, and it is the clearest description of the architecture available:
公开来源 / 用户提交 / 站点资料
-> 采集、导入或人工审核
-> 标准商品、标准模型、标准站点归类
-> 展示价格、库存、倍率、来源和更新时间
-> 用户回到原站核验并自行决策Read that as four stages. Inputs arrive from public sources, user submissions, or site profiles. They pass through collection, import, or manual review. They are then normalized into standard products, standard models, and standard sites. Finally the site displays price, stock, multiplier, source, and update time, and the user returns to the original shop to verify.
The normalization step is the part that actually does work. Card shop titles are inconsistent by nature, so PriceAI keeps the original title alongside the standardized product, which is why the README says the tool retains source, original title, price, stock, multiplier, update time, and original shop link. The outer minimum price only counts offers that are in stock, visible, reviewed, and not anomalous; out-of-stock, hidden, and unreviewed quotes are excluded from the calculation. That rule matters more than it sounds. A comparison site that lets expired listings into its headline number is worse than useless, because it teaches users to distrust every figure on the page.
For relay APIs the displayed fields are recharge ratio, model multiplier, combined multiplier, seven-day availability, and upstream source disclosure. Ads, sponsorships, and affiliate relationships are supposed to be disclosed separately and are not allowed to change the objective ordering or the minimum price. Whether that holds in practice is not something the repository can prove; it is a stated policy, and the README treats it as a boundary rather than a feature.
Running PriceAI locally with Next.js, Supabase and the collector
The repository is a private Next.js application, not a published package, so installation means cloning it and supplying your own Supabase project. The package.json sets the engine range to Node 24 and the dev script invokes Next directly through a vendored node binary. The .env.example file is the authoritative list of required variables, and the first three are the ones without which nothing renders.
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-keyThose three lines are copied from .env.example, which ships them with placeholder values. Copy the file to your own environment file and replace the placeholders. The dev script in package.json runs Next with the webpack flag. The README does not document a database migration step, so check the supabase/ directory in the repository for the schema before expecting the price tables to populate. If you only want to read the comparison data, the hosted instance at priceai.cc is the intended entry point and no local setup is required.
The collector is configured through environment variables rather than a config file. Defaults in .env.example include a concurrency of 1, a 300 ms page delay, and a 25 minute cooldown between collector runs, which tells you the project expects to be gentle with the shops it scrapes.
PRICEAI_COLLECT_CONCURRENCY=1
PRICEAI_COLLECT_PAGE_DELAY_MS=300
PRICEAI_COLLECTOR_COOLDOWN_MINUTES=25
CRON_SECRET=change-this-cron-secretScheduled collection is protected by CRON_SECRET, and the admin surface by ADMIN_PASSWORD. Both ship with placeholder values, so replacing them is part of the install rather than an optional hardening step. Deployment is Cloudflare-oriented: the scripts include build:cloudflare, deploy:cloudflare, and a guard script that runs before the deploy command, alongside an open-next.config.ts and wrangler.jsonc at the repository root.
The model detector is a separate service with its own licence
One module does not live in this repository. The API relay model detector at priceai.cc/api-transit/detector is executed by physics-dimension/priceai-detector-service, and the main site reaches it through the NEXT_PUBLIC_TRANSIT_DETECTOR_API_BASE_URL variable. The README states that this service is forked from canarybyte/veridrop, remains under AGPL-3.0-or-later, and keeps the upstream project identification and attribution notices.
Functionally, the detector accepts a relay endpoint, a model name, and a temporary key, then runs Claude, OpenAI, OpenAI Responses, and Gemini compatible protocol probes and produces a report JSON plus a shareable report page. The report covers protocol, capability, source route, billing, and performance evidence.
That split matters for anyone self-hosting. The main repository is TypeScript under a LICENSE file that package.json refers to as "SEE LICENSE IN LICENSE", with a separate DATA_LICENSE.md, while the detector carries AGPL-3.0-or-later obligations from its upstream. If you fork or redeploy the detector, the AGPL terms travel with it. The README is also careful about what a report means: it is described as an evidence chain to help judge protocol, capability, source route, and billing, and explicitly not a guarantee by PriceAI about any relay station or merchant.
Where PriceAI stops: no transactions, no guarantees, no uptime promise
The README has a section titled what PriceAI does not do, and it is unusually direct. There is no transaction loop, no payment collection, no escrow, and no promise of after-sales support or long-term availability for any listed channel. If you want a purchase flow, this is the wrong tool, and no amount of configuration changes that.
The second limitation is structural. PriceAI can only compare what it has collected or what has been submitted and approved. A shop that is not in the list is not evidence that it is bad, and a shop that is in the list is not evidence that it is safe. The README repeats this in its FAQ: before buying, you still have to go back to the original platform and confirm the product description, final price, after-sales rules, refund conditions, and risk.
A third constraint is operational. Collection depends on scheduled runs with a cooldown, and .env.example exposes a circuit breaker for one card shop integration with a 30 minute window, which implies that upstream shops can rate-limit or block collection. When that happens, the freshness of the displayed price degrades, and the update timestamp becomes the field you should actually look at.
Finally, the risk review path is capped. PRICEAI_RISK_REVIEW_DAILY_LIMIT defaults to 100, with a 900 token output cap and a 262144 byte response cap, so automated review of submitted channels is a bounded process rather than an unlimited one.
PriceAI versus a generic price tracker or a relay status page
The obvious alternative for the subscription side is a general price tracker, or simply keeping a spreadsheet of the shops you already follow. A spreadsheet gives you full control and no dependency, but it cannot normalize delivery formats, cannot exclude out-of-stock quotes automatically, and cannot tell you when a listing was last seen. PriceAI's specific difference is the standard product and standard site layer plus the in-stock-only minimum price rule. If you only track two shops you trust, the spreadsheet is honestly the better fit.
On the API side, the closest comparison is a relay station status page or an uptime monitor. Those answer a different question: is this endpoint responding right now. PriceAI's relay view is about cost structure and disclosure, showing recharge ratio, model multiplier, combined multiplier, and seven-day availability together with the upstream source. A status page will not tell you that a station's multiplier makes a model three times more expensive than the official API, and PriceAI will not tell you that a station is down this minute with the same confidence an uptime monitor does.
The detector is the piece with no direct equivalent in either alternative. Running protocol probes against a relay endpoint and emitting a report is a different activity from comparing published prices, and it is the reason the detector lives in its own AGPL-licensed service rather than inside the Next.js app.
Maintenance, upgrade cost and licence implications
The last push to the default branch was on 2026-08-08, and the most recent release listed is v1.3.0 on 2026-06-29, following v1.2.0 and v1.1.0 earlier in June 2026. The repository is not archived. The release cadence visible in the repository is roughly weekly across June, with a gap before the August push, so treat the project as maintained but not on a fixed schedule.
Upgrade cost depends on how you run it. If you use priceai.cc, there is nothing to upgrade. If you self-host, the moving parts are the Next.js app, the Cloudflare deployment scripts, the collector runtime artifact scripts, and the separate detector service. The package.json includes check:collector-runtime-sync and collector-runtime:build, which suggests the collector runtime is versioned separately from the app and can drift; that check script exists precisely to catch the drift, so run it after pulling.
On licensing: the repository contains LICENSE, DATA_LICENSE.md, TRADEMARKS.md, and SECURITY.md, and package.json declares the project license as "SEE LICENSE IN LICENSE" rather than an SPDX identifier. That is the reason the repository metadata reports NOASSERTION. Read LICENSE and DATA_LICENSE.md before redistributing the code or the data, since the two may not carry the same terms. The detector service is AGPL-3.0-or-later through its upstream fork, which is a stronger copyleft obligation than whatever the main repository uses. None of this is legal advice; the files themselves are the source.
Editorial conclusion
Adopt PriceAI if you are choosing between ChatGPT, Claude, Gemini, Grok or DeepSeek routes and want the price, stock, multiplier and source disclosure in one place before you pay anyone. Do not adopt it if you expect a checkout, escrow, or any assurance that a listed shop will deliver; the README states plainly that it does not sell, collect payment, or guarantee after-sales. Verify first that the deployment you are looking at is the one you intend (priceai.cc or your own), that your Supabase project has the tables the app expects, and that CRON_SECRET and ADMIN_PASSWORD in .env.example have been replaced before the collector runs.
Frequently asked questions
Does PriceAI sell AI subscriptions or API access?
No. The README states that PriceAI does not sell goods, does not collect payment, and does not participate in transactions. It only organizes public or reviewed prices, sources, stock, multipliers, update times, and original shop links.
Does PriceAI guarantee that a listed card shop is reliable?
No. The README says PriceAI only helps you see more verifiable information, and that before buying you still need to confirm the product description, final price, after-sales rules, and refund conditions on the original platform.
Why does PriceAI separate official subscriptions, card shop subscriptions, official APIs, and relay APIs?
Because their price sources, risk boundaries, and verification methods are completely different. Official subscriptions serve as a price baseline, card shops show low-price stock and delivery format, official APIs show documentation and limits, and relay APIs require extra attention to multipliers, stability, and upstream disclosure.
What is the relationship between the GitHub repository and priceai.cc?
The GitHub repository holds the application code, while priceai.cc is the hosted instance the README points to as the current online version. The README does not document a supported path for deploying your own public instance beyond the Cloudflare scripts in package.json.
How does the PriceAI model detector work?
You enter a relay endpoint, a model name, and a temporary key, and the detector runs Claude, OpenAI, OpenAI Responses, and Gemini compatible protocol probes to produce a report on protocol, capability, source route, billing, and performance. The execution layer is a separate service forked from canarybyte/veridrop under AGPL-3.0-or-later, called through NEXT_PUBLIC_TRANSIT_DETECTOR_API_BASE_URL.
What Node version does PriceAI require?
The package.json engines field specifies node >=24.0.0 <25. The repository also includes an .nvmrc file, so check it before installing dependencies.
Community notes