Skip to main content

Python SDK for Vercel

Project description

vercel-sdk

Python SDK for Vercel.

Installation

pip install vercel-sdk

Requirements

  • Python 3.9+

Usage

Headers and request context

from vercel.headers import geolocation, ip_address

# In a framework handler, pass request.headers
city_info = geolocation(request)
client_ip = ip_address(request.headers)

Runtime Cache

The SDK talks to Vercel’s Runtime Cache when the following env vars are present; otherwise it falls back to an in-memory cache.

  • RUNTIME_CACHE_ENDPOINT: base URL of the runtime cache API (e.g. https://cache.vercel.com/...)
  • RUNTIME_CACHE_HEADERS: JSON object of headers to send (e.g. '{"authorization": "Bearer "}')
  • Optional: SUSPENSE_CACHE_DEBUG=true to log fallback behavior
import asyncio
from vercel.cache import get_cache

async def main():
    cache = get_cache(namespace="demo")

    await cache.delete("greeting")
    await cache.set("greeting", {"hello": "world"}, {"ttl": 60, "tags": ["demo"]})
    value = await cache.get("greeting")  # dict or None
    await cache.expire_tag("demo")        # invalidate by tag

asyncio.run(main())

OIDC (Vercel project tokens)

If the VERCEL_OIDC_TOKEN header is not present, the SDK will try to refresh a token using the local Vercel CLI session and your project configuration.

import asyncio
from vercel.oidc import get_vercel_oidc_token, decode_oidc_payload

async def main():
    token = await get_vercel_oidc_token()
    payload = decode_oidc_payload(token)
    sub = payload.get("sub")

asyncio.run(main())

Notes:

  • Requires a valid Vercel CLI login on the machine running the code for refresh.
  • Project info is resolved from .vercel/project.json.

Examples

See examples/ for runnable scripts:

  • runtime_cache_basic.py: set/get with fallback to in-memory
  • cache_tags.py: tag-based invalidation
  • build_cache_env.py: shows behavior when cache env vars are set
  • fastapi_oidc_plus_cache/: small FastAPI demo wiring headers/oidc

Development

  • Lint/typecheck/tests:
uv pip install -e .[dev]
uv run ruff format --check && uv run ruff check . && uv run mypy src && uv run pytest -v
  • CI runs lint, typecheck, examples as smoke tests, and builds wheels.
  • Publishing: push a tag (vX.Y.Z) that matches project.version to publish via PyPI Trusted Publishing.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vercel_sdk-0.0.4.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vercel_sdk-0.0.4-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file vercel_sdk-0.0.4.tar.gz.

File metadata

  • Download URL: vercel_sdk-0.0.4.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vercel_sdk-0.0.4.tar.gz
Algorithm Hash digest
SHA256 ba98f7495c05987ce288cbefc2d49f54ca6db8d928e4db67b5e0716bc9fe407d
MD5 0a9bca0b890abda7d69497aff282cd68
BLAKE2b-256 ed4969a709dd2458382b1851372dc5fd350c3ceecc9e9f92404243bd7d18fdbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for vercel_sdk-0.0.4.tar.gz:

Publisher: publish.yml on vercel/vercel-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vercel_sdk-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: vercel_sdk-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vercel_sdk-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2f0e90502e7b87399dd56e3d7b965fc561a7d53a6d7582dc3d5e6af4548a14fa
MD5 ea7010fdc09bc75fb1ffe0fd8904d1c2
BLAKE2b-256 e03a3358f2c75ebcddab762bfcdac912b645d918b8f609c1be199bfe51ed7cad

See more details on using hashes here.

Provenance

The following attestation bundles were made for vercel_sdk-0.0.4-py3-none-any.whl:

Publisher: publish.yml on vercel/vercel-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page