Spreadsheet superpowers,
exposed as an API.
Quadratic's API gives you and your agents the ability to control everything in the spreadsheet programmatically.
Read & write any cell
Get and set values, formulas, formats, and borders by A1 range, table column, or full sheet — across every sheet in a file.
Run Python, SQL & formulas
Create or update code cells from your agent. Quadratic executes them on your data and returns the computed values you can read back.
Build sheets, tables & charts
Add and reorder sheets, promote ranges into structured data tables, set conditional formats, and configure validations — all from REST.
Atomic batches & undo
Group many writes into one batch that stops on first error. Undo and redo any sequence of operations as a single unit.
LLM-ready context
A single endpoint returns a structured outline of every sheet, table, named range, and code cell — perfect to feed back into your model.
Token-scoped access
Mint qdx_live_… or qdx_test_… tokens scoped to a team. Send them as Authorization: Bearer headers and revoke them at any time.
Send your first request in under a minute.
Mint a token, pick a sample, and ship the snippet. Every endpoint authenticates with a single Bearer header.
curl -X PUT https://api.quadratichq.com/v1/files/$FILE_ID/cells \ -H "Authorization: Bearer $QDX_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "sheet_name": "Sheet 1", "top_left_position": "A1", "values": [ ["Region", "Revenue"], ["North", 2100000], ["South", 1640000], ["East", 1230000], ["West", 920000] ] }'Every spreadsheet action reachable via API.
Sheets, cells, code, tables, validations, history — every primitive a Quadratic user has is reachable from the API.
Files
4+ endpointsCreate, list, fetch, and import files.
- GET/v1/filesList every file you can see
- POST/v1/filesCreate a blank file
- POST/v1/files/importCreate a file from CSV / XLSX / Parquet bytes
- GET/v1/files/{id}Fetch file metadata
Cells
4+ endpointsRead and write values, formulas, formats, borders, and merges.
- GET/v1/files/{id}/cellsRead a selection of cell values
- PUT/v1/files/{id}/cellsWrite a 2D block of values
- PUT/v1/files/{id}/cells/formulaWrite formulas in a batch
- PUT/v1/files/{id}/cells/formatsApply formatting in a batch
Code & SQL
4+ endpointsDrive Python, JavaScript, formula, and SQL code cells.
- GET/v1/files/{id}/cells/codeRead source + computed output
- PUT/v1/files/{id}/cells/codeCreate or update a code cell
- PUT/v1/files/{id}/cells/sqlCreate a SQL cell against a connection
- POST/v1/files/{id}/cells/code/rerunRe-run code cells
Sheets
4+ endpointsAdd, rename, delete, reorder, and recolor sheets.
- GET/v1/files/{id}/sheetsList or fetch sheets
- POST/v1/files/{id}/sheetsAdd a new sheet
- POST/v1/files/{id}/sheets/duplicateDuplicate an existing sheet
- POST/v1/files/{id}/sheets/moveReorder sheets
Tables
4+ endpointsBuild and configure structured data tables.
- POST/v1/files/{id}/tablesCreate a new data table
- POST/v1/files/{id}/tables/from-rangePromote a range into a table
- PATCH/v1/files/{id}/tablesUpdate table metadata
- PUT/v1/files/{id}/tables/columnsConfigure table columns
Context & search
4+ endpointsRead-only exploration of file structure for LLMs.
- GET/v1/files/{id}/contextLLM-ready summary of the whole file
- GET/v1/files/{id}/outlineStructural outline of sheets and tables
- GET/v1/files/{id}/dataBulk-optimized tabular slice
- GET/v1/files/{id}/searchSearch cell values and code
History
3+ endpointsAtomic batches with undo and redo.
- POST/v1/files/{id}/batchRun many actions in one request
- POST/v1/files/{id}/undoUndo the last N operations
- POST/v1/files/{id}/redoRedo the last N undone operations
Validations & formats
4+ endpointsSet up data-validation rules and conditional formats.
- POST/v1/files/{id}/validations/listAdd a list-of-values validation
- POST/v1/files/{id}/validations/logicalAdd a true/false validation
- GET/v1/files/{id}/conditional-formatsList conditional-format rules
- PUT/v1/files/{id}/conditional-formatsCreate / update / delete rules
The API designed for
the way agents actually work.
The APIs that make autonomous work safe and recoverable — atomic batches, undo, structured context — are first-class.
Every change is auditable
API writes land in the same cell grid your team works in. Open the file in Quadratic to inspect, edit, or roll back what your agent did.
Stop-on-error batches
Send dozens of writes as one POST /batch. The first failure halts the run and the response tells you exactly which step broke.
Undo & redo as primitives
Wrap any experiment in a batch and undo the whole sequence with one call — perfect for speculative agent work.
Context endpoint built for LLMs
GET /context returns a structured summary of every sheet, table, named range, and code cell — drop it straight into a prompt.
Run real Python and SQL
Don't reinvent compute. Write a Python or SQL cell once and Quadratic re-runs it whenever upstream data changes.
Bring your own connections
Reference Postgres, MySQL, Snowflake, BigQuery, and the rest of your existing Quadratic connections from inside SQL cells.
Two ways to put Quadratic in your stack.
Use MCP when you want an off-the-shelf AI client to drive the spreadsheet. Use the Spreadsheet API when you're shipping your own agent or product.
Ship the spreadsheet your agent needs.
Mint a token in your team settings, fire your first request, and put a real, auditable spreadsheet behind every workflow you ship.