Resources
SDKs
Typed clients for the REB API — create → poll → result, with a subscribe() helper that hides polling, typed errors and idempotency keys.
TypeScript · live#
@reelestateboss/sdk — zero-dependency, first-class types, works in Node 18+ and any modern runtime.
npm install @reelestateboss/sdkimport { REB } from "@reelestateboss/sdk";
const reb = new REB({ apiKey: process.env.REB_KEY! });
// submit → poll → result, the poll handled for you
const task = await reb.generate({ model: "flux-ultra", prompt: "a bright, airy living room, MLS-grade" });
const result = await reb.subscribe(task, { onProgress: (t) => console.log(t.status) });
console.log(result.output);
// one-call outcome recipes — listing kit is synchronous (photos + details in, kit out)
const { kit } = await reb.recipes.listingKit({
photos: ["https://cdn.example.com/photo-1.jpg", "https://cdn.example.com/photo-2.jpg"],
details: { address: "123 Main St", city: "Austin", price: "$750,000", beds: "4", baths: "3" },
});Python · live#
reelestateboss — zero-dependency stdlib client, same shape as the TS SDK. Python 3.8+.
pip install reelestatebossimport os
from reelestateboss import REB
reb = REB(api_key=os.environ["REB_KEY"])
# submit -> poll -> result, the poll handled for you
task = reb.generate(model="flux-ultra", prompt="a bright, airy living room, MLS-grade")
result = reb.subscribe(task, on_progress=lambda t: print(t["status"]))
print(result["output"])
# one-call outcome recipes — listing kit is synchronous (photos + details in, kit out)
kit = reb.recipes.listing_kit(
photos=["https://cdn.example.com/photo-1.jpg", "https://cdn.example.com/photo-2.jpg"],
details={"address": "123 Main St", "city": "Austin", "price": "$750,000", "beds": "4", "baths": "3"},
)["kit"]