Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.stagingspaces.app/llms.txt

Use this file to discover all available pages before exploring further.

Batch Staging

Stage multiple room images in parallel for maximum throughput.

Python example

import requests
import concurrent.futures
from pathlib import Path

API_KEY = "sk_live_xxxxxxxxxxxxx"
BASE_URL = "https://stagingspaces-production-6fb7.up.railway.app"

def stage_image(image_path, style="modern"):
    """Stage a single image. Returns result dict."""
    with open(image_path, "rb") as f:
        response = requests.post(
            f"{BASE_URL}/api/v1/stage",
            headers={"Authorization": f"Bearer {API_KEY}"},
            files={"image": f},
            data={"style": style}
        )
    result = response.json()
    result["source_file"] = str(image_path)
    return result

def batch_stage(image_dir, style="modern", max_workers=5):
    """Stage all images in a directory concurrently."""
    images = list(Path(image_dir).glob("*.jpg")) + list(Path(image_dir).glob("*.png"))
    results = []

    with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
        futures = {
            executor.submit(stage_image, img, style): img
            for img in images
        }

        for future in concurrent.futures.as_completed(futures):
            result = future.result()
            if result.get("success"):
                print(f"✓ {result['source_file']}{result['claim_code']}")
            else:
                print(f"✗ {result['source_file']}: {result.get('error')}")
            results.append(result)

    return results

# Stage all images in a folder
results = batch_stage("./property_photos/", style="scandinavian", max_workers=5)

# Collect claim codes
claim_codes = [r["claim_code"] for r in results if r.get("success")]
print(f"\nStaged {len(claim_codes)} images")
print(f"Claim codes: {', '.join(claim_codes)}")

Rate limits

  • 60 requests/minute per API key
  • 10 concurrent staging jobs max
  • Set max_workers=5 for optimal throughput without hitting limits

Tips

  • Check your credit balance before batch staging to avoid partial failures
  • Use auto top-up to prevent interruptions during large batches
  • Each image gets its own claim code — or you can collect them for the agent