
How do I export an Apify dataset to Excel or sync it to Google Sheets?
Moving data from an Apify dataset into Excel or Google Sheets is a one-click operation in the Console, and a repeatable pipeline when you use the Apify API or integrations. You can do quick manual exports as CSV/Excel for ad‑hoc analysis, or keep Sheets synced automatically for dashboards, reporting, or downstream AI workflows.
The Quick Overview
- What It Is: Exporting an Apify dataset means taking the structured results of an Actor run (JSON by default) and downloading or streaming them as Excel/CSV, or pushing them into a live Google Sheet.
- Who It Is For: Data engineers, analysts, growth teams, and builders who run Apify Actors and want their results in spreadsheets for reporting, pivot tables, and lightweight modeling.
- Core Problem Solved: You don’t want to hand‑roll ingestion every time you scrape a site—Apify lets you export and sync datasets into Excel and Google Sheets directly, without babysitting files or writing glue scripts.
How It Works
Every Apify Actor run writes its results into a dataset. A dataset is a collection of JSON records you can:
- Inspect in the Apify Console.
- Export in multiple formats (JSON, CSV, Excel, HTML, XML).
- Access via URL or the Apify API.
- Stream into tools like Google Sheets using integrations (Zapier, Airbyte) or a simple script.
From there you have two main paths:
-
Manual export to Excel/CSV
Ideal for one‑off analyses: open the run → click Export → download an XLSX or CSV file → open in Excel or upload to Google Sheets. -
Automated sync to Google Sheets
Ideal for live dashboards: wire the dataset’s export URL or an Apify API call into Google Sheets (Apps Script, “Import” functions, or an integration like Zapier), and refresh on a schedule.
Typical workflow
-
Run an Actor and create a dataset:
Use a Store Actor (e.g., TikTok Scraper, Website Content Crawler) or your own Actor. Each run produces a dataset with a unique ID (e.g.,abc123). -
Export or connect that dataset:
- For Excel: Download as XLSX/CSV from the Console or via an HTTP export URL.
- For Google Sheets: Use the dataset’s CSV/JSON URL in Sheets, or connect via Zapier/Airbyte so Sheets updates when new runs finish.
-
Schedule and monitor:
Use Apify schedules so runs happen automatically, while Sheets/Excel pulls can refresh on your cadence (daily/ hourly), without you touching the scraper, proxies, or infrastructure.
Features & Benefits Breakdown
| Core Feature | What It Does | Primary Benefit |
|---|---|---|
| One‑click dataset export | Lets you download dataset results as CSV, Excel, JSON, and more. | Get scraped data into Excel or Sheets in seconds. |
| Dataset export URLs & API | Exposes every dataset via stable URLs and the Apify API. | Build repeatable Excel/Sheets sync pipelines. |
| Integrations (Zapier, etc.) | Connects Actors to Google Sheets and other apps without extra infra. | Keep reporting live without maintaining scripts or cron. |
Ideal Use Cases
- Best for quick Excel analysis: Because you can run an Actor, export to XLSX, and pivot/filter data without writing any code.
- Best for live Google Sheets dashboards: Because you can wire a dataset export URL or integration so that each Actor run refreshes your Sheet with fresh web data for KPIs, pricing, or content monitoring.
Manual export to Excel or CSV (via Apify Console)
For ad‑hoc exports, the Console is fastest.
-
Navigate to your dataset
- Go to the Apify Console.
- Open Actors → Runs, click the relevant run.
- In the run detail, open the Dataset linked to that run.
-
Export as Excel or CSV
- In the dataset view, look for Export / Download options.
- Choose your format:
- XLSX (Excel)
- CSV (works for both Excel and Google Sheets)
- Download the file and open it directly in Excel or upload to Sheets.
-
Clean and save
- Adjust column types, filters, or formulas in Excel/Sheets.
- Save as your working file, or import into BI tools if needed.
This route is ideal if:
- You’re exploring a new Actor.
- You’re doing a one‑time competitor analysis or product research.
- You don’t need the Sheet to keep updating automatically.
Programmatic export for Excel (via API/URLs)
If you want to automate the export into Excel workflows or integrate with a data pipeline, use the dataset’s export URL.
Get the dataset export URL
From the dataset view in the Console:
- Find the API or Export URL section.
- Copy the export URL for your desired format, e.g.:
https://api.apify.com/v2/datasets/abcd1234/items?format=xlsx
https://api.apify.com/v2/datasets/abcd1234/items?format=csv
You can add query params like:
&clean=1– remove internal fields and keep a clean tabular view.&delimiter=%2C– customize CSV delimiter if needed.
Use the URL in your tooling
- Data pipelines: Call that URL in Python, Node.js, or Airbyte to pull the latest dataset as CSV/Excel into your warehouse.
- Excel Power Query: Use Get Data → From Web and paste the CSV/XLSX URL so Excel refreshes from Apify.
When the Actor runs again and writes to the same dataset (or you point to a different dataset ID), your next refresh will pull updated data.
Sync an Apify dataset to Google Sheets (no‑code options)
Option 1: Import CSV/JSON via URL in Google Sheets
Google Sheets can pull external data via functions:
-
Make sure your dataset export URL is accessible
- Copy the CSV or JSON export URL from the dataset (as above).
- If needed, include your token as a query parameter (e.g.,
&token=YOUR_API_TOKEN) or ensure the dataset is shared appropriately.
-
Use
IMPORTDATAorIMPORTJSON(via script)-
In a cell in Google Sheets, use:
=IMPORTDATA("https://api.apify.com/v2/datasets/abcd1234/items?format=csv&clean=1") -
This pulls the CSV into your Sheet and fills rows and columns automatically.
-
For JSON, you can either:
- Use
IMPORTDATAwithformat=jsonand then transform, or - Use an
IMPORTJSONApps Script snippet if you prefer working with JSON.
- Use
-
-
Refresh
- Sheets periodically refreshes
IMPORTDATA. - You can also force a refresh (e.g., by editing the URL or using Apps Script triggers) on your own schedule.
- Sheets periodically refreshes
This works well if:
- You’re okay with Sheets refreshing on its own schedule.
- The dataset is not massive (Sheets still has cell limits).
Option 2: Zapier integration (Apify → Google Sheets)
Apify integrates easily with Zapier, which can write directly into Google Sheets.
Basic flow:
-
Create a new Zap
- Trigger: Apify – choose an event like “Actor run finished” or a webhook from your workflow.
- Action: Google Sheets – “Create Spreadsheet Row” or “Update Spreadsheet Row.”
-
Configure the trigger
- Point Zapier at the Actor or dataset you care about.
- Ensure Zapier gets access to the dataset item payloads (JSON records).
-
Map dataset fields to Sheet columns
- In the Zap editor, map fields like
title,price,url,timestampto corresponding columns in your Sheet.
- In the Zap editor, map fields like
-
Test and turn on
- Run an Actor.
- Confirm Zapier writes new rows into your Sheet as the Actor finishes.
This is ideal when:
- Non‑technical teammates rely on Sheets dashboards.
- You want each Actor run to append new rows, not overwrite the Sheet.
Option 3: Airbyte or similar to Google Sheets / warehouse
If your main sink is a warehouse (BigQuery, Snowflake, etc.) and Sheets is just another reporting layer:
- Use Airbyte to pull datasets from Apify (via the HTTP connector) into your warehouse.
- Connect Google Sheets to that warehouse for BI‑like views.
This gives you durable storage plus a spreadsheet view for exploration.
Sync an Apify dataset to Google Sheets (code‑friendly approach)
If you’re comfortable with JavaScript or Python, you can build a very explicit sync.
Using Apps Script in Google Sheets (CSV import)
-
Create a bound script
- In your Sheet: Extensions → Apps Script.
-
Add a function to fetch CSV from Apify
function refreshApifyData() { const url = 'https://api.apify.com/v2/datasets/abcd1234/items?format=csv&clean=1&token=YOUR_API_TOKEN'; const response = UrlFetchApp.fetch(url); const csv = response.getContentText(); const data = Utilities.parseCsv(csv); const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ApifyData'); sheet.clearContents(); sheet.getRange(1, 1, data.length, data[0].length).setValues(data); } -
Set a trigger
- In Apps Script: Triggers → Add Trigger.
- Choose
refreshApifyData, run it e.g. every hour/day.
Now your Sheet keeps a fresh copy of the dataset without manual downloads.
Limitations & Considerations
- Google Sheets size limits:
Sheets caps rows, columns, and total cell count. Large Apify datasets (hundreds of thousands of records) are better stored in a database or warehouse, with Sheets as a thin layer on top. - Refresh frequency and API usage:
Frequent refreshes (Apps Script, IMPORTDATA, or Zapier) will hit the dataset export URL often. Make sure your Apify plan and Google quota can handle the request rate, and schedule refreshes at sensible intervals.
Pricing & Plans
Exporting datasets and calling dataset export URLs is included with Apify platform usage. Your costs are driven mainly by:
- Actor runs (compute, proxies, unblocking).
- Data transfer volume if you pull large datasets frequently.
For integrations:
- Zapier / Airbyte / others: These may have their own pricing tiers based on tasks/rows/syncs.
- Google Sheets / Apps Script: Usage is usually free within Google’s quotas; heavy automation may require a Google Workspace plan.
Typical pattern:
- Team / Startup plans: Best for teams running multiple Actors daily and exporting small‑to‑medium datasets to Excel/Sheets for reporting.
- Business / Enterprise plans: Best for organizations that need high‑volume scraping, SLAs, 99.95% uptime, and compliant handling of sensitive pipelines (SOC2, GDPR, CCPA), feeding both warehouses and Sheets dashboards.
Frequently Asked Questions
Can I export an Apify dataset directly as an Excel file?
Short Answer: Yes, you can export any dataset as an XLSX file via the Console or via an export URL.
Details:
In the dataset view in Apify Console, use the export/download dropdown and choose Excel (XLSX). For automation, use a URL like:
https://api.apify.com/v2/datasets/DATASET_ID/items?format=xlsx&clean=1&token=YOUR_API_TOKEN
You can call this from scripts, Power Query, or tools like Airbyte to keep Excel updated without manual downloads.
How do I keep a Google Sheet synced with my Apify dataset?
Short Answer: Use the dataset’s export URL in Sheets (e.g., IMPORTDATA), or connect via Zapier/Apps Script for scheduled updates.
Details:
For lightweight setups:
=IMPORTDATA("https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&clean=1&token=YOUR_API_TOKEN")
For more control, write an Apps Script that fetches CSV/JSON from the dataset URL and overwrites a tab on a time‑based trigger. For no‑code automation with row‑level appends and event triggers, set up a Zap in Zapier where an Apify Actor run triggers a Google Sheets “Create row” action.
Summary
Apify turns scrapers into Actors that output clean datasets. Exporting those datasets to Excel or syncing them to Google Sheets is straightforward:
- One‑click exports in the Console for ad‑hoc analysis.
- Stable export URLs and the Apify API for automated pipelines.
- Direct compatibility with Google Sheets via
IMPORTDATA, Apps Script, or integrations like Zapier and Airbyte.
Instead of hand‑maintaining scraping scripts and brittle file transfers, you let Apify handle proxies, unblocking, cloud runs, and monitoring, and you just wire the dataset into the spreadsheet tools your team already uses.