API and MCP documentation
The web editor isn't the only way to work with your sheets! You can write scripts that read and update them over HTTP, and your agents can connect over MCP.
The sheet API
A sheet's unguessable URL is its only credential — anyone with the link can read and write it. Reading a sheet is a GET; its CSV is the response body:
$ curl api.webcsv.com/sheet/aGmQQjCVJsANWd city,population Oslo,700000 Bergen,290000
Appending rows is a POST of CSV text to the same URL. Rows land after the last row with content (a fresh sheet's empty placeholder rows fill up first), and rows wider than the sheet widen it for everyone, live:
$ curl -X POST api.webcsv.com/sheet/aGmQQjCVJsANWd \
-d 'Trondheim,210000'
{"appended":1,"row":4,"rows":4}
Rows are addressed 1-based, exactly as the editor numbers them. Replace one with PUT, remove one with DELETE:
$ curl -X PUT api.webcsv.com/sheet/aGmQQjCVJsANWd/rows/2 \
-d 'Oslo,709000'
{"row":2}
$ curl -X DELETE api.webcsv.com/sheet/aGmQQjCVJsANWd/rows/4
{"rows":3}
Errors are JSON with a human-readable message and a
meaningful status:
$ curl -X DELETE api.webcsv.com/sheet/aGmQQjCVJsANWd/rows/99
{"message":"Row 99 doesn't exist — the sheet has 3 row(s)."}
The same API is served on the main host with a
.csv suffix (keeping API and editor URLs distinct):
https://webcsv.com/sheet/<id>.csv.
Creating sheets
Creation is the one call that needs an account: Pro subscribers mint API keys in Settings and send them as a bearer token. The new sheet belongs to your account and shows up in your directory:
$ curl -X POST 'api.webcsv.com/sheet?name=Expenses' \
-H 'Authorization: Bearer webcsv_...' \
-d 'date,amount,notes'
{"id":"aGmQQjCVJsANWd",
"url":"https://webcsv.com/sheet/aGmQQjCVJsANWd",
"csvUrl":"https://webcsv.com/sheet/aGmQQjCVJsANWd.csv"}
POST with no body to start from the editor's empty 10×5 grid.
The MCP server
The same operations are available to AI agents as Model Context Protocol tools. Point any MCP client at:
https://webcsv.com/mcp
Claude Code:
$ claude mcp add --transport http webcsv https://webcsv.com/mcp
Add your API key to unlock the account tools:
$ claude mcp add --transport http webcsv https://webcsv.com/mcp \
--header 'Authorization: Bearer webcsv_...'
On claude.ai, add https://webcsv.com/mcp as a
custom connector. Six tools are exposed:
read_sheetthe sheet as CSV, by URL or idappend_rowsadd rows (JSON arrays of string cells)replace_rowreplace one row, 1-baseddelete_rowremove one row, 1-basedcreate_sheetnew owned sheet (API key)list_sheetsyour sheets, searchable (API key)The fine print
- Sheets hold up to 50,000 cells; request bodies up to 2 MB.
- Writes are limited to 30/minute per sheet; creation to 10/minute per key.
- Locked sheets ("only you can edit") refuse API writes until the owner unlocks them in the editor.
- Anonymous sheets expire six months after their last visit — sheets owned by an account are kept forever.
- CORS is open: capability URLs are the access control, so treat a sheet's URL like the secret it is.