Skip to content
Search/
CyberMax › Answers

How to convert Excel or a Google Sheet to JSON (API and no-code)

Updated 2026-11-13 · Data and API builders · by CyberMax

Short answer

Download the file, read the header row, drop blank rows and convert cells to typed values (numbers stay numbers, dates become ISO dates). Sheetshuck on Apify does it for any file link or public Google Sheets link at $0.002 per file plus $0.00002 per row; failed files are free.

  1. Put file links in fileUrls: .xlsx, .xls, .ods, .csv, .tsv, or a Google Sheets, Drive or Dropbox share link (shared as "anyone with the link").
  2. Set headerRow if the column names are not on row 1 (rows above are skipped).
  3. Pick sheets by name or number, or leave empty for all.
  4. Choose headerStyle camelCase or snake_case for clean JSON keys, and dateFormat.
  5. Run: one JSON row per spreadsheet row, with _file and _sheet; turn on monitor to get only changed rows on a schedule.

Copy-paste code

Python (pip install apify-client)

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("cybermax/excel-to-json").call(run_input={"fileUrls": ["https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit"], "headerStyle": "camelCase"})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)

Chain after any scraper (Apify Integrations -> Run Actor)

{
  "fileUrls": ["https://example.com/supplier-prices.xlsx"],
  "monitor": true,
  "monitorKey": "supplier-prices"
}

No code: n8n, Make or Zapier

n8n: HTTP Request node (or the Apify node, action "Run an Actor and get dataset")
Method:  POST
URL:     https://api.apify.com/v2/acts/cybermax~excel-to-json/run-sync-get-dataset-items
Auth:    Header Auth  ->  Authorization: Bearer <your Apify token>
Body:    JSON  {"fileUrls": ["https://go.microsoft.com/fwlink/?LinkID=521962"]}

Make:    Apify app -> "Run an Actor" (Actor: cybermax/excel-to-json, wait for finish = yes) -> "Get Dataset Items"
Zapier:  Apify app -> action "Run Actor" (cybermax/excel-to-json) -> "Fetch Dataset Items" -> your app
Runs longer than 5 minutes: start with POST /v2/acts/cybermax~excel-to-json/runs and read the dataset when the run finishes.

From an AI agent (MCP)

# Any MCP client (Claude Desktop, Claude Code, Cursor, VS Code): Apify's hosted MCP server
{
  "mcpServers": {
    "excel-to-json": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.apify.com/?tools=cybermax/excel-to-json",
               "--header", "Authorization: Bearer ${APIFY_TOKEN}"],
      "env": { "APIFY_TOKEN": "<your Apify token>" }
    }
  }
}
# The agent sees one tool, cybermax--excel-to-json, with the Actor's input schema.
Real run on Apify (10 Nov 2026: Microsoft's public Financial Sample.xlsx + a CSV, 705 rows in 1.9 s)
segmentcountryproductunitsSoldgrossSalesdate
GovernmentCanadaCarretera1618.5323702014-01-01
GovernmentGermanyCarretera1321264202014-01-01

Source: Sheetshuck (Apify Actor cybermax/excel-to-json) README, real Apify run on 10 Nov 2026

Run Sheetshuck on ApifyPageshuck: PDF to text

Google Sheets without the Google API

A sheet shared as "anyone with the link" can be exported as a file. Sheetshuck turns the normal share link into that export link, so no Google login or API key is needed.

Typed values, not cell text

Numbers stay numbers and Excel dates become ISO dates, so the JSON can go straight into an API, a database or an AI agent without cleanup.

Watch a sheet for changes

With monitor on, an unchanged file is skipped for free and an edited file returns only its new or changed rows.

Good to know

Formulas come through as their calculated values.

For .xlsx files over a few MB, give the run about 10 times the file size in memory.

Docsieve icon

Docsieve: Websites to clean Markdown for RAG

$0.001 per page, no start fee

Converting web pages rather than files? Docsieve crawls a website or docs site into clean Markdown and RAG-ready chunks.

Runs on your own Apify account, pay per result; failed results are not charged.

Questions

Is it free to try?

Yes. Run it with no input for a free demo on a sample CSV.

Can it read private Google Sheets?

No. Share the sheet as "anyone with the link can view".

How large a file?

Up to 50 MB by default, 200 MB at most.

Can an AI agent use it?

Yes. Apify's MCP server exposes it as cybermax--excel-to-json.

Free: the Free API Starter Kit

Copy-paste calls for 4 APIs with free daily tiers (CVE priority, VIN recalls, US duty rates, email checks), then 5 short emails on KEV/EPSS, MCP and free data.

You get one email to confirm first. Then the kit, and 5 short emails over two weeks. One-click unsubscribe in every email; we never share your address.

Related answers

How to convert PDF, Word and PowerPoint files to text and Markdown in bulkTurn a list of PDF, DOCX and PPTX links into clean text and Markdown with tables kept, page rows and RAG chunkHow to filter an Apify dataset and export it to CSV or ExcelKeep only matching rows (rating >= 4, has website), rename and flatten fields, split arrays into rows, sort, e