Outpost.be Scraper — TCG Card Prices & Stock avatar

Outpost.be Scraper — TCG Card Prices & Stock

Pricing

from $1.80 / 1,000 products

Go to Apify Store
Outpost.be Scraper — TCG Card Prices & Stock

Outpost.be Scraper — TCG Card Prices & Stock

Scrape outpost.be, the Belgian game-center webshop: Magic, Pokémon, Yu-Gi-Oh! and Riftbound singles with price and stock per condition, plus sealed product and board games. Whole sets, search or URLs, optional card details and price-change tracking.

Pricing

from $1.80 / 1,000 products

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Outpost.be Scraper

Extract trading card, sealed product and board game listings from outpost.be, the webshop of the Belgian Outpost game centers, with the price and stock of every card condition. Covers Magic: The Gathering, Pokémon, Yu-Gi-Oh!, Riftbound, board games, accessories and roleplaying games. No API key or account required.


Why this scraper?

🃏 Price and stock per condition

Every card comes with its NM/M, EX/GD, SP/P, HP and PR offers: price, stock count and SKU for each, plus flat priceNMstockPR columns for spreadsheets.

🗂️ Whole sets in one go

Pick a game and the scraper reads its collections (card sets, sealed product, board game families) newest first, or narrow down with a set name such as "Black Bolt" or "Commander".

🔎 Search, sets or single products

Use the shop's own search, a list of games, or paste any catalog, set, search or product URL.

✨ Rich card data

Set, rarity and rarity code, language, finish (foil, holofoil, reverse holofoil …), MTG colours, Pokémon energy types, unique graded or scanned copies with front and back scan images.

📖 Full product pages on request

Turn on Fetch product pages for card text with mana symbols, type line, artist, collector number, Yu-Gi-Oh! level, attribute and ATK/DEF, Pokémon HP and evolution stage, flavour text, release date, image gallery, and for board games the publisher, genre, player count and description.

📈 Price and stock monitoring

Every row is compared with earlier runs: NEW, PRICE_DROP, PRICE_INCREASE, BACK_IN_STOCK, SOLD_OUT, STOCK_CHANGE or UNCHANGED, with the previous price and stock. Schedule it with Only new or changed products for a daily alert feed.


Input parameters

ParameterTypeDefaultDescription
catalogsarray[]Games to scrape: magic, yugioh, pokemon, riftbound, boardgames, accessories, roleplaying, other. With no catalog, search or URL, the newest Pokémon sets are used.
maxCollectionsPerCataloginteger3Number of collections (sets) per game, newest first. Collections with no matching products are skipped (up to 4× this number are checked). 0 reads every collection.
collectionFilterarray[]Only collections whose name or group contains one of these words, e.g. "Black Bolt", "Scarlet & Violet", "Booster".
searchQueriesarray[]Terms for the shop search, e.g. "charizard", "OP12".
startUrlsarray[]Outpost.be catalog, collection, search or product URLs. A product URL always returns the full product-page record and is billed as a product with details.
inStockOnlybooleanfalseOnly products with at least one condition in stock.
raritiesarray[]Only these rarities, by name or code, e.g. "Mythic", "SIR".
languagesarray[]Only cards in these languages, e.g. "English", "Japanese".
minPriceinteger(empty)Minimum lowest price in EUR.
maxPriceinteger(empty)Maximum lowest price in EUR.
fetchDetailsbooleanfalseAlso read each product page (slower, billed as a product with details).
onlyChangesbooleanfalseOnly return new products and products whose price or stock changed since earlier runs.
maxItemsinteger50Maximum number of products. 0 means no limit.

Output schema

Every field is present on every record. Values the shop does not publish for a product are null (or an empty array).

Always present

FieldTypeDescription
idstringUnique product key, {refType}-{refId}
refTypestringProduct type in the shop: magic, pokemon, ygo, boardgames, other
refIdstringProduct number within its type
urlstringProduct page URL
namestringProduct or card name
productKindstringListing layout: Magic: The Gathering, Pokémon, Yu-Gi-Oh!, Board game, Accessory / sealed product …
gamestringGame the card belongs to (null for accessories and other games)
catalogIdintegerShop catalog number (null for search and product-page results)
catalogNamestringShop catalog name, e.g. "Pokémon"
collectionIdintegerCollection (set) number
collectionNamestringCollection name, e.g. "Black Bolt"
collectionGroupstringHeading the collection sits under, e.g. "Scarlet & Violet", "Expansions (Foil)"
setNamestringSet printed on the listing
raritystringRarity name, e.g. "Mythic", "Special Illustration Rare"
rarityCodestringShop rarity code, e.g. M, SIR
languagestringCard language; for sealed product, the language named in the product title (null when the title names none)
finishstringFoil, Non-foil, Normal, Holofoil, Reverse Holofoil, Cosmo Holofoil, Shatterfoil …
isFoilbooleanTrue for any foil or holo finish
isUniquebooleanTrue for a one-of-a-kind copy sold with its own scans
colorsarrayMagic colours (White, Blue, Black, Red, Green, Colorless)
energyTypesarrayPokémon energy types (Fire, Water …)
imageUrlstringListing thumbnail
imageUrlLargestringFull-size image
extraImageUrlsarrayAdditional images (e.g. card back)
scanFrontUrlstringOriginal front scan (unique copies only)
scanBackUrlstringOriginal back scan (unique copies only)
playTimestringBoard game duration, e.g. "30 minutes"
playersMinintegerBoard game minimum players
playersMaxintegerBoard game maximum players
minAgeintegerBoard game minimum age
listPricenumberPrice shown in the listing header (EUR)
pricenumberNear Mint price, or the single price of a sealed product (EUR)
currencystringAlways EUR
offersarrayOne entry per condition: condition, conditionCode, conditionName, skuId, price, stock, inStock, isPreorder, availability
conditionsListedarrayConditions with a price
conditionsInStockarrayConditions currently in stock
priceNM / priceEX / priceSP / priceHP / pricePRnumberPrice per condition (null when not offered)
stockNM / stockEX / stockSP / stockHP / stockPRintegerStock per condition
lowestPricenumberLowest listed price over all conditions
highestPricenumberHighest listed price over all conditions
lowestPriceInStocknumberLowest price of a condition that is in stock
totalStockintegerUnits in stock over all conditions
inStockbooleanAt least one condition in stock
isPreorderbooleanSold as a pre-order
availabilitystringIN_STOCK, OUT_OF_STOCK or PREORDER
searchQuerystringSearch term that found the product (search results only)
sourceUrlstringShop page the product was read from
pageTitlestringTitle of that page
detailFetchedbooleanTrue when the product page was read
changeStatusstringNEW, PRICE_DROP, PRICE_INCREASE, BACK_IN_STOCK, SOLD_OUT, STOCK_CHANGE, UNCHANGED
firstSeenAtstringWhen this product was first returned by the actor
previousPricenumberPrice in the previous run (null for new products)
priceChangenumberPrice difference with the previous run
previousTotalStockintegerTotal stock in the previous run
contentHashstringStable 16-character hash of id and name
sourcestringAlways outpost.be
scrapedAtstringISO timestamp of extraction

With fetchDetails: true

FieldTypeDescription
cardNamestringName as printed on the product page
typeLinestringCard type, e.g. "Land - Planet", "Trainer - Tool"
manaCoststringMagic mana cost in {2}{W} notation
rulesTextstringCard text with symbols as {T}, {W}
rulesTextHtmlstringCard text as published (HTML)
flavorTextstringFlavour text
powerToughnessstringPower/toughness where published
hitPointsintegerPokémon HP (unique Pokémon copies)
evolutionstringPokémon evolution stage (unique Pokémon copies)
levelintegerYu-Gi-Oh! monster level / rank
monsterAttributestringYu-Gi-Oh! attribute (Light, Dark …)
attackDefensestringYu-Gi-Oh! ATK / DEF (or Link rating)
isFirstEditionbooleanTrue for Yu-Gi-Oh! 1st Edition prints (null otherwise)
artiststringCard artist
collectorNumberstringCollector number
specialPropertiesarraySpecial printing properties, e.g. "Foil"
releaseDatestringRelease date, YYYY-MM-DD
releaseDateTextstringRelease date as published
skuIdsarrayAll SKUs of the product
detailImageUrlstringMain product-page image
imageGalleryarrayAll product-page images
publisherstringBoard game publisher
genrestringBoard game genre
demoAvailablebooleanBoard game can be demoed in the game centers
descriptionHtmlstringProduct description (HTML)
descriptionTextstringProduct description (plain text)
descriptionMarkdownstringProduct description (Markdown)
otherAttributesobjectAny further attribute the product page lists

Example record

{
"id": "magic-145171",
"refType": "magic",
"refId": "145171",
"url": "https://www.outpost.be/website/index.php?option=com_outpostshop&view=detail&reftype=magic&refid=145171&Itemid=4",
"name": "All-Fates Scroll",
"productKind": "Magic: The Gathering",
"game": "Magic: The Gathering",
"catalogId": 1,
"catalogName": "Magic: The Gathering",
"collectionId": 129604589,
"collectionName": "Edge of Eternities",
"collectionGroup": "Expansions",
"setName": "Edge of Eternities",
"rarity": "Uncommon",
"rarityCode": "U",
"language": "English",
"finish": "Non-foil",
"isFoil": false,
"isUnique": false,
"colors": [
"Colorless"
],
"energyTypes": [],
"imageUrl": "https://central.outpost.be/webo/media/product/product-89078_1_thumb.webp?d=1784035309",
"imageUrlLarge": "https://central.outpost.be/webo/media/product/product-89078_1.webp?d=1784035309",
"extraImageUrls": [],
"scanFrontUrl": null,
"scanBackUrl": null,
"playTime": null,
"playersMin": null,
"playersMax": null,
"minAge": null,
"listPrice": 0.46,
"currency": "EUR",
"offers": [
{
"condition": "NM/M",
"conditionCode": "NM",
"conditionName": "Near Mint / Mint",
"skuId": "1114034",
"price": 0.39,
"stock": 4,
"inStock": true,
"isPreorder": false,
"availability": "IN_STOCK"
},
{
"condition": "EX/GD",
"conditionCode": "EX",
"conditionName": "Excellent / Good",
"skuId": "1114035",
"price": 0.36,
"stock": 0,
"inStock": false,
"isPreorder": false,
"availability": "OUT_OF_STOCK"
},
{
"condition": "SP/P",
"conditionCode": "SP",
"conditionName": "Slightly Played / Played",
"skuId": "1114036",
"price": 0.46,
"stock": 0,
"inStock": false,
"isPreorder": false,
"availability": "OUT_OF_STOCK"
},
{
"condition": "HP",
"conditionCode": "HP",
"conditionName": "Heavily Played",
"skuId": "1114037",
"price": 0.4,
"stock": 0,
"inStock": false,
"isPreorder": false,
"availability": "OUT_OF_STOCK"
},
{
"condition": "PR",
"conditionCode": "PR",
"conditionName": "Poor",
"skuId": "1114038",
"price": 0.34,
"stock": 0,
"inStock": false,
"isPreorder": false,
"availability": "OUT_OF_STOCK"
}
],
"searchQuery": null,
"sourceUrl": "https://www.outpost.be/website/index.php?option=com_outpostshop&Itemid=4&view=productlist&catalogid=1&collectionid=129604589",
"pageTitle": "Magic: The Gathering, Edge of Eternities",
"conditionsListed": [
"NM/M",
"EX/GD",
"SP/P",
"HP",
"PR"
],
"conditionsInStock": [
"NM/M"
],
"totalStock": 4,
"inStock": true,
"isPreorder": false,
"availability": "IN_STOCK",
"lowestPrice": 0.34,
"highestPrice": 0.46,
"lowestPriceInStock": 0.39,
"priceNM": 0.39,
"stockNM": 4,
"priceEX": 0.36,
"stockEX": 0,
"priceSP": 0.46,
"stockSP": 0,
"priceHP": 0.4,
"stockHP": 0,
"pricePR": 0.34,
"stockPR": 0,
"price": 0.39,
"detailFetched": true,
"manaCost": "{3}",
"rulesText": "{T}: Add one mana of any color.\n{7}, {T}, Sacrifice this artifact: Draw X cards, where X is the number of differently named lands you control.",
"rulesTextHtml": "<img src=\"images/referenceimages/icons/magic_tap.png\">: Add one mana of any color.<br> <img src=\"images/referenceimages/icons/magic_7.png\">, <img src=\"images/referenceimages/icons/magic_tap.png\">, Sacrifice this artifact: Draw X cards, where X is the number of differently named lands you control.",
"cardName": "All-Fates Scroll",
"typeLine": "Artifact",
"artist": "Sam Guay",
"flavorText": "For navigating that which was, is, and will be.",
"releaseDateText": "1 August 2025",
"otherAttributes": {},
"detailImageUrl": "https://central.outpost.be/webo/media/product/product-89078_1.webp?d=1784035309",
"imageGallery": [
"https://central.outpost.be/webo/media/product/product-89078_1.webp?d=1784035309"
],
"releaseDate": "2025-08-01",
"skuIds": [
"1114034",
"1114035",
"1114036",
"1114037",
"1114038"
],
"specialProperties": null,
"collectorNumber": null,
"powerToughness": null,
"hitPoints": null,
"evolution": null,
"publisher": null,
"genre": null,
"demoAvailable": null,
"descriptionHtml": null,
"descriptionText": null,
"descriptionMarkdown": null,
"contentHash": "9dbb256cdc7152d1",
"source": "outpost.be",
"scrapedAt": "2026-09-15T12:52:16.552Z",
"firstSeenAt": "2026-09-15T12:52:16.552Z",
"previousPrice": null,
"priceChange": null,
"previousTotalStock": null,
"changeStatus": "NEW",
"level": null,
"monsterAttribute": null,
"attackDefense": null,
"isFirstEdition": null
}

Examples

Newest Pokémon sets, English cards in stock:

{
"catalogs": ["pokemon"],
"maxCollectionsPerCatalog": 3,
"languages": ["English"],
"inStockOnly": true,
"maxItems": 500
}

Every Magic card from one set, with full card text:

{
"catalogs": ["magic"],
"collectionFilter": ["Edge of Eternities"],
"maxCollectionsPerCatalog": 0,
"fetchDetails": true,
"maxItems": 0
}

Search for high-value Charizard cards:

{
"searchQueries": ["charizard"],
"minPrice": 50,
"maxItems": 100
}

Scrape specific shop pages:

{
"startUrls": [
{ "url": "https://www.outpost.be/website/index.php?option=com_outpostshop&Itemid=4&view=productlist&catalogid=11&collectionid=132965674" },
{ "url": "https://www.outpost.be/website/index.php?option=com_outpostshop&view=detail&reftype=boardgames&refid=9217&Itemid=4" }
],
"maxItems": 0
}

Daily price-drop and restock feed (schedule it):

{
"catalogs": ["pokemon", "magic"],
"maxCollectionsPerCatalog": 10,
"onlyChanges": true,
"maxItems": 0
}

💰 Pricing

$2.00 per 1,000 products. You only pay for products delivered to your dataset. Failed retries are never charged.

ProductsCost
100~$0.20
1,000~$2.00
10,000~$20.00
100,000~$200.00

With Fetch product pages on, each product is billed at $2.99 per 1,000.

Flat-rate alternatives typically charge $29–$49/month regardless of usage.

Subscription tiers lower the product rate to $1.90 (Silver) and $1.80 (Gold, Platinum and Diamond) per 1,000. Use Max products to control your spend exactly.


Performance

Run sizeTypical time
50 products (default)2–4 minutes
One full set (200–1,700 products)1–2 minutes
A whole game catalog (Magic: ~750 collections)about 1–1.5 hours; raise the run timeout
1,000 products with product pages60–100 minutes

Whole sets load in one request each, so list-only runs are fast. Product pages are read one by one, about 10–15 per minute; raise the run timeout for large detail runs.


Known limitations

  • "Newest" collections are the ones most recently added to the shop, which can include announced sets that list no products yet; those are skipped automatically.
  • The same collection can appear under several headings (board games are listed by genre, family and publisher); products are returned once per run.
  • Collector number, artist and release date come from the product page, so they need Fetch product pages. Not every product page lists every attribute.
  • Prices are the shop's own sell prices in EUR; the shop does not publish buy-list prices.
  • The shop refuses very broad search terms (for example "dragon") and returns no list; use a more specific term, or the catalogs input with a collection filter.

Technical details

  • Source: outpost.be — webshop of the Outpost game centers in Antwerp, Ghent and Brussels
  • Coverage: Magic: The Gathering, Pokémon, Yu-Gi-Oh!, Riftbound, board games, accessories, roleplaying and other games
  • Memory: 1024 MB
  • Change tracking: key-value store outpost-be-scraper-history, 180-day memory
  • Retry: automatic retry on network errors with exponential backoff

Rate this actor

If this scraper does its job, a short review on the Reviews tab helps other users find it. Something not working? Open an issue on the Issues tab instead — issues get fixed.


Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl