Skip to main content

pixelvault

Official Python SDK for PixelVault, agent-first image hosting. Sync and asyncio clients on top of httpx. Python 3.9+.

pip install pixelvault

Quick start

from pixelvault import PixelVault

pv = PixelVault()  # reads PIXELVAULT_API_KEY, or pass api_key="pv_live_..."

# A path, bytes or a binary file object
image = pv.images.upload("screenshot.png")
print(image["url"])  # https://img.pixelvault.dev/...

# Import from a URL, auto-delete after one hour
pv.images.upload(url="https://example.com/a.png", expires_in=3600)

With no API key at all, images.upload(file) makes an anonymous upload that expires after 30 days.

Asyncio:

from pixelvault import AsyncPixelVault

async with AsyncPixelVault() as pv:
    image = await pv.images.upload("screenshot.png")
    async for img in pv.images.list_all():
        print(img["id"])

API

Call What it does
images.upload(file | url=, folder=, visibility=, expires_in=, sign_expires_in=) Upload a file or import a URL
images.upload_batch(collection, images) Up to 50 images in one collection
images.list(page=, per_page=) / images.list_all() One page / iterator over all images
images.get(id) / images.delete(id) Fetch / delete one image
images.sign_url(id, expires_in=) Signed URL for a private image
usage.get() Plan, usage, limits and what is left this month
keys.list() / keys.create(label=, environment=) / keys.revoke(id) Manage your API keys (secret keys only)
register(email) Create an account, returns a first key once
device_login_start(email) + device_login_complete(email, code) Passwordless key minting

Errors and retries

Every failure raises PixelVaultError with .status (0 for network errors), .code (for example upload_limit_reached) and .retry_after (seconds, when sent).

from pixelvault import PixelVault, PixelVaultError

try:
    pv.images.upload("big.png")
except PixelVaultError as err:
    if err.code == "upload_limit_reached":
        print(err.message)  # links to the pricing page

The client retries 429 (honoring Retry-After up to 30 seconds) and, for GET/DELETE only, 5xx and network errors. Uploads are never retried after a 5xx, so a lost response cannot create a duplicate image. Tune with max_retries (default 2) and timeout (seconds, default 60).

License

MIT

Metadata

Release files for pixelvault 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pixelvault 0.1.0
File Size Uploaded Provenance
pixelvault-0.1.0.tar.gz 52.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pixelvault 0.1.0
File Interpreter ABI Platform
pixelvault-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 62.8 kB

Release files / pixelvault-0.1.0.tar.gz

Download URL pixelvault-0.1.0.tar.gz
Size 52.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a4ac7184969979ab13c7f7214654c701264aad5614fa661858688f15be11c2a1
BLAKE2b-256 checksum
How to use checksums
f618908f8858e9ae334694382891c75b914f099532deae1cc30f3ceb4b932c18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / pixelvault-0.1.0-py3-none-any.whl

Download URL pixelvault-0.1.0-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3cd6c198f2beee1d740e0475a738ac9b1dfc97eb38962070e2f1231a6a8fa571
BLAKE2b-256 checksum
How to use checksums
f737a38d585ec87f70540c3b861940f7e9a41ab2a032ef2c7266b77ac72a9385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for pixelvault 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pixelvault-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page