Apify Actor · DEVELOPER_TOOLS, AUTOMATION
Public Google Sheets to Dataset (no OAuth)
Extracts every row of a public Google Sheet as a dataset item: url, sheetTitle, rowIndex and data (one key per column header). No OAuth; private tabs are skipp…
This Actor reads public Google Sheets through their CSV export link and turns every row into a dataset item. It is built for developers and analysts who want s…
Run it on the Apify Store $0.80 per 1,000 results, billed by Apify; Apify's free plan includes monthly credit.
Inputs
| Field | Type | What it does | Example |
|---|---|---|---|
startUrls (required) | array | Start URLs: Public Google Sheets links (share link, /export?format=csv or published-to-web). A sheet that is not shared publicly is skipped with a warning. | "[{\"url\": \"https://docs.google.com/spreadsheets/d/1XWJLkAwch5GXAt_7zOFDcg8Wm8Xv29_8PWuuW15qmAE/export?format=csv&gid=0\"}]" |
maxPages | integer | Max pages: Stop after this many pages (keeps a run's cost predictable). | 20 |
proxyConfiguration | object | Proxy: Proxy for the platform run (ignored on a local run). | "{\"useApifyProxy\": true}" |
What each result holds
| Field | Type |
|---|---|
url | str |
sheetTitle | str |
rowIndex | int |
data | str |
Sample output
The first 3 results of its latest test run on the platform (long values shortened).
[
{
"data": "{\"Crisco\": \"CONTINUOUS\", \"LinearOptimizationSheet\": \"\", \"Milk\": \"CONTINUOUS\", \"Variable Name\": \"Type\", \"apples\": \"CONTINUOUS\", \"asparagus (can)\": \"CONTINUOUS\",…",
"rowIndex": 1,
"sheetTitle": "LinearOptimizationSheet, column_2, Variable Name, wheat flour (enriched), macaroni, wheat cereal (enriched), corn flakes, corn meal, hominy grits, rice, rolled…",
"url": "https://docs.google.com/spreadsheets/d/1XWJLkAwch5GXAt_7zOFDcg8Wm8Xv29_8PWuuW15qmAE/export?format=csv&gid=0"
},
{
"data": "{\"Crisco\": \"0\", \"LinearOptimizationSheet\": \"\", \"Milk\": \"0\", \"Variable Name\": \"Lower Bound\", \"apples\": \"0\", \"asparagus (can)\": \"0\", \"bacon\": \"0\", \"bananas\": \"0\"…",
"rowIndex": 2,
"sheetTitle": "LinearOptimizationSheet, column_2, Variable Name, wheat flour (enriched), macaroni, wheat cereal (enriched), corn flakes, corn meal, hominy grits, rice, rolled…",
"url": "https://docs.google.com/spreadsheets/d/1XWJLkAwch5GXAt_7zOFDcg8Wm8Xv29_8PWuuW15qmAE/export?format=csv&gid=0"
},
{
"data": "{\"Crisco\": \"Infinity\", \"LinearOptimizationSheet\": \"\", \"Milk\": \"Infinity\", \"Variable Name\": \"Upper Bound\", \"apples\": \"Infinity\", \"asparagus (can)\": \"Infinity\", …",
"rowIndex": 3,
"sheetTitle": "LinearOptimizationSheet, column_2, Variable Name, wheat flour (enriched), macaroni, wheat cereal (enriched), corn flakes, corn meal, hominy grits, rice, rolled…",
"url": "https://docs.google.com/spreadsheets/d/1XWJLkAwch5GXAt_7zOFDcg8Wm8Xv29_8PWuuW15qmAE/export?format=csv&gid=0"
}
]
Call it from code
With the Apify API (one request; the response is the results):
curl -X POST "https://api.apify.com/v2/acts/nonstop_poacher~apify-google-sheets-alt/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"maxPages": 20, "proxyConfiguration": {"useApifyProxy": true}, "startUrls": [{"url": "https://docs.google.com/spreadsheets/d/1XWJLkAwch5GXAt_7zOFDcg8Wm8Xv29_8PWuuW15qmAE/export?format=csv&gid=0"}]}'
With the Python client (pip install apify-client):
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nonstop_poacher/apify-google-sheets-alt").call(run_input={'maxPages': 20,
'proxyConfiguration': {'useApifyProxy': True},
'startUrls': [{'url': 'https://docs.google.com/spreadsheets/d/1XWJLkAwch5GXAt_7zOFDcg8Wm8Xv29_8PWuuW15qmAE/export?format=csv&gid=0'}]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
From an AI agent: connect Apify's MCP server and add the Actor nonstop_poacher/apify-google-sheets-alt.
Questions
What does it cost? $0.80 per 1,000 results, charged per result through your Apify account. You pay only for results it returns.
Something wrong? Open an issue on the Issues tab of its Store page.