Channel & inventory

Distribute everywhere,
with one integration.

Airbnb, Booking.com, VRBO, Plumguide. Forty-six PMS platforms. Plus direct. Repull is the channel manager and PMS aggregator in one — and the whole template is open source.

The shape of the problem

Channel managers are usually a closed box. This one isn't.

The incumbents make you adopt their schema, their UI, and their billing relationship with your users. Repull inverts that — your schema, your UI, your billing. We just handle the channel adapters.

One API, four OTAs

Push listings, photos, calendars, rates, and messages to Airbnb, Booking.com, VRBO, and Plumguide through one schema. Twenty-six Airbnb endpoints, eleven Booking endpoints, on tap.

46 PMS platforms

Hostaway, Guesty, Cloudbeds, Mews, OwnerRez — connect once, read with the same shape regardless of the upstream platform. The PMS adapters are open source too.

Custom Schema Builder

Repull normalizes everything to a sensible default schema. If yours is different, define it once with the Custom Schema Builder, set the X-Schema header, and every response comes back in your field names.

Worked example

Fork the open-source template, ship by the weekend.

repull-channel-manager is the full Next.js app — calendar, reservations, connections, messaging, reviews — running on Repull's API. AI features inside it run on Vanio AI. Clone it, point it at your own Repull workspace, and you have a working channel manager today.

  1. 1

    Clone the template

    A git clone, an npm install, and an .env file with your Repull API key. The Vercel deploy is one click after that.

  2. 2

    Point it at your workspace

    Each customer of yours gets their own Repull workspace — scoped API keys, scoped data. Your app is the multi-tenant layer on top.

  3. 3

    Customize the surfaces you care about

    Calendar grid, reservation drawer, message inbox, review approval flow — every screen is yours to extend. The data layer stays put; the UI is yours.

terminal · bash
git clone https://github.com/ivannikolovbg/repull-channel-manager
cd repull-channel-manager
npm install
cp .env.example .env.local
# add REPULL_API_KEY + REPULL_WORKSPACE_ID
npm run dev
property-sync.ts · ts
import { Repull } from '@repull/sdk'

const repull = new Repull({
  apiKey: process.env.REPULL_API_KEY!,
  workspaceId: process.env.REPULL_WORKSPACE_ID!,
})

// Push a property to every connected channel
await repull.properties.create({
  title: 'R-Sable 1302',
  bedrooms: 2,
  city: 'Radium Hot Springs',
  channels: ['airbnb', 'booking', 'vrbo'],
  photos: [...],
  amenities: ['wifi', 'parking', 'hot-tub'],
})

// Or only Airbnb, with platform-specific fields:
await repull.properties.create({
  title: 'R-Sable 1302',
  ...,
  channels: ['airbnb'],
  airbnb: { instantBook: true, minNights: 2 },
})

Why open source matters here

The integration code belongs to you.

Repull's connectors live in the open. If we ever stopped existing, you'd still have the code that talks to Airbnb. That's a deliberate choice, not a marketing line.

No lock-in

Every adapter is open source on GitHub. The channel-manager template is open source. The SDKs are open source. You can fork the entire stack.

Reviewable

See exactly how Repull talks to Airbnb. File a bug, send a PR, or copy a function. The code is the documentation.

Built in the open

Issues, releases, and roadmap live on GitHub. New connector requests land in PR review the same week.

Connect once, distribute everywhere.

An API key in 30 seconds. Connect a PMS or list direct, and every channel is a write call away.