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

# Python SDK

> Gate AI-generated outbound with the official DataVibe Python client.

## Install

```bash theme={null}
pip install datavibe
```

## Async production gate

```python theme={null}
from datavibe import DataVibeClient

client = DataVibeClient(api_key="dv_live_your_key")

result = await client.intercept_async(
    recipient="prospect@example.com",
    subject="Following up",
    body_text="Hi Jordan — checking in.",
    body_html="<p>Hi Jordan — checking in.</p>",
    source_model="gpt-4o",
    idempotency_key="campaign-42-send-1001",
)

if result.status in {"BLOCKED", "FAILED", "REJECTED"}:
    raise RuntimeError(f"Do not send: {result.status}")

if result.status in {"QUEUED", "DISPATCHING"}:
    print("Hold for review:", result.action_id, result.review_url)
else:
    print("Released:", result.action_id)
```

Use `client.intercept(...)` in synchronous code.

## Stateless preview

```python theme={null}
preview = client.check("AI-generated text", content_type="email")
```

Use `await client.acheck(...)` for an async preview. Preview methods do not return
an action ID or review URL. Submit through `intercept()` or `intercept_async()`
when review work must be created.
