> For the complete documentation index, see [llms.txt](https://swappulse.gitbook.io/swappulse-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://swappulse.gitbook.io/swappulse-docs/changelog/v0-8-0.md).

# SwapPulse v0.8.0: PokemonPriceTracker graded and recent-market enrichment

Full release notes for SwapPulse v0.8.0.

This release adds a fourth specialised Pokémon data layer for RAW prices, graded sold-price information and recent history while preserving TCGDex as the canonical catalogue.

## Added

* Server-only PokemonPriceTracker API client.
* `pokemon-price-tracker-market` Base44 backend function.
* Private `PokemonPriceTrackerCache` and `PokemonPriceTrackerUsage` entities.
* Card Detail graded/recent-market panel translated across SwapPulse's supported interface languages.
* Admin external-API budget card showing PokemonPriceTracker credit/rate headroom alongside PokéWallet usage.
* Privacy, architecture, API and third-party documentation for the new provider.

## Data model and provider role

* TCGDex remains canonical for card identity, set identity and catalogue data.
* PokéAPI remains species/game enrichment.
* PokéWallet remains a TCGPlayer/CardMarket cross-check.
* PokemonPriceTracker adds RAW/condition, graded sold-price and recent-history data only.

## Free-tier controls

The Free plan is treated as:

* 100 credits/day;
* 60 requests/minute;
* 3 days of recent history;
* RAW and graded card-price access.

SwapPulse reserves operational headroom by using an 80-credit/day soft budget and 75% of the configured per-minute request ceiling.

A fully enriched card is budgeted as 3 credits: basic card data plus recent history plus graded/eBay data. Responses are cached for 24 hours and can use a short stale fallback during temporary provider failures. There is no background collection-wide refresh on the Free plan.

## Matching safety

* The browser supplies only a canonical TCGDex card ID.
* The backend builds a strict provider search from card name, set and collector number.
* Automatic mapping requires matching collector number and a sufficiently strong combined score.
* Low-confidence candidates are rejected instead of guessed.

## Licensing/commercial-use safety

PokemonPriceTracker's dedicated licensing page currently says revenue-bearing sites require Business, including product-linked donations. Some provider pricing pages contain conflicting commercial-use wording. SwapPulse follows the stricter dedicated licensing guidance and therefore fails closed for ordinary public production traffic on Free/API plans.

Admins may exercise the integration for development/evaluation. Public use becomes eligible only when Business/Enterprise is configured or the maintainer has explicit written permission and deliberately enables the documented override.

SwapPulse does not expose PokemonPriceTracker data as a public proxy API, bulk feed or substitute data product.

## Security/privacy

* `POKEMON_PRICE_TRACKER_API_KEY` is read only by backend code.
* Provider credentials are never returned to browser clients or stored in source control.
* Requests use catalogue metadata only and do not require names, emails, account IDs, private notes or Web3 identity evidence.

## Live verification evidence

Verified on 3 September 2026 through the deployed Base44 admin path using canonical TCGDex card `swsh3-136`:

* managed backend secret was detected without exposing its value;
* first uncached request matched Furret, SWSH03 Darkness Ablaze 136/189;
* provider reported 3 credits consumed and 97/100 remaining;
* SwapPulse private ledger recorded exactly one upstream call and exactly 3 credits;
* a 24-hour cache record was created with a safe stale fallback window;
* repeating the same backend test returned `Served from cache`;
* the repeat created no new minute bucket, did not increment `calls_used`, did not increment `credits_used`, and left provider remaining credits at 97;
* the cache `updated_date` remained unchanged, proving the second request did not rewrite or refetch the provider payload.

This verifies authentication, conservative matching, response parsing, credit accounting, server-side caching and zero-credit repeat behaviour together.

## Rationale

PokemonPriceTracker provides useful graded and short-history data that complements, rather than replaces, the existing TCGDex/PokéWallet/PokéAPI stack. Strict caching, credit accounting, conservative matching and licence gating keep the integration useful without making the site dependent on a scarce or legally unsuitable Free-tier feed.
