Google Workspace
Scrape the web from Google Sheets with Piloterr
Call Piloterr APIs directly from Google Apps Script, no server, no Zapier bill. Store your API key in Script Properties, schedule daily scrapes, and write structured JSON straight into Sheets.
- Native UrlFetchApp, works in Sheets, Docs, Gmail, and Drive triggers
- Script Properties keep your x-api-key out of source code
- Time-driven triggers for scheduled monitoring and alerts
- 400+ REST endpoints return structured JSON ready for Sheets
At a glance
REST
HTTP API
5 min
typical setup
400+
API endpoints
0
servers to manage
Why connect Google Apps Script
Built into Google Workspace
Apps Script runs inside Google Sheets, Docs, and Gmail. Your team already has access, no new SaaS subscription required for orchestration.
Secure API key storage
Store your Piloterr key in Script Properties instead of hardcoding it. Set once via the script editor or programmatically on first run.
Sheets-native output
Parse JSON responses and append rows with SpreadsheetApp. Perfect for competitive monitoring, lead lists, and news tracking.
Scheduled automation
Use time-driven triggers to scrape daily, hourly, or on a custom interval, all within Google's free Apps Script quotas.
Every Piloterr API from Apps Script
One UrlFetchApp call reaches the same endpoints as Python, Node.js, and n8n, scraper APIs, headless browser, and anti-bot bypass included.
Scraper APIs
Google News, LinkedIn, Amazon, SERP, and 400+ endpoints return structured JSON in one POST or GET.
Headless browser
JavaScript-heavy pages render in the cloud, no Puppeteer install inside Apps Script.
Anti-bot bypass
Cloudflare, DataDome, and CAPTCHA handling on the Piloterr side, your script sends one clean request.
Google Sheets workflows
Read input rows, call the API per row, write results back, ideal for ops teams living in spreadsheets.
Why not scrape directly in Apps Script?
| Approach | DIY | Piloterr |
|---|---|---|
| Protected sites | Blocked by Cloudflare or bot detection | Anti-bot bypass handled server-side |
| JavaScript pages | UrlFetchApp returns empty HTML | Headless Chrome renders the full DOM |
| Maintenance | Breaks when targets change selectors | Managed endpoints with stable JSON schemas |
| Proxies & CAPTCHA | Not available in Apps Script | Included on every API call |
Scrape from Apps Script in four steps
Step 1
Get your API key
Sign up on Piloterr and copy your x-api-key from the dashboard. New accounts get +500 free credits.
Get your API keyStep 2
Create a project and store your key
In Google Sheets: Extensions → Apps Script (or open script.google.com). Run a one-time setup function that saves your x-api-key to Script Properties, never commit secrets to the script file.
Create a project and store your keyStep 3
Call the API with UrlFetchApp
POST or GET any Piloterr endpoint with the x-api-key header and JSON body. Parse the response with JSON.parse().
Step 4
Add a time-driven trigger
Schedule your function to run daily or hourly from the Triggers page, perfect for monitoring and alerts.
Workflow recipes
Sheet row → scrape → append row
Read URLs or keywords from column A, call Piloterr per row, write JSON fields into adjacent columns.
Daily price monitor → email alert
Scheduled trigger scrapes product pages, compares prices to a threshold, and sends a Gmail alert when prices drop.
Google News watchlist → Sheet
Scrape news by keyword every morning and deduplicate by URL before appending to your media database.
Form submit → enrich → Sheet
On Form submit trigger, enrich respondent company data and append a structured row to your tracker Sheet.
When to use Apps Script vs SDK
Scenario
Team lives in Google Sheets
Recommendation: Apps Script
Scenario
Need 100k+ requests per month
Recommendation: Python / Node SDK
Scenario
Complex branching logic
Recommendation: n8n or Make
Scenario
No-code for non-developers
Recommendation: Zapier or Make
Same API, from Google Apps Script
Copy these snippets into your Apps Script project. Replace the endpoint path with any API from the library.
function scrapeWithPiloterr() {
const apiKey = PropertiesService.getScriptProperties().getProperty('PILOTERR_API_KEY');
const response = UrlFetchApp.fetch('https://api.piloterr.com/v2/google/news', {
method: 'post',
contentType: 'application/json',
headers: { 'x-api-key': apiKey },
payload: JSON.stringify({ query: 'stocks', location: 'Paris, FR', page: 1 }),
muteHttpExceptions: true,
});
return JSON.parse(response.getContentText());
}Transparent credit pricing
Pay only for successful requests. Start with +500 credits, then scale with plans from $49/mo.
Premium
$49/mo
18,000 credits
Premium+
$99/mo
40,000 credits
Startup
$249/mo
110,000 credits