# PriceAI: a price-comparison radar for AI subscriptions and relay APIs

> PriceAI aggregates quotes from more than 200 AI subscription card shops and relay API resellers, separating official pricing, card-shop stock, official APIs and third-party relays. It does not sell anything, which is both its main design choice and the reason its risk labels matter.

**dimthink/PriceAI** — AI 订阅卡网渠道比价工具：聚合100+卡网渠道包含 ChatGPT、Claude、Gemini、Grok 等多渠道报价，展示有货最低价、库存状态和原站购买链接。

- Repository: https://github.com/dimthink/PriceAI
- Website: https://priceai.cc
- Stars: 3,566 · Forks: 185
- Language: TypeScript
- License: NOASSERTION
- Published: 2026-09-14 · Updated: 2026-09-14 · Language: en
- Canonical page: https://hysenlabs.com/projects/dimthink-priceai

## The specific problem PriceAI targets

The README describes the core problem plainly: the same ChatGPT Plus, Claude Pro or Gemini Pro subscription can exist as an official price, an App Store or Google Play regional price, a student or device-benefit price, a top-up price, a finished-account price and a card-key price, all at once. For developers the equivalent split runs across official APIs, free tiers, token plans, coding plans and relay APIs. The information lives in official docs, store pages, card shops, Telegram groups, second-hand listings and relay backends.

The audience is narrow and concrete. It is people deciding how to obtain an AI capability before they pay: someone comparing a ChatGPT Plus top-up against a finished account, someone who has seen five card shops quote different prices for the same product name and cannot tell whether they are the same delivery method, and a developer comparing DeepSeek, Qwen, Kimi and GLM APIs whose free quotas and pricing units are not stated the same way. The README calls the result a purchase-time cost radar rather than a storefront, and the project repeats that it does not sell goods, collect payment or guarantee after-sales support for any channel.

## How the aggregation pipeline is structured

The README gives a four-stage data flow: public sources, user submissions and site profiles are collected, imported or manually reviewed; they are then normalised into standard products, standard models and standard sites; the site displays price, stock, multiplier, source and update time; the user goes back to the original site to verify and decide.

Two details carry most of the design weight. First, the normalisation step exists because product titles are inconsistent: the README lists `ChatGPT Plus 代充`, `Plus 成品号`, `ChatGPT Team 邀请`, `Claude Pro 会员` and `Gemini Pro 低价` as strings that may describe different delivery methods, so the project maps messy titles onto standard objects before comparing them. Second, the outer lowest price only counts quotes that are in stock, visible and reviewed. Out-of-stock, hidden and anomalous quotes are excluded from that calculation, which is a deliberate choice to avoid advertising a price nobody can actually pay.

The repository reflects this shape. There is a `supabase/` directory for the data layer, `src/` for the Next.js application, a `scripts/` directory with collector-runtime build, sync and deploy scripts, and a `config/` directory. Environment variables such as `PRICEAI_COLLECT_CONCURRENCY`, `PRICEAI_COLLECT_PAGE_DELAY_MS` and `PRICEAI_COLLECTOR_COOLDOWN_MINUTES` suggest collection is throttled rather than run as a tight loop, and `PRICEAI_LIANDONG_SHOP_BREAKER_MINUTES` names a circuit breaker for one shop family. Those are operational constraints, not performance claims.

## Running PriceAI locally with Supabase

The README points to https://priceai.cc as the live version and the repository is self-hostable, but the README does not spell out a step-by-step local setup. What it does provide is an `.env.example` file, and `package.json` defines the scripts. Node is pinned: `package.json` sets `engines` to `>=24.0.0 <25`, and `.nvmrc` exists at the repository root.

The template ships placeholder values, so nothing below is a working credential. These are the keys the template presents for a basic instance: the public Supabase pair, the server-side service role key, and the admin password.

```bash
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
ADMIN_PASSWORD=change-this-password
CRON_SECRET=change-this-cron-secret
```

The scripts in `package.json` invoke Next through the pinned Node binary rather than a global install, and the development entry point is `dev`.

```bash
npm install
npm run dev
```

For deployment the repository targets Cloudflare through OpenNext. The `package.json` scripts are explicit about ordering, and `deploy:cloudflare` runs a guard, an environment check and an environment sanitiser before calling `opennextjs-cloudflare deploy -- --keep-vars`.

```bash
npm run build:cloudflare
npm run preview:cloudflare
npm run deploy:cloudflare
```

The README does not document a rollback procedure for a failed deployment, and it does not document database migration steps for the `supabase/` directory. Those are gaps a self-hoster has to resolve from the repository itself.

## The relay API detector and its AGPL boundary

The most distinctive module is the relay API model detector, reachable at https://priceai.cc/api-transit/detector. It accepts a relay endpoint, a model name and a temporary key, then produces a report covering protocol, capability, source route, billing and performance evidence. The main site calls it through `NEXT_PUBLIC_TRANSIT_DETECTOR_API_BASE_URL`.

The execution layer is not in this repository. The README states it is maintained separately at `physics-dimension/priceai-detector-service`, and that this service is forked from `canarybyte/veridrop` under AGPL-3.0-or-later, retaining upstream attribution. That split matters for anyone self-hosting: the main repository's licence file is not the whole picture, because a component you may need to run is governed by a different, copyleft licence. The README is also careful about what a report means, calling it an evidence chain for judging protocol, capability, source route and billing, and explicitly not a guarantee about any relay or merchant.

This is where the project's editorial stance shows. It states that advertising, sponsorship and affiliate relationships must be disclosed separately and must not change objective ordering, lowest-price calculation or risk warnings. Whether that holds in practice is not something the repository can prove, but it is a stated rule rather than an unstated one.

## Where PriceAI is the wrong tool

The README's own list of what it does not do is the clearest limitation. There is no transaction loop, no payment collection, no escrow and no promise of after-sales service or long-term availability for any channel. If you want to buy inside the interface, PriceAI is not that product, and the display ends at an original-site link.

There are harder limits. Price accuracy depends on collection and review, and the environment template exposes the throttles: a page delay, a concurrency setting and a cooldown measured in minutes. A quote can be stale between collection runs, and the README acknowledges that expired and out-of-stock quotes should not drive the lowest-price figure, which is an admission that they exist in the source data. The risk labels around relay APIs describe multipliers, availability and upstream disclosure; they cannot tell you whether a relay will still be reachable next month. And the detector needs a temporary key for the endpoint you want to probe, so you are handing a credential to a separate service to get the report.

Finally, the repository's licence is declared as NOASSERTION on the project metadata, while `package.json` says `SEE LICENSE IN LICENSE` and there are separate `LICENSE`, `DATA_LICENSE.md` and `TRADEMARKS.md` files. Anyone planning to reuse the data or the name has reading to do before assuming permissive terms.

## How it differs from a plain price tracker

A general price tracker watches a product page and records changes over time. PriceAI does something different: it normalises heterogeneous listings from many independent sellers into comparable objects, then layers risk and delivery-method context on top. The README frames the distinction as separating official subscriptions, card shops, official APIs and relay APIs so they are not collapsed into one risk category.

A closer comparison is a relay API billing calculator. Those typically take a published multiplier table and compute what a model would cost. PriceAI instead reports the recharge coefficient, model multiplier, combined multiplier, seven-day availability and disclosed source for each relay, and then offers a separate detector that probes an endpoint you supply. The difference is verification versus arithmetic: one trusts the published rate card, the other tries to produce evidence about what the endpoint actually speaks.

Against simply reading card shops directly, the trade-off is coverage versus freshness. PriceAI claims more than 200 channels in one view, which is more than a person will check by hand, but each row is only as current as its last collection run.

## Maintenance cost and licence reading

The repository is not archived, and the last push was on 2026-08-08. Releases v1.1.0, v1.2.0 and v1.3.0 landed between 2026-06-18 and 2026-06-29, so the tagged release cadence is not the same as the commit cadence. The changelog file `CHANGELOG.md` exists at the root, and the README does not describe an upgrade path between versions.

Operating it is not a static deploy. The environment template lists collector node identity variables, proxy settings for one shop family, per-shop bulk limits and delays, a breaker window, alert webhook URLs, risk-review token limits and several relay API keys. Self-hosting means owning that surface, plus a Supabase instance and a Cloudflare deployment path. The `check:collector-runtime-sync` and `check:recovery-baseline` scripts suggest the project itself treats runtime drift and database recovery as things to verify.

On licensing, this is not legal advice. The metadata reports NOASSERTION, `package.json` defers to the LICENSE file, there is a separate DATA_LICENSE.md that may cover the aggregated price data differently from the code, and TRADEMARKS.md exists alongside them. The detector service is AGPL-3.0-or-later, which is a materially different obligation from a permissive code licence if you modify and expose it over a network. Read all four files before redistributing anything.

## Conclusion

PriceAI fits people who are already shopping across several card shops, resellers and relay API sites and want one table with stock status, multipliers and original links before they pay. It does not fit anyone who wants a checkout, a refund path or a guarantee that a channel is trustworthy, because the project states it does not sell, collect payment or underwrite any seller. Before adopting it, verify the licence terms in LICENSE and DATA_LICENSE.md, check whether the detector service is reachable at the URL you configure, and confirm that the Supabase project you point it at is one you control.

## FAQ

### Is AI pricing legal?

PriceAI does not address the legality of AI subscription or API pricing. It states that it does not sell goods, collect payment or guarantee after-sales support, and that it only organises publicly available or reviewed prices, sources, stock, multipliers, update times and original-site links.

### What is pricing AI?

In PriceAI's case it is a purchase-time reference tool: it normalises quotes from more than 200 AI subscription card shops, card-issuing sites and low-cost membership channels, plus official subscriptions, official APIs and relay APIs, into comparable objects with stock status and original links.

### Which AI tool is best for pricing?

PriceAI does not rank AI tools for pricing work. It compares the cost of obtaining AI capabilities, covering ChatGPT Plus, Pro and Team, Claude Pro, Gemini Advanced, Grok, and APIs including DeepSeek, Qwen, Kimi and GLM.

### Which AI is most expensive?

The README does not name a most expensive AI product. It describes the price sources it compares, including official prices, App Store and Google Play regional prices, top-up prices, finished-account prices and card-key prices, without ranking them by cost.

## Sources

- [dimthink/PriceAI on GitHub](https://github.com/dimthink/PriceAI)
- [Issues](https://github.com/dimthink/PriceAI/issues)
- [Project website](https://priceai.cc)
- [README](https://github.com/dimthink/PriceAI/blob/main/README.md)
- [Releases](https://github.com/dimthink/PriceAI/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/dimthink-priceai
