The most powerful spreadsheet API

Quadratic is the easiest API spreadsheet for agents and developers. With only a few lines of code read cells, write blocks, run Python and SQL, build tables, and ship results your team can audit, edit, and share.

Free on every plan. Tokens minted from Team Settings → API Tokens.
Your agent
Prompt

“Push our inventory changes from our internal systems to a spreadsheet automatically.”

RESTapi.quadratichq.com
Bearer
PUT /v1/files/{id}/cells
PUT /v1/files/{id}/cells/code
GET /v1/files/{id}/data
POST /v1/files/{id}/batch
Quadratic
Live spreadsheet
A
B
1
Region
Revenue
2
North
2,100,000
3
South
1,640,000
4
East
1,230,000
5
West
920,000
Wrote 5 rows · A1:B5
Why agents use it

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.

Quick start

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.

PUT /v1/files/{file_id}/cells
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]    ]  }'
Drop tabular results from your agent straight into a real spreadsheet.
Base URL: https://api.quadratichq.comAuth: Authorization: Bearer qdx_live_…OpenAPI 3.1 + interactive docs available at /docs
What you can do

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+ endpoints

Create, list, fetch, and import files.

  • GET
    /v1/files
    List every file you can see
  • POST
    /v1/files
    Create a blank file
  • POST
    /v1/files/import
    Create a file from CSV / XLSX / Parquet bytes
  • GET
    /v1/files/{id}
    Fetch file metadata

Cells

4+ endpoints

Read and write values, formulas, formats, borders, and merges.

  • GET
    /v1/files/{id}/cells
    Read a selection of cell values
  • PUT
    /v1/files/{id}/cells
    Write a 2D block of values
  • PUT
    /v1/files/{id}/cells/formula
    Write formulas in a batch
  • PUT
    /v1/files/{id}/cells/formats
    Apply formatting in a batch

Code & SQL

4+ endpoints

Drive Python, JavaScript, formula, and SQL code cells.

  • GET
    /v1/files/{id}/cells/code
    Read source + computed output
  • PUT
    /v1/files/{id}/cells/code
    Create or update a code cell
  • PUT
    /v1/files/{id}/cells/sql
    Create a SQL cell against a connection
  • POST
    /v1/files/{id}/cells/code/rerun
    Re-run code cells

Sheets

4+ endpoints

Add, rename, delete, reorder, and recolor sheets.

  • GET
    /v1/files/{id}/sheets
    List or fetch sheets
  • POST
    /v1/files/{id}/sheets
    Add a new sheet
  • POST
    /v1/files/{id}/sheets/duplicate
    Duplicate an existing sheet
  • POST
    /v1/files/{id}/sheets/move
    Reorder sheets

Tables

4+ endpoints

Build and configure structured data tables.

  • POST
    /v1/files/{id}/tables
    Create a new data table
  • POST
    /v1/files/{id}/tables/from-range
    Promote a range into a table
  • PATCH
    /v1/files/{id}/tables
    Update table metadata
  • PUT
    /v1/files/{id}/tables/columns
    Configure table columns

Context & search

4+ endpoints

Read-only exploration of file structure for LLMs.

  • GET
    /v1/files/{id}/context
    LLM-ready summary of the whole file
  • GET
    /v1/files/{id}/outline
    Structural outline of sheets and tables
  • GET
    /v1/files/{id}/data
    Bulk-optimized tabular slice
  • GET
    /v1/files/{id}/search
    Search cell values and code

History

3+ endpoints

Atomic batches with undo and redo.

  • POST
    /v1/files/{id}/batch
    Run many actions in one request
  • POST
    /v1/files/{id}/undo
    Undo the last N operations
  • POST
    /v1/files/{id}/redo
    Redo the last N undone operations

Validations & formats

4+ endpoints

Set up data-validation rules and conditional formats.

  • POST
    /v1/files/{id}/validations/list
    Add a list-of-values validation
  • POST
    /v1/files/{id}/validations/logical
    Add a true/false validation
  • GET
    /v1/files/{id}/conditional-formats
    List conditional-format rules
  • PUT
    /v1/files/{id}/conditional-formats
    Create / update / delete rules
Built for agent loops

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.

MCP or API?

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.

Quadratic MCP
Spreadsheet API
Best for
Letting an existing AI client (Claude, ChatGPT, Cursor) drive Quadratic in chat.
Building your own agent, backend, or product on top of Quadratic.
Transport
Remote MCP server over Streamable HTTP.
Plain HTTPS REST with bearer tokens.
Auth
OAuth on behalf of a signed-in Quadratic user.
qdx_live_… / qdx_test_… tokens scoped to a team.
Set up time
One-click install in your AI client.
Mint a token, send a request.

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.

Quadratic Spreadsheet API FAQs

What is the Quadratic Spreadsheet API?

A token-authenticated REST API that exposes the full Quadratic spreadsheet surface — files, sheets, cells, code, tables, validations, history, and connections — at https://api.quadratichq.com. The interactive reference and OpenAPI 3.1 spec live at /docs.

How is this different from Quadratic MCP?

MCP is for plugging existing AI clients (Claude, ChatGPT, Cursor, VS Code) into Quadratic. The Spreadsheet API is for building your own agent, backend, or product on top of Quadratic — it is plain REST with bearer tokens, no MCP runtime required.

How do I authenticate?

Mint an API token from your Quadratic team settings. Tokens look like qdx_live_… (production) or qdx_test_… (sandbox). Send them on every request as Authorization: Bearer <token>. Each token is scoped to a team and can be revoked any time.

Can my agent run Python or SQL?

Yes. Use PUT /v1/files/{file_id}/cells/code to create or update Python, JavaScript, or formula cells, and PUT /v1/files/{file_id}/cells/sql for SQL cells backed by a registered connection. Quadratic executes them and you can read the computed values back over REST.

Can I run many writes atomically?

Yes. POST /v1/files/{file_id}/batch executes a sequence of actions in order and stops on the first error, mirroring the MCP batch semantics. Combine it with /undo and /redo for safe speculative work.

How do I give an LLM context about a file?

Call GET /v1/files/{file_id}/context — it returns a structured, worker-built summary of every sheet, table, named range, and code cell in the file, designed to feed straight into a prompt. /outline and /search complement it for targeted lookups.

What file formats can I import?

POST /v1/files/import (or POST /v1/files/{id}/import for an existing file) accepts csv, xlsx, xls, parquet, parq, and pqt. The format is chosen by the file_name extension you supply.

Is there a Python or TypeScript SDK?

The API is plain REST, so any HTTP client works today (the docs page renders examples in cURL, Python, Node.js, Ruby, PHP, and more). First-party SDKs are on the roadmap — talk to us if you want early access.

How is it billed?

The Spreadsheet API is included with every Quadratic plan. Talk to us if you have unusual volume or need higher rate limits for production agents.

How do I report bugs or request endpoints?

Open an issue on our GitHub or contact us — we ship endpoints based on what real agents need.
Quadratic logo

Get started for free

The AI Spreadsheet built for speed, clarity, and instant insights — without the pain.

Try Quadratic free