The integration is live and listed on the Uplisting marketplace. Connect your Uplisting account and RentReel pulls your properties and bookings (gross revenue, cleaning fees, channel commissions, booking taxes, and net owner payouts), then joins them to your bank, cards, and mileage to produce a per-property Schedule E for tax season.
Read-only connection using Uplisting's OAuth 2.0 flow (PKCE). RentReel requests the minimum scopes: properties:read and bookings:read. Nothing else. No writes to your calendar, prices, or messages.
Each booking is mapped: gross rent → Line 3, cleaning fees → Line 7, channel + processing commissions → Line 8, management fees → Line 11. Occupancy tax passes through, never double-counted as income.
The bank deposit from Airbnb and the corresponding Uplisting booking reconcile to one revenue event, not two. Same story for Vrbo and Booking.com.
Hours from bookings, cleaner logs, and mileage roll up into the 750-hour REPS tracker and the 500-hour and 100-hour §469 material-participation tests. If you're chasing the STR loophole, you already know why this matters.
The sync doesn't import one blob called "revenue." Each Uplisting booking arrives with its financial fields separated, and each field is mapped to the Schedule E line it belongs on:
Each booking also carries its context: channel (Airbnb / Vrbo / Booking.com / direct), the channel's own reservation ID, check-in and check-out dates, night count, and currency. That's what powers RentReel's average-stay and §469 badges per property.
Uplisting's operator base is UK-heavy, and RentReel is live in 🇺🇸 🇬🇧 🇨🇦 🇦🇺 🇮🇪 🇲🇽. When your first synced bookings arrive in a non-USD currency (GBP, say), RentReel offers to switch your workspace to the matching tax mode (UK SA105 instead of US Schedule E; T776 for CA, the ATO rental schedule for AU, Form 11 for IE). It asks first; you can decline or change back in Settings anytime.
properties:read and bookings:read.Yes. The scopes RentReel requests are properties:read and bookings:read. The Uplisting API physically cannot let RentReel modify a calendar, change a price, or send a guest message with those scopes.
Pull new bookings anytime with the on-demand refresh on the Data & Connections page. It's server-side debounced to one call every 30 seconds to stay under Uplisting's rate limits. Automatic scheduled sync is in progressive rollout.
They keep their old rows. When the API sync sees the same booking (matched on the Uplisting booking id), it deduplicates cleanly. You won't get two of anything.
Data & Connections → Direct PMS connections → Uplisting → Disconnect. Your token is deleted from RentReel's servers. Bookings already imported stay in RentReel; only new syncs stop.
Any RentReel plan. Solo, Investor, and Portfolio all include Uplisting sync at no extra cost.
Supabase (US region), encrypted at rest. Your Uplisting OAuth tokens are further encrypted with AES-GCM using a per-deployment key that never leaves our Cloudflare Worker.