Enquiries Channel manager Bookings Your website Booking engine Pricing
v2026-09

Request a full sync

Ask Doorloom to regenerate everything and push it to you through the normal webhook path. The blunt instrument, rate-limited accordingly.

POST https://api.doorloom.com/api/integrations/v1/sync One per 24 hours

Body

Both fields are optional. An empty body re-syncs everything, for every property you cover.

Body

Field Type Required Description
property_ids array Optional Doorloom property ids to re-sync. Up to 500. Omit for all covered properties.
property_ids[] integer Optional A Doorloom property id. Must be covered by your integration.
types array Optional Which kinds to regenerate. Omit for all five.
types[] string Optional availability, rates, restrictions, inventory or property. The .changed spellings are accepted too, so rates and rates.changed both work.
Request bash
curl -X POST https://api.doorloom.com/api/integrations/v1/sync \
  -H "Authorization: Bearer $DOORLOOM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "property_ids": [902, 903],
    "types": ["availability", "rates"]
  }'

Response

202 Accepted. The work is queued, not done — events arrive on your webhook afterwards, in sequence order, like any other event.

Response 202 json
{
    "success": true,
    "message": "Full sync queued; events will arrive on your webhook in sequence order.",
    "data": {
        "queued_properties": 2,
        "horizon_days": 365,
        "types": [
            "availability.changed",
            "rates.changed"
        ]
    }
}
Field Type Description
queued_properties integer How many properties were queued.
horizon_days integer How far ahead events will be generated. Windows are chunked by calendar month, so a 365-day horizon is roughly twelve events per type per property.
types array The types queued, normalised to their .changed names.

This can be a lot of events

A full sync across many properties over a year-long horizon produces one event per type, per property, per calendar month. Six properties, three windowed types, twelve months is over 200 events — delivered one at a time, in order, each waiting for your 2xx. Scope it with property_ids and types when you can.

Rate limits

Field Type Description
Interval string One sync per 24 hours. Breaching this is 429 SYNC_TOO_SOON, with errors.retry_after in seconds.
Daily cap string Six calls a day, refusals included. Breaching this is 429 RATE_LIMITED.
Response 429 json
{
    "success": false,
    "code": "SYNC_TOO_SOON",
    "message": "A full sync was requested 3 hours ago; wait 75600 seconds.",
    "errors": {
        "retry_after": 75600
    }
}

A bad request does not burn your window

Validation runs before the interval is charged. If you send an uncovered property_id you get a 422 and your 24-hour window is untouched, so you can correct the call and retry immediately.

When to use it, and when not to

Use it when your cursor is older than the 30-day event retention, after a serious data loss on your side, or when you have added a large number of properties at once.

Do not use it as an ordinary catch-up. GET /events is faster, has no interval, costs Doorloom nothing, and gives you exactly what you missed. Do not use it as a periodic job either — if you find yourself syncing on a schedule, something in your event handling is wrong and a sync is hiding it rather than fixing it.

You get one a day, so spend it deliberately

The 24-hour interval means a sync fired at the wrong moment, or scoped too narrowly, leaves you waiting until tomorrow to try again. Work out what is actually wrong first — usually with GET /me and a snapshot — and only then sync, with the property_ids and types you actually need. If you need another sooner, Doorloom staff can trigger one that bypasses the interval.

For a single property that has drifted, a snapshot is usually enough. See Staying in sync.

Errors

Errors

Status Code Meaning
422 VALIDATION_FAILED The request body failed validation. errors is Laravel's field bag: an object keyed by field path, each holding an array of messages.
422 PROPERTY_NOT_MAPPED The property reference is missing, unknown, or outside your integration's coverage. Coverage is set by Doorloom staff and only ever includes properties the brand owner owns outright, never cohosted ones.
429 SYNC_TOO_SOON A full re-sync was requested too recently. One is allowed every 24 hours.
429 RATE_LIMITED You exceeded one of the rate limits. The standard Retry-After and X-RateLimit-* headers are set on the response.
401 UNAUTHENTICATED No API key, or a key that is not valid. Rotating your API key invalidates the previous one immediately.

Something unclear or wrong on this page? Write to [email protected] and tell us which page — we would rather fix the doc than answer the ticket twice.