A Google Sheets add-on that lets users trigger Weld scrapers and write results directly into spreadsheets.
- clasp installed globally:
npm install -g @google/clasp - A Google account with Apps Script access
- A Weld API key (from the Weld dashboard → Settings → API Keys)
-
Login to clasp:
clasp login -
Create a new Apps Script project (bound to a test spreadsheet):
cd packages/sheets-plugin clasp create --type sheets --title "Weld Scraper Dev"This updates
.clasp.jsonwith your script ID. -
Push code to Google:
clasp push -
Open the script editor (to verify):
clasp open -
Test in a spreadsheet:
- Open the spreadsheet bound to the script
- Refresh the page — a "Weld" menu appears
- Click Weld → Open Sidebar
clasp push --watch
Automatically pushes on file changes.
src/
├── Code.gs # Menu, onOpen, sidebar launchers
├── Auth.gs # API key storage & validation
├── Api.gs # Weld REST API client (UrlFetchApp)
├── SheetWriter.gs # Write scrape results to sheet tabs
├── Sidebar.html # Main sidebar UI (scrape form, progress, results)
└── Setup.html # Settings/API key configuration screen
- User opens the sidebar and enters their Weld API key
- User selects a scraper, pastes URLs (or loads from selected cells)
- Clicking "Start Scrape" calls
POST /api/jobs/createviaUrlFetchApp - The sidebar polls
GET /api/jobs/getevery 4 seconds (client-side polling avoids the 6-minute GAS execution limit) - On completion,
SheetWriter.gsfetches results and writes them to a new sheet tab
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/scrapers |
List available scrapers |
| POST | /api/jobs/create |
Create a scrape job |
| GET | /api/jobs/get |
Poll job status |
| GET | /api/jobs/results |
Fetch completed results |
| GET | /api/jobs |
List job history |
| GET | /api/credits/balance |
Show credit balance |
To publish to the Google Workspace Marketplace:
- Create a standard GCP project
- Switch the Apps Script project to use it
- Enable the Marketplace SDK
- Configure OAuth consent screen
- Create a versioned deployment in Apps Script
- Submit for Google review
See Google's publishing guide for details.
The add-on requires these minimal OAuth scopes:
spreadsheets.currentonly— Read/write only the current spreadsheetscript.external_request— Make HTTP requests to the Weld API