skillfed

gspread-asyncio

asyncio wrapper for burnash's Google Spreadsheet API library, gspread

gspread-asyncio v2.0.0 156.7K downloads/30d#10,777 on PyPI62
Permissive license MIT DORMANT released

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-asyncio

uv

uv add gspread-asyncio

poetry

poetry add gspread-asyncio

Installing 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

Development Status :: 5 - Production/StableFramework :: AsyncIOIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: Only

Tags

asyncio google sheetsasync spreadsheet apigspread async wrappernon-blocking google sheetsasync google spreadsheetsconcurrent spreadsheet operationsasyncio gspread
async-iogoogle-sheetsspreadsheet-api

More WWW/HTTP packages