We've just shipped a round of speed improvements to the sheet2api API. Reads, writes and authenticated requests now all spend less time inside sheet2api before you get your response. You don't need to change anything: your API URLs, requests and responses stay exactly the same.
Here's what changed and what it means for you.
The headline numbers
We measured every endpoint in our benchmarks before and after the changes. To measure our own overhead and not Google's, the benchmark swaps in a stand-in spreadsheet with a fixed response time for each call. Your exact timings will depend on your spreadsheet and on Google Sheets or Excel Online, but the improvements are the same:
- Replacing rows (PUT) is about 42% faster, from 583 ms to 337 ms, and needs half as many calls to the spreadsheet.
- Reads on APIs with authentication turned on are about 3.7x faster, from 35 ms to 9 ms.
- Cached reads are about 24% faster, from 11 ms to 8 ms, and in our benchmark the API handled about a third more of them per second.
- Reads with caching turned off are about 28% faster, from 230 ms to 166 ms, because we now make one fewer call to your spreadsheet per request.
- Every request does less database work: 3 database lookups instead of 9 to 13.
Your writes show up straight away
When you add, update or delete rows, we clear that API's cached results before we send your response. So the very next read sees your change. Before, the clear-up happened a moment later in the background, so a read made right after a write could briefly return the old data.
Clearing the cache is also much cheaper now. We used to search the whole cache for your API's results. Now we keep a list of exactly what was cached for each API and remove only that. This helps most if you write often.
Cached results respect your cache time
Each Spreadsheet API has a cache time, which is how long a result can be reused before we fetch fresh data from your spreadsheet. We never served results older than that, but they used to stay in our cache long after. Now they're removed as soon as your cache time runs out. If you set the cache time to zero, results aren't cached at all.
Faster authenticated requests
If you've turned on authentication for a Spreadsheet API, every request checks your username and password. Checking a password securely is deliberately slow, and it used to happen on every single request. Now, once a password has been checked, we remember that for a few minutes, so the requests after it skip the slow part.
This doesn't weaken anything. A wrong password is never remembered, and if you change your password the old one stops working right away.
Fewer round trips to your spreadsheet
A single API request often needs a few steps: find the right worksheet, then read or change it. We used to open your spreadsheet again for each step. Now each request opens it once and reuses it.
When you replace or update rows, we used to fetch the row once for every column. Now we fetch it once, and again only after a cell has actually changed, so formulas in other cells are always up to date. Requests to Google Sheets and Excel Online are usually the slowest part of any API call, so this is where most of the PUT improvement comes from.
Less work on every request
We also tidied up the work every request does before it reaches your spreadsheet. Checking your plan, your team and your usage now takes one database lookup where it used to take several. Big responses spend less time being prepared, too. Each of these saves only a few milliseconds, but they apply to every request you make, including requests from AI agents connected to your account.
Nothing for you to do
These improvements are already live for every Spreadsheet API. Your API URLs, query parameters, filters and limits all work as before, and responses are identical to what you got before.
If you'd like to see the difference, try a few requests from the API docs page in your dashboard. If anything looks slower or different than you expect, please get in touch and we'll take a look. Happy building :)