gspread-asyncio
asyncio wrapper for burnash's Google Spreadsheet API library, gspread
What it is and what it does
gspread_asyncio wraps gspread to make Google Spreadsheet API calls non-blocking via asyncio. Instead of freezing your program during network calls, it runs all API operations in a thread pool, allowing your coroutines to continue. The package handles several operational concerns automatically: it caches Client, Spreadsheet, and Worksheet objects to avoid redundant setup; it renews expired credentials; it retries HTTP 5xx errors from Google's servers; and it enforces rate limiting with a default 1.1-second delay between calls.
The library is designed for both long-running services and one-off scripts that need to read or write Google Sheets without blocking. You provide a callback function that loads your credentials, then create an AsyncioGspreadClientManager and await its methods. All gspread exceptions propagate unchanged, and the package offers an optional `nowait` keyword argument on certain methods to schedule work and continue immediately while the event loop handles the API call later.
Use it for:
- Concurrent updates to multiple spreadsheets in a long-running service without blocking other tasks.
- Batch writing rows or cells to a spreadsheet from an async web application or data pipeline.
- Polling and updating a spreadsheet on a schedule while handling other async I/O in the same event loop.
- One-off async scripts that read from multiple spreadsheets in parallel to reduce total wall-clock time.
- Building a bot or automation that monitors and modifies spreadsheets without freezing on network latency.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides an asyncio wrapper around the gspread Google Spreadsheet API library, running all API calls off the main thread with built-in caching, credential renewal, retries, and rate limiting.
Yes, with conditions. The package is stable and has low install friction, but maintenance is dormant with no release since 2024-02-10. Install it if you need async Google Sheets access and are comfortable with potential gaps in support; verify that it works with your current gspread version before relying on it in production. No known security vulnerabilities.
Install
gspread-asyncio on PyPI
pip
pip install gspread-asynciouv
uv add gspread-asynciopoetry
poetry add gspread-asyncioInstalling gspread-asyncio
Before you install
Low install friction with only two runtime dependencies (requests and gspread). Maintenance is dormant—last commit was 2024-05-13 and no release since 2024-02-10—but the package is marked Production/Stable and the repository remains active and unarchived.
License in practice
MIT license is permissive, allowing commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely as long as you include the license notice.
Quickstart
import asyncio
import gspread_asyncio
def get_creds():
# Load credentials from disk
pass
agcm = gspread_asyncio.AsyncioGspreadClientManager(get_creds)
async def main():
agc = await agcm.authorize()
ss = await agc.create("Test Spreadsheet")
print(ss.id)
asyncio.run(main())
Requires Python >= 3.8 and a service account credentials callback function that returns appropriately scoped credentials.
Verify before relying
- Whether the package works with current versions of gspread without breaking changes.
- Whether the 1.1 second default rate-limit delay still aligns with current Google API quotas.
- Community feedback on whether dormancy affects real-world reliability in production use.
- Compatibility with modern Google Sheets API authentication flows.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — requests, gspread |
| Maintenance | dormant — 916 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 156,678/month — #10,777 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: gspread_asyncio-2.0.0-py3-none-any.whl
Keywords: spreadsheets, google-spreadsheets, asyncio
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
gspreadgspread provides a Python interface to read,…
permissive · top 1,000 on PyPI
gspread-pandasBridges Google Sheets and pandas DataFrames,…
permissive · top 15,000 on PyPI
gspread-dataframeConverts between Google Sheets worksheets and…
permissive · top 5,000 on PyPI
gspread-formattingAdds complete cell formatting support to…
permissive · top 5,000 on PyPI
gsheetsgsheets provides a Python wrapper around the…
permissive · top 15,000 on PyPI
df2gspreadTransfers tabular data between Google…
copyleft · top 15,000 on PyPI
pygsheetspygsheets provides a Python interface to Google…
permissive · top 5,000 on PyPI
py-memoizeCaching library for async Python applications…
permissive · top 15,000 on PyPI
asynciolimiterProvides rate limiting for async Python code by…
permissive · top 5,000 on PyPI
pyserial-asyncioAdds async/await support to pyserial for…
permissive · top 15,000 on PyPI