# Google Sheets Scraper API (x402)

> Google Sheets Scraper API (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Extracts structured row data from public Google Sheets URLs, returning parsed cell data with sheet metadata, billed per successful call via x402 micropayment.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/google?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/google-sheets-scraper-api-x402-3898377b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_oo3IZ7belmP4fRw7s_v1Z

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability google-sheets-scraper-api-x402-3898377b -d '<json body>'
```

Example prompt: Pull all rows from this public Google Sheet — https://docs.google.com/spreadsheets/d/1aBcD1234/edit#gid=0 — starting from header row 1, and give me up to 500 records.

## When to prefer this

Use this endpoint when you need to extract structured data from a public Google Sheet without setting up Google Sheets API credentials. It's ideal for agents that need to read spreadsheet data on demand with a simple pay-per-call model ($0.025 USDC), supports tab selection via GID, custom cell ranges, and multiple sheet URLs in one call. Prefer this over the Google Sheets API when you want zero auth setup and only pay for successful extractions.

## Known failure modes

- Sheet is private or requires authentication — returns empty or error, no charge
- Invalid or malformed Google Sheets URL — request rejected
- Sheet tab GID not found — empty result returned
- Cell range out of bounds — returns only available rows
- Network timeout fetching the sheet — no charge applied
- Rate limits or quota exceeded on the scraping backend

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of records, an array of items each containing the row's data object, spreadsheet ID, sheet GID, source sheet URL, and row number. Empty or failed runs are not billed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "maxItems": {
   "type": "integer",
   "default": 1000,
   "minimum": 0,
   "description": "Maximum data rows across all URLs. Set to 0 for no cap."
  },
  "cellRange": {
   "type": "string",
   "default": "",
   "description": "Optional A1 range such as A1:F100. Leave empty to export the worksheet's used rows and columns."
  },
  "headerRow": {
   "type": "integer",
   "default": 1,
   "minimum": 1,
   "description": "One-based row within the selected range containing column names. Rows before it are skipped."
  },
  "sheetUrls": {
   "type": "array",
   "description": "Public Google Sheets URLs. Add #gid=... to select a worksheet tab; each URL exports one tab."
  },
  "includeEmptyRows": {
   "type": "boolean",
   "default": false,
   "description": "Include fully blank rows when they appear in the exported range."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "data": null,
    "sheetGid": null,
    "sheetUrl": null,
    "rowNumber": null,
    "spreadsheetId": null
   }
  ],
  "product": "google"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/google-sheets-scraper-api-x402-3898377b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
