# Repull > Repull is the unified API for vacation-rental tech: connect to 13 channels (Airbnb, Booking.com, VRBO, Plumguide + 9 PMSes), publish listings with AI-generated content, price them with market intelligence, and stream events through signed webhooks — all behind one REST API and six native SDKs. > Base URL: https://api.repull.dev > Hosted Connect: https://connect.repull.dev/{sessionId} > Docs: https://repull.dev/docs > OpenAPI: https://api.repull.dev/openapi.json > Full LLM docs: https://repull.dev/llms-full.txt > Agent discovery: https://repull.dev/agents.txt + https://repull.dev/.well-known/agents.json > Updated: 2026-05-01 Authentication is a Bearer API key (`sk_test_*` for sandbox, `sk_live_*` for production) plus the `X-Workspace-Id` header. CORS is permissive (`Access-Control-Allow-Origin: *`) so browser SDKs work out of the box. Sandbox returns realistic seeded data with no side effects — share the special header value `__sandbox__` from a public demo if you want to forward calls without exposing a key. ## Quickstart - [Get an API key](https://repull.dev/dashboard/keys): sign up, copy your sandbox key, grab your full Workspace ID. - [Quickstart guide](https://repull.dev/docs/introduction): one-page tour of authentication, your first call, and the three core capability surfaces (Connect, Listings, Markets). - [Sandbox mode](https://repull.dev/docs/sandbox-mode): seeded data, no rate limits, every endpoint round-trips. - [Authentication](https://repull.dev/docs/api-keys): headers, key prefixes, idempotency keys, schema adapters. - [Errors](https://repull.dev/docs/errors) and [Rate Limits](https://repull.dev/docs/rate-limits): tier-based limits, 429 / 402 / 401 semantics. ## Connect (multi-channel onboarding) Repull ships a hosted, white-label picker that walks a host through claiming or connecting any of 13 supported channels. Mint a session server-side, hand the URL to your user, get a postMessage / webhook when they finish. - [Connect overview](https://repull.dev/docs/connect): the 13 channels, the picker session model, and the SDK one-liner `repull.connect.create({ channels, redirectUrl })`. - [OAuth Connect (Airbnb)](https://repull.dev/docs/oauth-connect): full-access vs read-only (`accessType`), branding, redirect handling. - [Connect dashboard](https://repull.dev/dashboard/connect): launch the picker yourself; useful for testing. - [Connections dashboard](https://repull.dev/dashboard/connections): manage every active connection across channels. - Channels supported today: Airbnb (OAuth), Booking.com (Connectivity Provider claim → room mapping), VRBO (activation), Plumguide (credentials), Hostaway, Guesty, OwnerRez, Smoobu, Beds24, iGMS, Hospitable, Lodgify, BookingSync. - Booking.com claim flow: `POST /v1/connect/booking/verify` → `POST /v1/connect/booking/rooms` → `POST /v1/connect/booking/map-rooms` → CNS callback at `/v1/connect/booking/callback`. ## Listings (create, generate content, publish) - [Listings dashboard](https://repull.dev/dashboard/listings): full listings table with filters and pagination. - [Create a listing](https://repull.dev/dashboard/listings/new): visual create + AI content gen + multi-channel publish. - `POST /v1/listings`: create a Repull-native listing. - `GET /v1/listings`: cursor-paginated catalog with filters. - `POST /v1/listings/{id}/generate-content`: Kimi-powered title, summary, description, and amenities copy. - `POST /v1/listings/{id}/publish/airbnb` and `POST /v1/listings/{id}/publish/booking`: push to channels. - `GET /v1/listings/{id}/publish-status`: per-channel publish state. ## Markets (Atlas market intelligence) Real-time competitive intelligence on every short-term-rental market you operate in, powered by [Atlas](https://atlasdna.ai) as the data partner. - [Markets product page](https://repull.dev/markets): the why and the pricing model. - [Markets docs](https://repull.dev/docs/markets): list, deep dive, calendar, comp sets, browse-the-world catalog. - [Markets dashboard](https://repull.dev/dashboard/markets): map, KPIs, demand calendar, comps, segments, with subscribe + cancel from the UI. - [Browse markets](https://repull.dev/dashboard/markets/browse): search-first discovery + featured carousel + country filter, all paginated. - `GET /v1/markets`: every market that contains one of your listings, with median ADR, occupancy, and demand index. - `GET /v1/markets/{city}`: deep dive for one market. - `GET /v1/markets/{city}/calendar?from=&to=`: day-by-day demand + curated local events (concerts, sports, conferences). - `GET /v1/markets/browse?country=&page=&q=`: paginated global catalog for expansion research. - `GET /v1/listings/{id}/comps`: per-listing comp set with rate position (p25 / p50 / p75). - `GET /v1/listings/{id}/segments`: segment intelligence — how the listing reads against bedroom / guest / amenity peers. - Pricing: 1 free market per workspace, $49/mo per additional market, billed via Stripe (402 Payment Required if you exceed the free tier without a subscription). ## Pricing (AI dynamic pricing) - [Pricing product page](https://repull.dev/pricing): how the AI engine builds nightly recommendations. - [Pricing docs](https://repull.dev/docs/pricing): strategy editor, history, bulk apply, and per-channel publishing. - [Pricing dashboard](https://repull.dev/dashboard/pricing): nightly recommendations, accept/decline, strategy weights, history. - `GET/PUT /v1/listings/{id}/pricing`: read or write the pricing strategy + recommendations for a single listing. - `POST /v1/listings/pricing/bulk`: apply recommendations across many listings in one call. - `GET /v1/listings/pricing` (with history): recommendation history and applied-vs-ignored audit. - Channel-specific pushes: `PUT /v1/channels/airbnb/listings/{id}/pricing`, `PUT /v1/channels/booking/availability` (rate + availability), `PUT /v1/channels/plumguide/pricing`. ## Webhooks (signed delivery + replay) - [Webhooks intro](https://repull.dev/docs/webhooks-introduction): subscription model and delivery guarantees. - [Event types](https://repull.dev/docs/webhook-event-types): the full catalog (reservation.created/updated/cancelled, conversation.updated, listing.published, sync.complete/error, account.connected/disconnected, and more — 14 events live). - [Verify signatures](https://repull.dev/docs/verify-webhook-signatures): HMAC-SHA256 over the raw body with the per-endpoint secret. - [Retries & replay](https://repull.dev/docs/webhook-retries): exponential backoff and one-click replay from the dashboard. - [Manage webhooks](https://repull.dev/docs/manage-webhooks): full CRUD lifecycle, secret rotation, test fires. - [Webhooks dashboard](https://repull.dev/dashboard/webhooks): add endpoint, pick events, inspect delivery history, replay, rotate secrets. - API: `POST /v1/webhooks`, `GET /v1/webhooks`, `PATCH /v1/webhooks/{id}`, `DELETE /v1/webhooks/{id}`, `GET /v1/webhooks/{id}/deliveries`, `POST /v1/webhooks/{id}/test`, `POST /v1/webhooks/{id}/ping`, `POST /v1/webhooks/{id}/rotate-secret`, `GET /v1/webhooks/event-types`. ## SDKs - [SDKs overview](https://repull.dev/docs/sdks): the family, language coverage, install paths. - [TypeScript SDK](https://www.npmjs.com/package/@repull/sdk) — `npm install @repull/sdk` (v0.1.0). - [Python SDK](https://pypi.org/project/repull/) — `pip install repull` (v0.1.0). - [PHP SDK](https://packagist.org/packages/repull/sdk) — `composer require repull/sdk`. - [Go SDK](https://github.com/ivannikolovbg/repull-go) — `go get github.com/ivannikolovbg/repull-go`. - [Ruby SDK](https://rubygems.org/gems/repull) — `gem install repull`. - [.NET SDK](https://www.nuget.org/packages/Repull.SDK) — `dotnet add package Repull.SDK`. - [SDK dashboard](https://repull.dev/dashboard/sdks): copy install snippets per language with your workspace pre-filled. - [MCP server (Claude / Cursor)](https://repull.dev/docs/mcp-server): `npx @repull/mcp` — exposes Repull tools to any MCP client. - [Connect Widget docs](https://repull.dev/docs/connect-widget): drop-in JS picker that mints a Connect session and renders the chooser. - [Vercel AI SDK provider](https://www.npmjs.com/package/@repull/ai-sdk) — `npm install @repull/ai-sdk` for `streamText` / `generateText` tool bindings. ## Open source - [Open Source overview](https://repull.dev/open-source): the whole ecosystem, why it's MIT, no lock-in. - [repull-channel-manager](https://github.com/ivannikolovbg/repull-channel-manager): full open-source channel manager template — listings, calendar with Atlas pricing overlay, messaging inbox, reviews. Fork it, brand it, ship it. - [repull-revenue](https://github.com/ivannikolovbg/repull-revenue): open-source revenue management starter — markets KPIs, demand calendar, comp sets, recommendations, bulk apply, strategy editor, history. - [repull-mcp](https://github.com/ivannikolovbg/repull-mcp): MCP server (`@repull/mcp`) for Claude Desktop, Cursor, and any MCP client. - [repull-ai-sdk](https://github.com/ivannikolovbg/repull-ai-sdk): Vercel AI SDK tool bindings — drop Repull into any LLM agent. - [repull-sdk](https://github.com/ivannikolovbg/repull-sdk): the TypeScript SDK + live demo (`apps/demo`) + channel-manager skeleton (`apps/channel-manager`). ## API reference - [API introduction](https://repull.dev/docs/api/introduction): the full REST surface organised by resource. - [OpenAPI 3.0 spec](https://api.repull.dev/openapi.json): generated, versioned, with `operationId` on every route — feed it to any code generator. - [Schema adapters](https://repull.dev/docs/calry-schema): Calry-compatible responses via `X-Schema: calry`; native via `X-Schema: native`. - [Migrate from Calry](https://repull.dev/docs/migrate-from-calry): swap base URL, set the header, done. - [Changelog](https://repull.dev/changelog): all shipped changes with an [RSS feed](https://repull.dev/changelog/feed.xml). ## Optional - [Sandbox scenarios](https://repull.dev/docs/sandbox-scenarios): pre-seeded fixtures for happy paths, edge cases, and failure modes. - [Best practices](https://repull.dev/docs/best-practices): production checklist (idempotency, retries, webhook verification, rate-limit handling). - [Troubleshooting](https://repull.dev/docs/troubleshooting): common errors and how to diagnose them. - [Rate limits](https://repull.dev/docs/rate-limits): per-tier ceilings; Sandbox is uncapped. - [Usage dashboard](https://repull.dev/dashboard/usage) and [Logs](https://repull.dev/dashboard/logs): live request volume, per-endpoint breakdown, and request log tailing. - [PMS coverage](https://repull.dev/docs/pms-coverage): per-PMS feature matrix. - [Use cases](https://repull.dev/docs/use-cases): patterns for channel managers, dynamic pricing tools, AI assistants, and analytics.