canonical: https://jentic.com/apis/hostfully.com/hostfully

# Hostfully API

Jentic publishes the only available OpenAPI specification for Hostfully API, keeping it validated and agent-ready. The Hostfully API powers vacation rental property management - properties, leads/bookings, guest messages, photos, and pricing live behind 31 endpoints. Operators can list new units, capture and convert leads, send guest messages, and adjust nightly pricing through a single integration. Useful for property management agents, channel-manager assistants, and AI concierges that automate guest communications.

## For AI agents

Manage vacation rental properties, leads/bookings, guest messages, photos, and pricing inside a Hostfully account.

## Scope

Does not handle payment processing, channel manager distribution to OTAs, or accounting - use for managing Hostfully properties, leads, messages, photos, and pricing only.

## Capabilities

- Create, update, and delete vacation rental property listings
- Capture and convert leads into bookings, holds, or declines
- Send and resend messages to guests on a booking thread
- Upload, replace, and reorder property photos with metadata
- Adjust nightly pricing and minimum-stay rules per property
- Cancel or close bookings with audit-friendly status transitions

## Use cases

### Inquiry-to-Booking Conversion Agent

Run an agent that turns inbound inquiries into Hostfully leads and walks them toward booking. The agent calls POST `/api/v3/leads` to capture each inquiry, then POST `/api/v3/leads/{uid}/mark-as-booked` when the guest commits, or POST `/api/v3/leads/{uid}/decline` when criteria do not match. Reduces the manual back-and-forth on every inquiry.

Example prompt: Create a lead for property uid xyz with the inquiry details, then mark it booked via POST `/api/v3/leads/{uid}/mark-as-booked` once payment confirms.

### Guest Messaging Concierge

Power a guest concierge that sends pre-arrival instructions, mid-stay check-ins, and post-stay reviews. The agent calls POST `/api/v3.2/messages` with a templated payload and tracks delivery via GET `/api/v3.2/messages/{messageUid}.` Resend failed messages with the resend endpoint without duplicating the thread.

Example prompt: Send a check-in instructions message to the booking guest 48 hours before arrival via POST `/api/v3.2/messages.`

### Listing Refresh and Photo Management

Keep a Hostfully portfolio fresh by uploading new photos and updating listing copy through the API. The agent calls POST `/api/v3/properties/{uid}/photos` to add seasonal hero shots, PATCH `/api/v3/photos/{uid}` to update captions, and DELETE for retired imagery. Useful for chains running seasonal refreshes across many units.

Example prompt: Upload a new hero photo to property uid abc and PATCH the photo metadata to set it as the cover image.

### Dynamic Pricing Sync

Sync nightly rates and minimum stays from a pricing engine into Hostfully. The agent retrieves recommended pricing externally, then writes updates through the Pricing endpoints so they propagate to connected channels. Stops manual rate sheet uploads.

Example prompt: Read recommended rates from the pricing engine and write nightly rates into Hostfully for property uid xyz for the next 30 days.

### AI Property Operations Agent via Jentic

Expose Hostfully's 31 endpoints to an AI agent through Jentic so it can manage properties, leads, messages, photos, and pricing without you maintaining a custom client. Jentic stores the API key in your Jentic One instance and surfaces each operation by intent search.

Example prompt: Search Jentic for 'mark Hostfully lead as booked', load the schema, and execute against the lead uid for a confirmed reservation.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v3/properties` | List vacation rental properties |
| POST | `/api/v3/leads` | Create a lead for an inquiry |
| POST | `/api/v3/leads/{uid}/mark-as-booked` | Convert a lead to a booking |
| POST | `/api/v3/leads/{uid}/cancel` | Cancel a booking |
| POST | `/api/v3.2/messages` | Send a guest message |
| POST | `/api/v3/properties/{uid}/photos` | Upload a property photo |

## Key resources

- **Properties** — Vacation rental property listings with full CRUD via `/api/v3/properties.`
- **Leads** — Inquiry and booking records with mark-as-booked, cancel, close, hold, and decline transitions.
- **Messages** — Guest messaging threads with create, retrieve, and resend via `/api/v3.2/messages.`
- **Photos** — Property photo upload, replacement, and metadata management.
- **Pricing** — Nightly rate and stay-rule adjustments per property.

## Why Jentic

- **Setup:** Wiring Hostfully by hand means choosing between its X-HOSTFULLY-APIKEY header and OAuth 2.0 auth, tracking mixed v3 and v3.2 paths on the api.hostfully.com host, and handling errors yourself. Through Jentic you install once, import the Hostfully API from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Hostfully puts the lead id in the URL path (`/api/v3/leads/{uid}/...`), so a rule can pin your agent to one lead: it can mark that lead booked or add messages for it and nothing else. You choose the operations it may call, so actions like cancelling a lead are not included unless you add them.
- **Credential handling:** Your Hostfully API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a lead in Hostfully' or 'list my properties', and Jentic returns the matching Hostfully operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Cloudbeds API** — Hospitality property management for hotels and B&Bs with deeper PMS primitives.
- **Booking.com API** — Distribution channel where many vacation rentals capture inbound inquiries.
- **Stripe API** — Captures deposits and balance payments tied to a Hostfully booking.

## FAQ

### Why is there no official OpenAPI spec for Hostfully API?

Hostfully does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Hostfully API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Hostfully API use?

Two options: an API key passed in a request header, or OAuth 2.0 for partner integrations. Jentic stores either credential in your Jentic One instance and injects it at execution time, so the raw secret never enters the agent's context.

### Can I convert a lead to a booking with the Hostfully API?

Yes. POST `/api/v3/leads/{uid}/mark-as-booked` transitions a lead to a confirmed booking. Related transitions include cancel, close, hold, and decline - each is a dedicated POST endpoint that records the action against the lead's audit trail.

### What are the rate limits for the Hostfully API?

Hostfully applies tenant-level rate limits that scale with plan tier. Honor 429 responses, paginate list calls, and avoid hot-loop polling on `/api/v3.2/messages` - webhooks are preferred for message delivery state.

### How do I send a guest message with the Hostfully API through Jentic?

Run pip install jentic, search for 'send guest message in Hostfully', load the POST `/api/v3.2/messages` schema, and execute with the booking and message body. Jentic handles auth automatically.

### Can I update property photos with the Hostfully API?

Yes. POST `/api/v3/properties/{uid}/photos` uploads a new photo, PUT `/api/v3/photos/{uid}` replaces the file, PATCH `/api/v3/photos/{uid}` updates metadata, and DELETE removes a photo from the listing.

### Can I limit what my agent is allowed to do with the Hostfully API?

Yes. Because you self-host Jentic One, your own rules decide which Hostfully operations and credentials the agent may use. Since Hostfully puts the lead id in the URL path, such as `/api/v3/leads/{uid}/mark-as-booked`, you can pin the agent to a single lead so it only marks that lead booked or sends messages on it and nothing else. You pick the operations it can call, so an action like `/api/v3/leads/{uid}/cancel` is excluded unless you add it.
