Metadata-Version: 2.4
Name: reelestateboss
Version: 0.1.0
Summary: Official Python SDK for the Reel Estate Boss API — real-estate AI content generation (create → poll → result) with a subscribe() helper.
Project-URL: Homepage, https://www.reelestateboss.com/developers
Project-URL: Documentation, https://www.reelestateboss.com/developers/docs
Project-URL: Source, https://github.com/renova-wellness/reb
Author: Reel Estate Boss
License: MIT
License-File: LICENSE
Keywords: ai,api,image-generation,listing,real-estate,reelestateboss,sdk,video-generation
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# reelestateboss

Official Python SDK for the [Reel Estate Boss API](https://www.reelestateboss.com/developers) — real-estate AI content generation. The same engine [The Machine](https://www.reelestateboss.com/studio/app/machine) runs on.

Zero dependencies — standard library only. Python 3.8+.

```bash
pip install reelestateboss
```

## Quickstart

```python
import os
from reelestateboss import REB

reb = REB(api_key=os.environ["REB_KEY"])  # create a key at /developers/app/keys

# submit -> poll -> result, the poll handled for you:
task = reb.generate(model="flux-11-pro-ultra", prompt="a bright, airy living room, MLS-grade")
result = reb.subscribe(task, on_progress=lambda t: print(t["status"]))
print(result["output"])  # output URLs
```

## Recipes — one call, one outcome

```python
kit = reb.subscribe(reb.recipes.listing_kit("https://your-mls.com/listing/123"))
reb.subscribe(reb.recipes.listing_enhance("https://example.com/photo.jpg"))  # the 17.3s enhance
reb.subscribe(reb.recipes.lot_trace("https://example.com/aerial.jpg"))
```

Every recipe response is fair-housing filtered server-side.

## Idempotency & errors

```python
reb.generate(model="flux-schnell", prompt="…", idempotency_key="listing-123-hero")

from reelestateboss import REBError
try:
    reb.generate(model="nope")
except REBError as e:
    if e.status == 402:
        print("add a card")
```

Docs: https://www.reelestateboss.com/developers/docs · MIT licensed.
