Google Sheets Import & Export avatar

Google Sheets Import & Export

Under maintenance

Pricing

Pay per usage

Go to Apify Store
Google Sheets Import & Export

Google Sheets Import & Export

Under maintenance

Import a Google Sheet range into a clean dataset, or export data (JSON/dataset) to a sheet. Service-account auth, no OAuth flow. Reliable, flat, AI-ready.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Radosław Szal

Radosław Szal

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

14 hours ago

Last modified

Share

Move data between Google Sheets and Apify — no OAuth dance, no browser:

  • Import — read a sheet range into a clean, flat dataset (JSON/CSV/Excel).
  • Export — write JSON data (or a whole Apify dataset) into a sheet, overwrite or append.

Pairs with any scraper: scrape → export to a sheet, or import a sheet → feed your pipeline.

Setup (once, ~2 min) — service account

The actor authenticates with a Google service account (a robot Google account), so it only ever touches sheets you explicitly share with it:

  1. In Google Cloud ConsoleAPIs & Services → enable the Google Sheets API.
  2. IAM & AdminService Accounts → create one → KeysAdd keyJSON → download.
  3. Open the JSON, copy its contents into the Google service account key input (stored as a secret).
  4. Share your spreadsheet with the service account's e-mail (the client_email in the JSON) — Viewer for import, Editor for export.

Import

{ "mode": "import", "spreadsheetId": "1AbC…xyz", "range": "Sheet1!A:Z", "firstRowAsHeader": true }

Row 1 becomes the field names; each following row becomes a record (plus _row, the sheet row number). With firstRowAsHeader: false the columns are named A, B, C

Export

{ "mode": "export", "spreadsheetId": "1AbC…xyz", "range": "Sheet1!A1",
"data": [ { "name": "Ada", "score": 91 }, { "name": "Alan", "score": 88 } ],
"includeHeader": true, "append": false }
  • Objects → keys become the header row (order = first seen, or set columns).
  • Arrays → written positionally, no header.
  • append: true adds rows after the existing data instead of overwriting the range.
  • Or set sourceDatasetId instead of data to export a whole Apify dataset.

Each written row comes back as a dataset record (a receipt of exactly what was sent to the sheet).

Notes

  • Integration, not scraping — reads/writes only sheets you share with the service account. No public scraping, no personal data harvested from third parties.
  • Backs off automatically on Google API rate limits (HTTP 429).
  • Pricing — pay per row (result-item), flat. The first rows of every run are free to test.
  • Migration-safe imports (a restarted run resumes without duplicating rows) and overwrite-mode exports (idempotent). Append-mode export is best-effort at-least-once — for exactly-once on a platform restart, use overwrite mode (append: false).