How to Import and Export Listings with CSV
The CSV import/export tools let you create or update many auction listings at once from a spreadsheet, instead of adding them one at a time. Export your current listings to a file, or build a file from the template and import it.
You'll find these tools on your Products page:
- Import - upload a CSV file to create or update listings.
- Export - download the listings you've selected as a CSV file. (Select at least one product first; the button is disabled when nothing is selected.)
- Download .csv template - get a starter file with sample rows and the correct column headers.
The fastest way to start is to download the template, open it in Excel, Google Sheets, or Numbers, replace the sample rows with your own, and import it.
How importing works
1. On the Products page, click Import.
2. Drop in (or choose) your .csv file.
3. A preview grid shows every row. Any problems are flagged inline - errors are highlighted in red and warnings in orange. You can fix values right in the grid before importing.
4. Click to import. Larger files are processed in the background, and the full result is emailed to you when it finishes.
A few things to know:
- The file must be a .csv. Save your spreadsheet as "CSV" before uploading.
- The first row must be the column headers (the template already has them).
- If any row has an error, the whole file is rejected — fix the flagged cells and try again. Warnings don't block the import; they just tell you a default was applied.
- Only one import can run at a time. If you start another while one is still processing, you'll be asked to wait until it finishes.
The columns
Every column except sku has a sensible default, so you only need to fill in what matters to you. Here's what each one does.
sku
Your unique code for the listing - this is how the importer matches a row to an existing listing (see "Updating existing listings" below). If you leave it blank, one is generated for you. Want to attach more than one image to a listing? Use the same SKU on multiple rows (see image below).
title
The listing's name. If left blank, the SKU is used as the title.
description
The listing description. Optional, free text.
tags
Labels for the listing (for example: lps, sps, soft). Optional.
status
One of: published, unpublished, archived, deleted. Leave it blank to default to published. Any other value is an error.
bidStart
When the auction opens. Use the format YYYY-MM-DD HH:mm:ss (for example, 2026-06-29 21:00:00). MM/DD/YYYY also works. Times are in your account's time zone. Leave it blank to start the auction right away.
bidEnd
When the auction closes. Same date format as bidStart. Leave it blank to default to one week after bidStart.
startBidAmount
The opening bid, in dollars (for example, 25 or 25.50). Must be a number.
minIncrementAmount
The smallest amount a bid can go up by, in dollars (for example, 2 or 5). Must be a number.
reservePrice
The minimum price you'll accept, in dollars. Leave it blank to have no reserve.
price
The Buy Now price, in dollars. If left blank, it defaults to $1 above your reserve price (or $1 if you have no reserve) - blank does not mean "no Buy Now." A price you set below the reserve is automatically raised to reserve + $1. Always set this to provide a benchmark for bidders.
image
A full image URL (starting with http:// or https://). To add several images to one listing, put each image on its own row and give those rows the same SKU - they're combined into a single listing.
overwriteExisting
Controls what happens when a row's SKU already matches one of your listings. Note: this column is not included when you export listings - you add it yourself when you want a re-import to update existing listings. See below.
The overwriteExisting flag
When you import a row, the system looks for an existing listing with the same SKU.
- If no listing has that SKU, a new listing is always created - overwriteExisting doesn't matter.
- If a listing with that SKU already exists, overwriteExisting decides what happens:
- Set it to TRUE (also accepts true, 1, or yes) to update the existing listing with the values in your row.
- Leave it blank or set it to FALSE to skip that row and leave the existing listing untouched. The result report marks it "duplicate sku skipped."
One important exception: a listing that has already sold (it's part of a paid order) is never overwritten, even with overwriteExisting set to TRUE. Those rows are skipped and the report tells you which order the SKU belongs to.
Use overwriteExisting = TRUE when you're re-importing to correct or refresh listings you already have. Leave it off when you only want to add new listings and never disturb existing ones.
How exporting works
You must select listings before you can export - the Export button stays disabled until at least one product is checked, and only the listings you select are included in the file.
1. On the Products page, check the box next to each listing you want to export.
2. Click Export. A CSV file of just those listings downloads to your computer.
The export uses the same columns as the import (minus overwriteExisting), so you can edit the file and import it straight back. Dates are written in your time zone, prices are in dollars, and a listing with multiple images lists them separated by a | character.
A common workflow is to export your listings, make your edits in a spreadsheet, set overwriteExisting to TRUE, and import the file again to apply the changes.
Good to know
- Prices are always in dollars (e.g., 25.50), never cents.
- Blank cells fall back to the defaults described above — you don't have to fill in every column.
- Dates and times use your account's time zone.
- Keep your SKUs stable. Because matching is by SKU, changing a SKU makes the importer treat the row as a brand-new listing.
- Import results are emailed to you, with a per-row status (created, updated, skipped, or error), so you always know exactly what happened.