> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wipe.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Python SDK

> Use Wipe.me from Python applications, automation, and backend services.

Package: [`wipe-me`](https://pypi.org/project/wipe-me/)\
Import name: `wipeme`\
Requires: Python 3.10 or newer\
Current prerelease: `0.5.0a1`
Source: [Python SDK](https://github.com/wipe-me/sdk/tree/main/python)

```bash theme={null}
python -m pip install --pre wipe-me==0.5.0a1
```

## Encrypt, create, retrieve, and decrypt

```python theme={null}
import time

from wipeme import Client, decrypt, encrypt, generate_message_id, generate_secret

api = Client("https://wipe.me", client_id="my-app")
message_id, secret = generate_message_id(), generate_secret()

encrypted = encrypt(
    message_id,
    secret,
    "Private hello",
    on_progress=print,
)

created = api.create(
    message_id,
    encrypted.envelope,
    deletion_key=encrypted.deletion_key_header,
    content_hash=encrypted.content_hash,
    expires_at=int(time.time() * 1000) + 24 * 60 * 60 * 1000,
)

download = api.retrieve(message_id)
opened = decrypt(download.body, message_id, secret)
```

The synchronous client supports create, atomic one-time retrieve, idempotent delete,
health, effective-limit, bounded network-test, and privacy-safe performance-report
operations. Encryption and transport operations expose byte-based progress callbacks.
Attachment framing is configurable.

API failures raise `APIError` with `status`, stable `code`, human-readable `message`,
and optional `retry_after`.

<Warning>
  The fragment secret must remain local and never be sent to the API. Treat
  authentication, integrity, and content-hash failures as fatal.
</Warning>

See the [Python source and README](https://github.com/wipe-me/sdk/tree/main/python)
for attachment types, private-link helpers, deletion, health, and the complete API.
