airbnb_rejected
Airbnb refused the change as sent. `message` carries Airbnb's reason.
When it fires
A write to Airbnb passed Repull's own validation, was sent to Airbnb, and Airbnb refused it as sent. It comes from PUT /v1/channels/airbnb/listings/{id}/pricing and /availability.
messageis Airbnb's own reason, passed through unchanged — for example a price below the listing minimum, or a setting that conflicts with the listing's pricing model. It is usually specific enough to fix the request directly.
Response shape
Every Repull error follows the same envelope. The code is stable and safe to switch on.
{
"error": {
"code": "airbnb_rejected",
"message": "daily_price is below the listing minimum",
"fix": "Airbnb refused this change as sent; `message` carries Airbnb's reason. Correct the request and send it again — resending the same body will be refused again.",
"docs_url": "https://repull.dev/docs/errors/airbnb_rejected",
"request_id": "req_01J5X7Y8Z9ABCDEF12345678"
}
}How to fix
- Read `message` — it is Airbnb's reason for refusing the change.
- Change the request to satisfy it (a different value, a different pricing `type`, or fewer dates).
- Send the corrected request. Resending the same body is refused again, so do not retry it unchanged.
Common gotchas
- Different from invalid_params. Both are 422.
invalid_paramsmeans the body failed validation before anything reached Airbnb, andfieldnames the field.airbnb_rejectedmeans Airbnb itself said no. - Settings types (
standard,rate-plan,fees) replace the whole object. GET the current pricing first and send it back with your change.
Examples
curl
curl -X PUT https://api.repull.dev/v1/channels/airbnb/listings/4118/pricing \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"type": "calendar", "operations": [{"dates": ["2026-07-01"], "daily_price": 1}]}'
# → 422 airbnb_rejected, message carries Airbnb's reasonTypeScript
const res = await fetch('https://api.repull.dev/v1/channels/airbnb/listings/4118/pricing', {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.REPULL_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ type: 'calendar', operations: [{ dates: ['2026-07-01'], daily_price: 1 }] }),
})
if (!res.ok) {
const { error } = await res.json()
if (error.code === 'airbnb_rejected') {
// Surface Airbnb's reason; do not retry the same body
throw new Error(`Airbnb refused the change: ${error.message}`)
}
}If you're an AI agent
Airbnb refused the change as sent. Read error.message (Airbnb's reason), change the request accordingly, then send it again. Never resend the same body unchanged.
Related
- Error reference — the full table of error codes
- Using Repull from AI agents — patterns for handling errors in agent loops
- Update Airbnb Pricing
- invalid_params
Hit an error that isn't covered? Email hello@repull.dev with the request id from the response headers.