Excel to API: turn any spreadsheet into a REST API.

SpreadAPI publishes an Excel workbook as a web service: you send the input values, the workbook calculates, and you get the results back as JSON. This is not about calling an API from inside Excel; it makes the Excel file itself the API.

Marked cells in, JSON out.

1 · The cells you mark
Number of licenses
25
Edition
Business
Term (months)
12
Net total
$13,158.48
Total incl. tax
$14,112.47

Violet cells are inputs, the green one is a result. Names and types come from the labels beside them.

2 · The request
POST /api/v1/services/{serviceId}/execute

{
  "inputs": {
    "licenses": 25,
    "edition": "Business",
    "term": 12
  }
}

Or as a GET with the inputs in the URL, so Excel, Google Sheets and no-code tools can call it too.

3 · The answer
{
  "service": { "name": "Quote Calculator" },
  "inputs": [
    { "name": "licenses", "value": 25 },
    { "name": "edition", "value": "Business" },
    { "name": "term", "value": 12 }
  ],
  "outputs": [
    { "name": "total",
      "title": "Total incl. tax",
      "value": 14112.47,
      "formatString": "$#,##0.00" }
  ],
  "metadata": { … }
}

Inputs are echoed, results come by name with their value and the cell's format.

A range comes back as a table

Mark a whole area as a result, for example a payment plan that spills one row per month. The answer carries it as rows and columns.

{ "name": "payment_plan", "value": [
  ["Month", "Net", "Sales tax", "Total", "Cumulative"],
  [1, 1096.54, 79.5, 1176.04, 1176.04],
  [2, 1096.54, 79.5, 1176.04, 2352.08],
  …
] }

Why not rebuild the formulas in code?

Nothing to rebuild

The workbook runs on a real spreadsheet engine with 500+ Excel functions: lookups across sheets, XLOOKUP, array functions such as FILTER, SORT and UNIQUE, LET and LAMBDA. The formulas stay where their owner maintains them.

A change is a republish

When a price changes, its owner edits the cell and republishes. No ticket, no deploy, and no second copy of the logic that drifts.

What an API needs

An OpenAPI description, tokens per service, input validation with clear errors, batch calls, and a log of the latest calls.

Live dataPrice lists and tariffs straight from your system →Formulas can read a JSON list from a web address of your system, like an Excel table. Every calculation uses current records; you do not publish again when the data changes.

From the file to a working API, in 80 seconds.

Import, mark two inputs and a result, publish, and call it in the built-in tester. Recorded on the real product.

Next: try the API in the browser →

Questions developers ask

Is this the same as calling an API from Excel?

No. Here the Excel file is the server side: your application calls it. Excel and Google Sheets can also be callers, with WEBSERVICE or IMPORTDATA.

Which Excel features work?

Formulas, defined names, tables, lookups across sheets and dynamic arrays. VBA macros do not run, and links to other workbooks are not followed. A chart is not a result; the numbers behind it are.

What does it cost?

The Basic plan is free: one published service, workbooks up to 250 KB and 1,000 calls a month. Pro costs €99 a month: unlimited published services, 10 MB for your workbooks and 10,000 calls a month. Custom covers more calls, larger workbooks and running on your own servers.

What happens when the calls of the month are used up?

The services stay published, but calls are refused until the 1st of the next month. Calls work again shortly after an upgrade.

Can it run on our own servers?

Yes, with the on-premises runtime in the Custom plan. You build the service in the browser, export it as a file and load it into the runtime, which runs as a Docker container in your own network. The values of a call then do not leave it.