pms_unavailable
The PMS says the dates or the unit are not available. Nothing was booked. Pick other dates, or quote first.
When it fires
You created or changed a booking on a listing managed in a PMS, and the PMS says the dates (or the unit) are not available: taken, closed, or blocked by a stay restriction. Nothing was booked or changed.
The PMS checks availability itself, so this is its answer, not Repull's. messagecarries the PMS's own wording, and pms.errors the section that failed.
Response shape
Every Repull error follows the same envelope. The code is stable and safe to switch on.
{
"error": {
"code": "pms_unavailable",
"message": "Guesty cannot take it: Guesty: listing is not available for the requested dates",
"fix": "Guesty says the dates (or the unit) are not available. Pick other dates, or check them first with `POST /v1/reservations/quote`. Nothing was booked.",
"docs_url": "https://repull.dev/docs/errors/pms_unavailable",
"request_id": "req_01J5X7Y8Z9ABCDEF12345678",
"provider": "guesty",
"pms": {
"applied": [],
"errors": [{ "section": "reservation", "code": "unavailable", "message": "Guesty: listing is not available for the requested dates" }]
}
}
}How to fix
- Pick other dates or another unit.
- Where the listing supports it (`capabilities.reservations.quote`), check the stay first with `POST /v1/reservations/quote` — `available: false` comes with the PMS reasons in `restrictions`.
- Retry with a new `Idempotency-Key`, since the request itself changed.
Examples
curl
curl -X POST https://api.repull.dev/v1/reservations/quote \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"listingId": 4118, "checkIn": "2026-10-01", "checkOut": "2026-10-05", "adults": 2}'
# → { "available": false, "restrictions": ["Guesty: minimum stay is 3 nights"], ... }TypeScript
const res = await fetch('https://api.repull.dev/v1/reservations', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.REPULL_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(booking),
})
if (res.status === 409) {
const { error } = await res.json()
if (error.code === 'pms_unavailable') {
return { unavailable: true, reason: error.message } // offer other dates
}
}If you're an AI agent
The PMS says the dates or unit are not available; nothing was booked. Do not retry the same dates. Ask the user for other dates, or check with POST /v1/reservations/quote first.
Related
- Error reference — the full table of error codes
- Using Repull from AI agents — patterns for handling errors in agent loops
- Creating reservations
- PMS reservation support
Hit an error that isn't covered? Email hello@repull.dev with the request id from the response headers.