| Sheet row One row of a link-shared Google Sheet, delivered typed: numbers as numbers, booleans as booleans, dates as ISO-8601, every cell keyed by its column header, with the tab name, row number and spreadsheet id on the row. Billed once per row per run however many tabs or URLs it comes from. With monitoring on, a scheduled re-run bills a row only when its cells changed since the last run - an unchanged row is a free row, which is what makes an hourly cron affordable. A row that cannot be read costs nothing and returns a free error row instead. Error rows, coverage rows, removed-row notices, metadata and the run summary are all free. | | |
| Private sheet row One row read through the official Sheets API with your service account, from a sheet that is not link-shared. Share the sheet with the service account's e-mail once, paste the JSON key, and internal sheets become a dataset: same typed schema, same tab handling, same monitoring. Priced above the link rate because it carries signed authentication and Google's official quota. Billed once per row per run; with monitoring on, unchanged rows are free on a scheduled re-run exactly as on link-shared sheets. | | |
| Sheet sync One spreadsheet successfully read, whatever it contains. Charged only after a sheet has actually been opened and a tab read, so a sheet that is not link-shared, a wrong ID, a deleted sheet and a run that reads nothing at all are all free. One run over twelve sheets is twelve syncs; one sheet reached twice in the same run is one. This is the fee that carries a schedule: on a monitoring cron the rows that did not change are free, and the sync is what you pay for the sheet being watched. | | |