POST /validate
API reference

POST /validate

Re-check a price you obtained earlier (from /decide or /search/stays). Returns still_valid: true when the live price is within ±2%, otherwise a refreshed offer + reason.

POST /v1/validate
ParameterTypeDescription
property_idrequiredstringFrom a prior /decide or /search/stays result.
datesrequiredStayDatescheck_in, check_out.
guestsrequiredGuestsParty composition.
offer_to_comparerequiredOfferToComparetotal_eur (required), ota (optional).

Request

curl -X POST https://api.b2a.bluepillow.com/v1/validate \
  -H "Authorization: Bearer $B2A_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "property_id": "prop_abc123",
    "dates":  {"check_in": "2026-06-10", "check_out": "2026-06-13"},
    "guests": {"adults": 2},
    "offer_to_compare": {"ota": "Booking", "total_eur": 210.00}
  }'

Response 200

{
  "still_valid": false,
  "price_delta_eur": 18.50,
  "delta_percent": 8.8,
  "refreshed_offer": {
    "amount": 228.50,
    "currency": "EUR",
    "ota": "Booking",
    "refundable": true
  },
  "reason": "price_changed"
}

reason is one of price_changed, sold_out, dates_unavailable. Null when still_valid: true.

Errors

400 invalid_request · 401 authentication_failed · 429 rate_limited