MYP Cards API & Scraper
The MYP Cards API returns Brazil's mypcards.com marketplace as clean JSON in BRL, for 24 games including Magic: The Gathering, Pokémon, Yu-Gi-Oh!, Disney Lorcana, One Piece, Riftbound and Digimon, plus sealed product and accessories.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
search finds cards by Portuguese or original name or lists a whole set, 30 rows a page, with the lowest price, the units for sale and the lowest graded price; filters cover condition, card language, seller state, price range, finish, rarity, color and type, and sorting works by name, code or price. card returns one product in full: code, set, card number, rarity, type, illustrator, release date and description, the lowest and average price, the TCGplayer reference and the 30-day median change, and then every seller's offer with the BRL price, the pre-discount price, units, condition, language, finish, the seller's notes and photos, and graded slabs with grader, grade and certificate number. deals lists current promotions with the discount and time left, graded lists slabs for sale with their certificates, editions lists every set, and sellers, seller and seller_inventory cover the store directory, reputation and order counts, and what one seller lists. Portuguese text is kept exactly as the site shows it. No account, no browser - one ReefAPI key and the standard { ok, data, meta, error } envelope.
MYP Cards shows two prices worth comparing: its own low and the US reference
Each product page has a lowest asking price, an average, a TCGplayer reference and the change in the median over 30 days. The lowest price is a real seller's offer: on 30 products we checked on 2026-11-08 the search result's price matched the product page every time, and the product page's lowest matched the cheapest offer on 27; on the other 3 a copy in another language was cheaper.
| Card (set) | price_brl | price_avg_brl | price_tcgplayer_brl | 30-day median |
|---|---|---|---|---|
| Mega Charizard Y ex 294/217 (ME: Ascended Heroes) | 990.00 | 1,654.53 | 1,418.75 | +7.9% |
| Mega Charizard Y ex 022/217 (ME: Ascended Heroes) | 14.00 | 38.39 | 29.20 | — |
| Cori-Steel Cutter, Borderless (Tarkir: Dragonstorm) | 75.00 | 92.50 | 27.60 | -28.6% |
Prices are asking prices in BRL and exclude shipping. Condition and language move a card's price, and the summary numbers do not show that; card returns every offer with both so you can price the copy you want. Price history charts are only shown to logged-in MYP Cards users and are not part of this API.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/mypcards/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"game": "pokemon",
"query": "charizard",
"sort": "price_asc"
}
}{
"ok": true,
"meta": {
"api": "mypcards",
"endpoint": "search",
"mode": "live",
"latency_ms": 1513.1,
"record_count": 30,
"bytes": 138071,
"cache_hit": false,
"requests": 1,
"charged_credits": 2,
"version": "0.1.0",
"request_id": "1eaa22d4b8104d5c",
"fetched_at": "2026-11-08T13:04:30.662Z"
},
"data": {
"game": "pokemon",
"query": "charizard",
"sort": "price_asc",
"results": [
{
"product_id": 339321,
"offer_id": null,
"code": "pokemon_bta_133/156",
"name": "Pokemon Fan Club - 133/156 (#45 Charizard Stamped) (133/156)",
"name_original": null,
"game": "pokemon",
"set": "Battle Academy",
"set_code": "BTA",
"card_number": "133/156",
"rarity": null,
"price_brl": 2,
"price_is_from": false,
"original_price_brl": null,
"discount_pct": null,
"promotion_ends": null,
"stock": 1,
"in_stock": true,
"condition": null,
"condition_label": null,
"language": null,
"language_label": null,
"finish": null,
"printing": null,
"graded": null,
"graded_from_brl": null,
"high_demand": false,
"seller": null,
"image_url": "https://img.mypcards.com/img/2/2612/pokemon_bta_133_156/pokemon_bta_133_156_en_thumb.jpg",
"url": "https://mypcards.com/pokemon/produto/339321/pokemon-fan-club-133156-45-charizard-stamped"
},
{
"product_id": 199364,
"offer_id": null,
"code": "pokemon_obf_125/197",
"name": "Charizard ex (125/197)",
"name_original": null,
"game": "pokemon",
"set": "Escarlate e Violeta: Obsidiana em Chamas",
"set_code": "OBF",
"card_number": "125/197",
"rarity": null,
"price_brl": 2.5,
"price_is_from": false,
"original_price_brl": null,
"discount_pct": null,
"promotion_ends": null,
"stock": 224,
"in_stock": true,
"condition": null,
"condition_label": null,
"language": null,
"language_label": null,
"finish": null,
"printing": null,
"graded": null,
"graded_from_brl": 2490,
"high_demand": true,
"seller": null,
"image_url": "https://img.mypcards.com/img/2/1865/pokemon_obf_125_197/pokemon_obf_125_197_pt_thumb.jpg",
"url": "https://mypcards.com/pokemon/produto/199364/charizard-ex"
},
{
"product_id": 339348,
"offer_id": null,
"code": "pokemon_bta_189/214",
"name": "Welder - 189/214 (#25 Charizard Stamped) (189/214)",
"name_original": null,
"game": "pokemon",
"set": "Battle Academy",
"set_code": "BTA",
"card_number": "189/214",
"rarity": null,
"price_brl": 4.5,
"price_is_from": false,
"original_price_brl": null,
"discount_pct": null,
"promotion_ends": null,
"stock": 3,
"in_stock": true,
"condition": null,
"condition_label": null,
"language": null,
"language_label": null,
"finish": null,
"printing": null,
"graded": null,
"graded_from_brl": null,
"high_demand": false,
"seller": null,
"image_url": "https://img.mypcards.com/img/2/2612/pokemon_bta_189_214/pokemon_bta_189_214_en_thumb.jpg",
"url": "https://mypcards.com/pokemon/produto/339348/welder-189214-25-charizard-stamped"
}
],
"page": 1,
"pages": 11,
"total": 310,
"count": 30,
"has_more": true
}
}What the MYP Cards API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search a game's catalog or list a set: name (Portuguese and original), set, card number, lowest price in BRL, units for sale, product id and url; with graded_only also the lowest graded price. 30 per page, sortable. With no query it returns the newest listings of the game. Filters by condition, language, seller state and price narrow it on the site's own search. | Pricing teams call search to search a game's catalog or list a set. | game, query, edition, category, subcategory, ... |
| card | One product: name, code, set, card number, rarity, type, illustrator, release date and description; lowest and average price, TCGplayer reference and the 30-day median change; every seller offer with BRL price, pre-discount price, units, condition, language, finish, photos, notes and seller; graded offers with grader, grade and certificate link. | Marketplace operators call card to get one product. | url, product_id, game, offers_limit, condition, ... |
| editions | A game's sets, newest first: name, alternate name, code, release date, slug and id. Feed slug to search's edition. 48 per page. | Catalog enrichment teams call editions to get a game's sets, newest first. | game, query, page |
| deals | Current promotions of a game: product, BRL price, price before the discount, discount percent, time left, stock and condition. Sort by biggest discount, end date, price or stock. | Retail analysts call deals to get current promotions of a game. | game, sort, page |
| graded | Graded slabs for sale, newest first: card, grader, grade, certificate number and link, language, seller and BRL price. Can be limited to one game where the site has that filter. | Pricing teams call graded to get graded slabs for sale, newest first. | game, page |
| sellers | The store directory: nickname, rating, number of reviews, games sold, city and state. Filter by name, city or state. | Marketplace operators call sellers to get the store directory. | name, city, state, sort, page |
| seller | A seller's reputation: certified or store status, rating over the last 6 months and overall, orders shipped and cancelled, average shipping days, sales, location, free shipping threshold, shipping notes, social links and buyer reviews (5 per page, buyer identity withheld by the site). | Catalog enrichment teams call seller to get a seller's reputation. | seller, reviews_page |
| seller_inventory | What one seller lists: the same fields as search, each with that seller's price and copies, filterable by name, sorted by name or price. 30 per page. Without game the site lists that seller's default game only; pass game to read another (each row carries its game). | Retail analysts call seller_inventory to get what one seller lists. | seller, query, game, sort, page |
Call search from your stack
curl -X POST https://api.reefapi.com/mypcards/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"game":"pokemon","query":"charizard","sort":"price_asc"}'import os
import requests
REEF_KEY = os.environ["REEF_KEY"]
r = requests.post(
"https://api.reefapi.com/mypcards/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"game": "pokemon",
"query": "charizard",
"sort": "price_asc"
},
timeout=90,
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/mypcards/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"game": "pokemon",
"query": "charizard",
"sort": "price_asc"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.mypcards.search with {"game":"pokemon","query":"charizard","sort":"price_asc"}.Who uses this API and why
- Compare Brazilian asking prices with the TCGplayer reference on the same page to spot spreads on Magic and Pokémon
- Track a card's lowest price and the 30-day median change in BRL
- Find the cheapest copy in the condition and language you want across every seller
- Monitor promotions by discount or by time left, and graded slabs by certificate
Questions developers ask before integrating
Which games does the MYP Cards API cover?
24 games, including Magic: The Gathering, Pokémon, Yu-Gi-Oh!, Disney Lorcana, One Piece, Riftbound, Digimon, Flesh and Blood, Gundam, Star Wars: Unlimited and Dragon Ball Super, plus sealed product, accessories and other non-card products. Choose one with game; for sealed product combine a game with the category parameter.
Do I get every seller's offer, or only the cheapest?
Every offer the product page lists, cheapest first, up to 500 in one call. Each has the BRL price, the price before any discount, units, condition, language, finish, the seller's notes and photo links. In our test one Pokémon card returned 68 offers from a single call.
Can I filter a card's offers by condition or language?
Yes. On card, condition, language, finish_name and seller narrow the offers, for example NM copies in English. On search, condition, language, seller state, price range, rarity, finish, color and type filter the results.
Does it include graded card prices?
Yes, with no extra steps. card returns graded offers with grader, grade, certificate number and a link to the certificate; graded lists slabs for sale across the site, and search with graded_only returns products that have graded copies, each with the lowest graded price.
Does it include price history or sold prices?
No. MYP Cards shows the price chart only to logged-in users, and this API does not use accounts. What it does return is the lowest and average asking price, the TCGplayer reference and the change in the median over the last 30 days.
Are names in Portuguese or English?
Both where the site has both. Search rows return the Portuguese name in name and the original name in name_original when the site lists one. Rarity, condition and language labels are kept in Portuguese as the site writes them, with short codes such as NM and EN for filtering.
What is the MYP Cards API?
MYP Cards API is a ReefAPI endpoint group for brazil's card marketplace in brl: magic, pokémon, yu-gi-oh! and 21 more games, with every seller's offer. It returns live JSON through POST requests under /mypcards/v1.
Is the MYP Cards API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. MYP Cards calls use the same shared credit balance as every other ReefAPI engine.
Do I need a MYP Cards login or account?
No login to MYP Cards is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the MYP Cards data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the MYP Cards API use?
MYP Cards actions currently cost 2-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call MYP Cards from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call mypcards actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the MYP Cards API a MYP Cards scraper?
It is the managed alternative to a DIY MYP Cards scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same brazil's card marketplace in brl: magic, pokémon, yu-gi-oh! and 21 more games, with every seller's offer back as clean JSON.
Why does my MYP Cards scraper keep getting blocked?
Most MYP Cards scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked calls are free.