Skip to content
The Register

Dataset to Google Sheets — Reliable Export

Append any Apify dataset to a Google Sheet via a service account, with a stable header, column union across ragged rows, and flattened nested values. Honest errors (e.g. share-the-sheet reminder). Pure logic.

Dataset to Google Sheets — Reliable Export returns 11 documented output fields, including status, spreadsheetId, sheet, rowsWritten and columns. Every field carries a declared type, a written description and an example value. 5 runs are recorded on Apify.

Run it on ApifyPay per result · no subscription
11
Output fields
9
Inputs
5
Runs
2026-10-15
Last run

01 — output

What it returns

Every field the extractor writes to its dataset, with its type, a written description and an example value.

FieldTypeWhat it holdsExample
statusstringnullOutcome recorded for this row.ok
spreadsheetIdstringnullIdentifier of the spreadsheet.<spreadsheetId>
sheetstringnullSheet this row came from.<sheet>
rowsWrittenintegernullTotal rows written to the destination.0
columnsintegernullThe columns this record carries.0
headerIncludedbooleannullWhether the header is present at all.true
rowsUpdatedintegernullRows updated in the destination because they already existed.0
rowsAppendedintegernullRows appended to the destination because they were new.0
upsertKeystringnullField used to decide whether a row is new or an update.<upsertKey>
existingHeaderReusedbooleannullWhether an existing header already covers this requirement.true
headerExtendedbooleannullWhether the header's value exceeds the recommended setting.true

02 — sample

One record

Assembled from the example values declared on the schema above, not invented at render time.

{
  "status": "ok",
  "spreadsheetId": "<spreadsheetId>",
  "sheet": "<sheet>",
  "rowsWritten": 0,
  "columns": 0,
  "headerIncluded": true,
  "rowsUpdated": 0,
  "rowsAppended": 0
}

03 — input

What you give it

InputTypeDescription
serviceAccountJsonobjectoptionalSecret — supply your own value.
spreadsheetIdstringoptionalThe Google Sheet to append to — paste its URL or ID.
sheetNamestringoptionalThe tab to append to (default Sheet1).
datasetIdstringoptionalThe Apify dataset to export (e.g. a scraper run's defaultDatasetId).
itemsarrayoptionalRows to export directly.
includeHeaderbooleanoptionalWrite a header row of column names. Turn off when appending to a sheet that already has headers.
reconcileExistingHeaderbooleanoptionalWhen the tab already has a header row, preserve its column order and add newly seen fields to the end. Prevents changed source schemas from shifting values into the wrong columns.
upsertKeystringoptionalA source field name such as id or email. Matching existing Sheet rows are updated; new keys are appended. The tab must have a header row and duplicate non-empty keys are rejected.
maxItemsintegeroptionalCap on rows written. Leave empty for all.

04 — run

Run Dataset to Google Sheets on your own input

It runs in the cloud on Apify. Nothing to install, and you are billed per result returned rather than per attempt.

Open on Apify ↗

05 — questions

Asked before running it

11 of 11 fields described

What does Dataset to Google Sheets — Reliable Export return?
It returns 11 documented output fields: status, spreadsheetId, sheet, rowsWritten, columns, headerIncluded, rowsUpdated, rowsAppended, upsertKey, existingHeaderReused and headerExtended. Each field declares its type, a description of what it holds, and an example value.
What input does Dataset to Google Sheets — Reliable Export take?
All 9 inputs are optional and ship with usable defaults, so it runs as-is. They are listed with their types below.
Does Dataset to Google Sheets — Reliable Export need an API key or login?
Yes — serviceAccountJson is marked secret and must be supplied by you. Nothing else in the input schema needs credentials.
How do I run Dataset to Google Sheets — Reliable Export?
It runs on Apify. Start it from its listing with the inputs above, or call the Apify API with the Actor's ID. Results land in a dataset you can export as JSON, CSV or Excel, or read through the Apify API into your own pipeline.