BulkListingProBulkListingPro Install Free
Blog · How-to · 7 min read

How to prep a CSV for Etsy bulk listing (with template)

A small set of rules that make the difference between a clean import and an afternoon of debugging. Including a free template you can copy and go.

Michael Smyth
Etsy CSV Template Guide

Almost every bulk upload failure I've seen comes down to one thing: a malformed CSV. Not a bug in the tool, not a problem with Etsy — a missing comma, a weird encoding, an empty cell that got silently dropped. The CSV is the single source of truth for your batch, and if it's wrong, every row downstream is wrong.

Good news: the rules are short. If you follow them, your first bulk upload works. If you don't, you'll spend an hour figuring out why your fifty "Mountain SVG" products all got imported with the price in the tags field.

The required fields

Etsy has a handful of fields that must be populated on every new listing. Skip any of these and the listing won't save. In your CSV, these columns must exist and each row must have a value:

For digital products, you also need a digital_file_1 column with the path to the PDF, ZIP, SVG, or whatever file the buyer is going to download. Etsy won't save a digital listing without the file attached.

The format rules that actually matter

These are the four format rules that cause 90% of failed imports.

1. UTF-8 encoding

Save as UTF-8. Not Windows-1252, not Latin-1. If you're using Excel on Windows, this is easy to get wrong — Excel defaults to Windows-1252, which silently breaks any special character you have in a title (em dashes, curly quotes, accented letters). Always save with "UTF-8" selected in the Save As dialog, or export from Google Sheets which defaults to UTF-8.

2. Preserve empty cells

If a cell is empty, it must still exist in the row as a placeholder. In CSV, this means double commas. A valid row with an empty description between title and price looks like:

Sunset Mountain SVG,,4.99,999,sunset.jpg,sunset-bundle.zip

Note the two commas after the title. If you leave the column out entirely, every column after it shifts left by one and your price ends up in the description slot. Bulk import disaster.

3. No quotes around numbers or simple strings

Quotes only for values that contain commas or line breaks. Most CSV tools handle this automatically, but if you're hand-editing, a row like "4.99" for the price will sometimes parse as a string and fail validation. Leave it as 4.99.

4. One product per row

It sounds obvious, but people with variations often try to cram them into one row with pipe-separated fields (size1|size2|size3). Don't. Each variation gets its own row. BulkListingPro can generate the SKU column automatically so duplicates are clear.

The columns you can leave blank (and let AI fill)

Here's where the workflow gets fast. These columns can be blank in your CSV, and BulkListingPro will generate or infer them:

Column AI can generate? Notes
titleYesBetter to let AI draft than hand-write 100 titles
descriptionYesAI writes SEO-aware descriptions from the image
tagsYesGenerates 13 category-tuned tags per listing
materialsYesGuessed from category (skippable for digital)
who_madeDefaultedDefaults to "i_did" unless you override
when_madeDefaultedDefaults to "made_to_order" for digital
sectionDefaultedFalls back to shop default
skuYesAuto-generated from title if blank

The practical workflow: fill in title manually (optional), category, price, quantity, image path, digital file path — leave the rest blank — run AI generation after import.

Step-by-step: build your first CSV

Here's the fastest path from "I have fifty new products" to "CSV ready to import":

  1. Download the BulkListingPro template. It's an XLSX with every supported column, pre-labeled, with example rows. You can find it inside the extension or on the main site.
  2. Delete the example rows once you understand the format.
  3. For each product, fill in: category, price, quantity, and image filename. If you have a pre-written title, add it; otherwise skip.
  4. Skip tags, description, materials, who_made, when_made — AI will handle them.
  5. Put all your product images in one folder and use bare filenames (e.g., mountain-sunset.jpg, not C:\Users\me\images\mountain-sunset.jpg). BulkListingPro will ask for the folder on import.
  6. Same for digital files — one folder, bare filenames in the digital_file_1 column.
  7. Save as XLSX (easiest) or CSV with UTF-8 encoding.
  8. Import into BulkListingPro. It'll validate every row, flag anything malformed, and drop you into the editor with everything ready for AI generation.

Mistakes I see on every first-timer's CSV

Even with the rules written down, these are the four that trip everyone up on their first batch:

Currency symbols in the price column. $4.99 fails to parse. Use 4.99.

Tags as a single string instead of 13 separated values. Tags should be a comma-separated string within a CSV cell that's itself quoted, like "boho,minimalist,digital download,svg". BulkListingPro accepts this format and splits into individual tags on import.

Missing image file. The CSV has mountain.jpg in the image column, but there's no mountain.jpg in your images folder. BulkListingPro catches this on import and flags the row, but it still slows you down.

Category typos. Etsy's categories are strict. "Craft Supply" isn't a category — "Craft Supplies & Tools" is. If you're hand-typing categories, copy them from Etsy's category picker or use the BulkListingPro category helper.

The shortest possible valid CSV

Just to prove it: here's the minimum viable CSV for a bulk Etsy upload. Three rows of listings, only the required fields:

title,category,price,quantity,image_1,digital_file_1
Mountain Sunset SVG,Craft Supplies & Tools > Paper Craft Supplies > Patterns & How To,4.99,999,mountain.jpg,mountain.zip
Beach Scene SVG,Craft Supplies & Tools > Paper Craft Supplies > Patterns & How To,4.99,999,beach.jpg,beach.zip
Forest Path SVG,Craft Supplies & Tools > Paper Craft Supplies > Patterns & How To,4.99,999,forest.jpg,forest.zip

Drop this into BulkListingPro, run AI generation for titles and tags and descriptions, review, upload. Forty minutes later you have three clean listings live on Etsy. Not the most exciting batch, but it proves the format works.

When to go beyond the minimum

Once the minimum CSV is working, start adding columns as you need them:

For most digital product sellers, the minimum plus images is all you'll ever need. Extra columns are for specific edge cases.

Frequently asked questions

What CSV format does BulkListingPro accept for Etsy uploads?

BulkListingPro accepts standard CSV (comma-separated values) and XLSX files. The file should be UTF-8 encoded, use commas as separators, and preserve empty cells (leave a placeholder comma, don't omit the column). A reference template is available for download inside the extension.

Can I use XLSX instead of CSV for Etsy bulk uploads?

Yes. BulkListingPro reads both .csv and .xlsx files. XLSX is often easier to work with because Excel and Google Sheets handle the formatting quirks automatically (preserved empty cells, UTF-8 encoding). CSV is useful if you're generating the file from another system or script.

Do I need every Etsy listing column filled in?

No. Only a handful are strictly required: title, category, price, quantity, and at least one image. Tags, description, materials, who-made, when-made, and most other fields can be blank and either filled in via AI generation or left as Etsy's defaults. The CSV column still has to exist — just leave the cell empty.

How do I add image paths to my Etsy CSV?

BulkListingPro accepts either absolute file paths or filenames that resolve against a folder you pick during import. The simplest approach is to keep all product images in one folder, use just the filename in your CSV (e.g., 'sunset-svg-01.jpg'), and point BulkListingPro at that folder when it asks. Digital product files work the same way.

Related on the BulkListingPro blog

Skip the formatting pain

BulkListingPro ships with a tested Etsy CSV template. Download, fill in, import.

Install Free from Chrome Web Store

10 free credits included. No credit card required.