Host API
One key, plain JSON, five calls. A property manager or channel manager keeps a host’s ZipInns stays in step with the rest of their channels. Money is in cents, days are YYYY-MM-DD, and a field ZipInns does not know is refused by name rather than ignored.
Start
The host creates a key under Hosting, API keys and gives it to the tool. Every call sends it as Authorization: Bearer zi_… to https://zipinns.com/api/zi/v1. A key acts for that host only, can be revoked at any time, and allows 300 calls a minute.
GET /listings
Every stay of the host: id, title, status, size, currency, nightly_price, weekend_price, cleaning_fee, min_nights, max_nights.
curl https://zipinns.com/api/zi/v1/listings \ -H "Authorization: Bearer $ZIPINNS_KEY"
PATCH /listings/{id}
Set any of nightly_price, weekend_price (null clears it), cleaning_fee, min_nights, max_nights. Prices are in cents.
curl -X PATCH https://zipinns.com/api/zi/v1/listings/$LISTING \
-H "Authorization: Bearer $ZIPINNS_KEY" -H "Content-Type: application/json" \
-d '{"nightly_price": 18000, "min_nights": 2}'GET /listings/{id}/calendar?start_date=…&end_date=…
Night by night: available, price, and the minimum stay for an arrival that day. Up to 400 days; end_date is the day after the last night.
curl "https://zipinns.com/api/zi/v1/listings/$LISTING/calendar?start_date=2026-11-01&end_date=2026-12-01" \ -H "Authorization: Bearer $ZIPINNS_KEY"
PUT /listings/{id}/availability
Close or open nights. Opening takes away only what the API closed: never a booking, a block the host made on ZipInns or nights read from another calendar.
curl -X PUT https://zipinns.com/api/zi/v1/listings/$LISTING/availability \
-H "Authorization: Bearer $ZIPINNS_KEY" -H "Content-Type: application/json" \
-d '{"start_date": "2026-12-24", "end_date": "2026-12-27", "available": false}'GET /reservations?updated_since=…
Reservations, oldest change first, 200 at a time: status (pending, accepted, denied, cancelled, expired), dates, guests, the guest’s first name, total and refunded in cents. Keep the last updated_at and ask again from it.
curl "https://zipinns.com/api/zi/v1/reservations?updated_since=2026-10-01T00:00:00Z" \ -H "Authorization: Bearer $ZIPINNS_KEY"
Errors
401 bad_key for a missing, wrong or revoked key; 404 for a listing that is not the key’s host’s; 400 with the field named, like unknown_field:price or bad_value:min_nights; 429 slow_down over the rate.
