Bulk Import helps you add many cards and sealed products to a portfolio or wishlist without entering everything one by one.
You can paste a Text List, upload a CSV file, or use Card Scan. Every method ends in the same review screen, and nothing is saved until you click Import products.
The safe import flow
Text List
Best for: Fast pasted lists and small batches.
Type one product per line. Add quantity, card number, set, grade, or other matching details when you have them.
CSV Import
Best for: Migration from other platforms, including Collectr exports, plus spreadsheets and purchase history.
Collectr-style column names are supported. Upload a CSV, map the columns, then review normalized rows before saving anything.
Card Scan
Best for: Physical cards in front of you.
Use your camera or a photo. CollectHolo identifies the card, then sends it through the same review flow.
Card Scan is explained in more detail in the Card scanning guide. The rest of this page focuses on Text List and CSV Import because those are the easiest ways to move an existing collection into CollectHolo.
Text List is the fastest option when you already have a plain list. Put one product on each line. Add details only when they help: quantity, collector number, set, grade, printing, or Cardmarket ID.
Charizard 4/102 Base Set
3x Pikachu 25/102 Base Set
Gengar & Mimikyu GX 038/095 CGC 8.5
Paldea Evolved Booster Box
Pikachu ex 219/191 ARS 10+| Example | What it means |
|---|---|
| Charizard | Name only. Good for simple cards, but it may need review. |
| Charizard 4/102 | Name plus collector number. Much easier to match. |
| 3x Charizard 4/102 Base Set | Quantity, card number, and set in one line. |
| Paldea Evolved Booster Box | Sealed product by name. |
| 2x Paldea Evolved Booster Box | Two copies of a sealed product. |
| Charizard 4/102 PSA 10 | Graded card with grader and grade. |
| Gengar & Mimikyu GX 038/095 CGC 8.5 | Modern graded format with set number. |
| Pikachu ex 219/191 ARS 10+ | Supported grade variant. |
| cm:869807 | Cardmarket ID only. |
| 2x cm:869807 | Two copies matched by Cardmarket ID. |
Control rows change the default settings for the lines below them. They are useful when a whole section has the same language, condition, quantity, printing, or grade.
language: japanese
condition: near mint
printing: holofoil
Gengar & Mimikyu GX 038/095
Pikachu 001/028
language: german
qty: 2
Glurak ex 234/091language: japanese
Use Japanese for every product below this line.
condition: played
Use Played for every ungraded card below this line.
qty: 3
Use quantity 3 for rows below this line.
printing: reverseHolofoil
Use this printing until another printing line appears.
grade: PSA 10
Treat rows below this line as PSA 10 unless a row says otherwise.
Cardmarket IDs in Text List
cm:869807, 2x cm:869807, or cardmarket_id: 869807. A line that is only a number is not treated as a Cardmarket ID because it could also be a card number.CSV Import is best for spreadsheets, exports from another tracker, Collectr-style files, purchase history, and larger collection moves. A CSV file can be up to 5 MB, and the first 1,000 rows are imported.
Start with one of the templates if you can. They already use headers that map cleanly in CollectHolo.
For matching, the most useful columns are product_name, collector_number, set_name, and printing_variance. You can also use cardmarket_id instead of a product name.
product_name,cardmarket_id,collector_number,set_name,product_kind,language,quantity,grade,condition,printing_variance| Column | Use it for |
|---|---|
| product_name | Card or sealed product name. Required unless cardmarket_id is mapped. |
| cardmarket_id | Cardmarket product ID. |
| collector_number | Card number such as 4/102, 234/091, or 085/SVP. |
| set_name | Set or expansion name. Helps reduce review work. |
| product_kind | Use card or sealed when the name could be ambiguous. |
| language | Use en, de, it, ja, ko, or zh. |
| quantity | Number of copies. Missing values use the batch default. |
| grade | Use formats like PSA 10, CGC 8.5, ACE 10, AGS 10 LG, or ARS 10+. |
| condition | Raw card condition. Ignored for graded and sealed rows. |
| printing_variance | Printing or finish, such as holofoil or reverseHolofoil. |
Name-based rows work best when you include the card number and set. Useproduct_kind for sealed products.
product_name,collector_number,set_name,product_kind,language,quantity,grade,condition,printing_variance
Charizard ex,234/091,Pokemon Card 151,card,en,1,,Near Mint,holofoil
Gengar & Mimikyu GX,038/095,Tag Bolt,card,ja,1,CGC 8.5,,holofoil
Prismatic Evolutions Pokemon Center Elite Trainer Box,,Prismatic Evolutions,sealed,en,2,,,Rows with cardmarket_id are useful when your source data already includes the Cardmarket product ID. Put the positive whole-number ID in that column. If your source does not include one, use product_name and the matching columns instead.
cardmarket_id,product_kind,language,quantity,condition,printing_variance
869807,card,en,1,Near Mint,holofoil
278108,sealed,en,2,,
301165,card,de,1,Near Mint,reverseHolofoilIf you import into a portfolio, you can also bring in cost-basis data. Wishlist imports ignore portfolio-only purchase fields.
purchase_price
What you paid before shipping.
currency
EUR or USD.
shipping_cost
Optional shipping cost.
purchase_date
YYYY-MM-DD or DD/MM/YYYY.
store
Seller or shop name.
notes
Private notes copied onto the imported row.
certification_id
Slab or certificate number.
The review screen is where you check the import before it touches your portfolio or wishlist. This is the safety step: rows can be edited, matched manually, or removed.
Ready
The row has a clear product, destination, condition or grade, and variant. It can be imported.
Needs review
CollectHolo found possible matches, but you must choose the right one before importing.
Error
The row is missing something required or cannot be matched. Fix it or remove it.
Cardmarket IDs are also reviewed safely. If one ID points to multiple products, or matches both sealed and card catalog rows, CollectHolo asks you to choose. It does not silently pick the first result. If you choose a product manually, that manual choice replaces the imported match hint.
Too many rows need review
Add collector_number and set_name, or use cardmarket_id when you have it.
A sealed product matches poorly
Set product_kind to sealed and use the full sealed product name.
A card asks for a printing
Add printing_variance, for example holofoil, reverseHolofoil, or firstEdition.
A slab imports like a raw card
Put the grader and grade in grade, for example PSA 10, CGC 8.5, or ARS 10+.
Cardmarket ID does not match
Use the positive whole number from your Cardmarket ID source.