Google Sheets Import & Export (Reliable) avatar

Google Sheets Import & Export (Reliable)

Pricing

$0.50 / 1,000 row writtens

Go to Apify Store
Google Sheets Import & Export (Reliable)

Google Sheets Import & Export (Reliable)

Pricing

$0.50 / 1,000 row writtens

Rating

0.0

(0)

Developer

ensorcelling _melilot

ensorcelling _melilot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Share

Send the results of any Apify Actor to Google Sheets, or pull a sheet into a dataset. It's built to not fail:

  • Rate limits are retried automatically. Google allows about 60 writes a minute. When you hit that, this Actor waits and retries instead of crashing with nothing written.
  • Append really appends. New rows go under your existing data, and your columns never get reshuffled. New fields become new columns at the end.
  • Upsert by key. It updates rows whose id or url already exists and adds the rest, so you can run it daily and get no duplicates.
  • Checks the cell limit before writing. If the data won't fit in Google's 10M-cell limit, you get a clear message and your sheet is left untouched. Nothing gets half-written.
  • No surprise conversions. By default values are written exactly as they are, so 1.10 stays 1.10 and IDs don't turn into dates.
  • Long values are safe. Text over Google's 50,000-character cell limit is truncated instead of failing the run.

Use it as an integration (most common)

  1. Open the Actor whose results you want in Sheets (for example Google Maps Scraper), then go to Integrations and choose Apify Actor.
  2. Pick this Actor, set the spreadsheet URL, key and write mode, and set Dataset ID to {{resource.defaultDatasetId}}.
  3. Every time that Actor finishes, its dataset lands in your sheet automatically.

You can also run it on its own with a Dataset ID, or paste JSON into Raw data.

One-time setup: a Google service account (about 2 minutes)

A service account is a robot Google user. It never expires and doesn't need you to log in again.

  1. Go to console.cloud.google.com. Create a project (any name) or pick an existing one.
  2. Enable the Google Sheets API: open APIs & Services, then Library, search "Google Sheets API" and click Enable.
  3. Go to APIs & Services, then Credentials, then Create credentials and choose Service account. Give it any name and click Done.
  4. Click the new service account, open Keys, choose Add key, then Create new key, then JSON. A .json file downloads.
  5. Open that file, copy everything, and paste it into Google service account key. It's stored encrypted.
  6. Open your spreadsheet, click Share, and add the service account's email (it ends with iam.gserviceaccount.com) as an Editor.

That's it. If you forget step 6, the run tells you exactly which email to share with.

Modes

ModeWhat it does
Export → AppendAdds rows under the existing data. Existing columns stay where they are.
Export → ReplaceClears the tab and writes fresh data.
Export → UpsertMatches rows on Key column, updates matches (columns your data does not include are left as they are) and appends new rows.
ImportReads the tab (first row = headers) into the run's dataset. A sheet shared as "Anyone with the link can view" can be imported with no key at all.

The tab is created automatically if it doesn't exist.

Pricing

You pay per row written or read, and nothing for failed runs. See the pricing tab.

FAQ

Why a service account instead of "Sign in with Google"? Sign-in tokens expire and are the most common reason sheet exports break. A service account keeps working.

How big can it go? Up to Google's limit of 10 million cells per spreadsheet. The Actor checks this before writing.

Nested data? By default {"address": {"city": "Paris"}} becomes a column address/city. Turn off Flatten nested data to write JSON text instead.

Problem or feature request? Open an issue on the Issues tab.