Back to Blog

Export Data from Etsy to CSV or Import It to Google Sheets to Analyze Sales Activity

How often do you export data from your Etsy shop? Not enough, likely. However, recently we’ve faced an interesting use case. One Etsy shop owner wanted to sum up her stats for the year to reward the most loyal customers. For this, she needed to export the Etsy order report in CSV to Google Sheets. In this blog post, we’ll explain how she handled the task and what exporting options are available in Etsy.

What data can I download from my Etsy shop?

Etsy allows its sellers to download the following shop data: 

  • Currently for Sale Listings in CSV including title, description, tags, and other data.
  • Orders in CSV that include two types of reports:
    • Order CSV report – sales data at the order level.
    • Order Item CSV report – sales data at an individual item level.
  • Shop Settings in JSON including the name, announcement, and other descriptive information.
  • Customer reviews in JSON

CSV and JSON data are downloaded as CSV and JSON files to your device, respectively. 

Download CSV from Etsy

Etsy allows you to download information about orders and active listings of your Etsy shop, as a CSV file.

Etsy orders report in CSV 

Etsy users can download sales data in the form of two types of reports: Order CSV and Order Item CSV. Check out the difference between two of them in terms of fields that will be exported:

Order CSV reportOrder Item CSV report
– Sale Date
– Order ID
– Buyer User ID
– Full Name
– First Name
– Last Name
– Number of Items
– Payment Method
– Date Shipped
– Street 1
– Street 2
– Ship City
– Ship State
– Ship Zipcode
– Ship Country
– Currency
– Order Value
– Coupon Code
– Coupon Details
– Discount Amount
– Shipping Discount
– Shipping
– Sales Tax
– Order Total
– Status
– Card Processing Fees
– Order Net
– Adjusted Order Total
– Adjusted Card Processing Fees
– Adjusted Net Order Amount
– Buyer
– Order Type
– Payment Type
– InPerson Discount
– InPerson Location
– SKU
– Sale Date
– Item Name
– Buyer
– Quantity
– Price
– Coupon Code
– Coupon Details
– Discount Amount
– Shipping Discount
– Order Shipping
– Order Sales Tax
– Item Total
– Currency
– Transaction ID
– Listing ID
– Date Paid
– Date Shipped
– Ship Name
– Ship Address1
– Ship Address2
– Ship City
– Ship State
– Ship Zipcode
– Ship Country
– Order ID
– Variations
– Order Type
– Listings Type
– Payment Type
– InPerson Discount
– InPerson Location
– VAT Paid by Buyer
– SKU

How to export orders from Etsy to CSV 

To download either of the reports, go to Shop manager => Settings => Options and select the Download Data tab.

Find the Orders section, choose the type of CSV report and period (month and year) and click Download CSV

You now have a CSV file with your sales data on your device. You can import this file into Google Sheets or another spreadsheet app to process the data. This is how it looks in Google Sheets:

Alternatively, you can upload the CSV file to your cloud storage, such as Google Drive or Dropbox, and export CSV data to Google Sheets from there.

How to export Etsy listings to CSV

In a similar way, you can export to CSV the information of the listings that are currently for sale in your shop. Again, go to Shop manager => Settings => Options => Download Data tab. Click “Download CSV” in the Currently for Sale Listings section, and the file will be exported to your device.

After the import to Google Sheets, the data will appear as follows:

Export data from Etsy to Google Sheets

Would you agree that the Etsy native exporting functionality is rather scarce? Some users may need to process other valuable data such as receipts, transactions, and many others. Actually, this is possible using the Etsy API, but it’s not that obvious. We’ll explain the basics and show how you can import some data using Coupler.io. You’ll have to complete two major steps:

  • Get an Etsy API key
  • Set up the JSON Client importer to import data

Let’s go step by step.

How to get an Etsy API key 

An API key is a required parameter to import data from Etsy. To get it, you’ll need to register a “dummy” Etsy app. Follow this link to create a new Etsy app.

Fill out the following fields:

  • Application name
  • Application description
  • Application website (you can leave it blank)

Then mark the following checkboxes:

Once ready, click Read Terms and Create App and agree to the Etsy API Terms of Use. Another click on Create App and there you go!

This procedure was needed mostly to get the KEYSTRING (here, “f36sdf6v4h21ldoekrmns5pk“), which we will use to import data with Coupler.io. 

Install Coupler.io to import data via APIs to Google Sheets

Coupler.io is an all-in-one solution for importing data to Google Sheets from different sources including apps (Airtable, Pipedrive, Xero, etc.) and data sources (CSV, XLSC, JSON). Since most REST APIs interchange data in JSON format, you can use Coupler.io to import JSON data to spreadsheets without coding. As an example, check out how to export data from Shopify.

To start using the tool, install Coupler.io from Google Workspace Marketplace.

After that, open your spreadsheet and go to Add-Ons => Coupler.io => Open Dashboard. Click +Add importer and choose JSON Client. 

Now, let the magic begin 🙂

How to import data via Etsy API

To import data using the Etsy API, you need to use a JSON URL that matches a specific category of data you need. Let’s get a list of all data entities you can import. For this, enter the following URL in the JSON URL field of your JSON Client importer:

https://openapi.etsy.com/v2?api_key={KEYSTRING}
  • {KEYSTRING} – insert the KEYSTRING you obtained once created an Etsy app

Click Save&Run and welcome the data imported from Etsy in Google Sheets.

We’ve got 242 records of data entities or resources as they are called according to Etsy API documentation. However, we are going to use only those that fall under two categories:

  • results.http_method – GET (column I)
  • results.visibility – Public (column H)

Because GET is the type of requests to fetch data from API and public resources are what we can export with an API key without OAuth authorization.

Use the Google Sheets filter functionality to filter data by these two categories. Click on the Filter button on the toolbar:

After that, the filter icon appears next to the name of each column. Click the icon on the column you want to filter, and select the filter criteria. For example, here is how we filtered out the GET values in the results.http_method column:

Once we have filtered the values by two criteria (GET and public), we have 97 entities.

One of them is to import all active listings – what we’ve already done when exporting current for sale listings in CSV. Let’s check out how it works.

Import Etsy active listings to Google Sheets

In the results.uri column, you’ll find the URI to attach to the base Etsy API  URL. 

Base Etsy API URL is:

https://openapi.etsy.com/v2/

Note that there are a few URIs associated with active listings: 

  • /shops/:shop_id/listings/active – imports active listings of a certain Etsy shop. You can use the shop name as :shop_id
  • /listings/active – imports active listings of the entire Etsy marketplace (you can import the results from all Etsy shops filtered by country, keyword, price, etc.)

So, the JSON URL to import active listings should look as follows:

https://openapi.etsy.com/v2/listings/active?api_key={KEYSTRING}

Let’s import all active listings with the following filters:

  • Minimum price – $30
  • Maximum price – $40
  • Tag – necklace

Here are the parameters you should use in the JSON Client importer:

Source
JSON URLhttps://openapi.etsy.com/v2/listings/active?api_key={KEYSTRING}
HTTP MethodGET
URL query stringmin_price: 30
max_price: 40
tags: necklace

We’ve also specified the following destination Sheet Name (where your data will be imported to): “Active listings price <40 and >30“. Click Save&Run, and there you go!

You can see that some of the results have price values outside of the specified range; for example 27GBP and 285TRY. The default currency is USD, so Etsy can return results in other currencies that correspond to the specified range based on the actual currency rate.

Etsy will return results with a limit of 25 records per page. To get the next records, you need to use the “page=” parameter and specify the page number. 

In our example, to get the next 25 records, we should use the following JSON Client parameters:

Source
JSON URLhttps://openapi.etsy.com/v2/listings/active?api_key={KEYSTRING}
HTTP MethodGET
URL query stringmin_price: 30
max_price: 40
tags: necklace
page: 2
Settings
Import modeappend

Click Save&Run, and the next 25 records will be appended to the first imported data set:

Read our blog post to learn more about retrieving large data sets with paginated requests in REST APIs

How can I export receipts and other private data from Etsy?

With the solution above, you won’t be able to export certain data, such as expired listings or receipts. To get the private account data from Etsy (receipts, customer’s emails, etc.), you need to obtain OAuth credentials and make authorized requests to the Etsy API. It’s possible, but requires some additional manipulations and a bit of tech skill.

However, if this is definitely what you need, fill out this form and specify that you’d love to have a ready-to-use Etsy integration available at Coupler.io. Our team will do their best to make this happen. 

Use case: How to identify top buyers of your Etsy shop

To wrap up, let’s go back to our user who needed to export data from Etsy to identify which customers made the most purchases during the year. She downloaded the order report in CSV and uploaded it to Google Sheets, as we described above. The next steps were:

  • Calculating how many items each customer bought in 2020 
  • Calculating how much each customer spent in 2020 
  • Grouping these results by each unique customer

All these can be done using the Google Sheets QUERY function. Here is what the formula looks like:

=query(EtsySoldOrders2020!D:X; "select D, sum(G), sum(X) group by D")

Now, for this data set, we need to extract the top 5 customers by number of items bought and top 5 customers by total spending. QUERY function will do the job as well:

Top 5 by number of items:

=Query(A2:B; "select A,B where A<>'' order by B desc limit 5")

Top 5 by total spending:

=Query(A2:C; "select A,C where A<>'' order by C desc limit 5")

We hope that this use case will inspire you to reward your most loyal customers as well. Good luck with your data!

Back to Blog

Comments are closed.

Access your data
in a simple format for free!

Start Free