Skip to content

Monitoring

A monitor watches a booking until its last flight leaves, and tells you when it changes: a new time, a cancelled flight, a moved seat, a ticket that's no longer valid.

Watch a booking

POST/v1/monitors

curl https://api.pnrstack.com/v1/monitors \
  -H "Authorization: Bearer pk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "lookup_id": "lkp_01JC9V2M8R", "cadence": "standard" }'

Start from a completed lookup's ID, or send the same fields as a lookup and the monitor begins with one of its own. A monitor stops by itself once the booking's last flight has departed; DELETE /v1/monitors/{id} stops it sooner, and GET /v1/monitors/{id} gives the last reservation and every change so far.

How often it's checked

A monitor checks two things: the booking, read again from the airline, and the published flight schedule. The schedule is quicker to read, so it's checked more often, and a change there sends a booking check at once.

Time to the first flightBooking read againSchedule checked
More than 14 daysEvery 14 daysDaily
14 to 3 daysEvery 2 daysEvery 6 hours
The last 3 daysDailyHourly
The flight changes in the scheduleAt once

close_watch doubles the booking checks in the last 3 days, for dispatch and claims that can't wait. To check right now, use POST /v1/monitors/{id}/check, which counts as a lookup.

Change events

When a check finds the booking different from the last read, you get a reservation.changed webhook with what changed and the new reservation:

{
  "id": "evt_01JCA2Q6YB",
  "type": "reservation.changed",
  "created_at": "2026-12-02T18:04:11Z",
  "data": {
    "monitor_id": "mon_01JC9X3H1D",
    "changes": [
      {
        "field": "segments[0].scheduled_departure",
        "from": "2026-12-04T07:15:00+00:00",
        "to": "2026-12-04T09:40:00+00:00"
      }
    ],
    "reservation": { "booking_status": "confirmed", "segments": [] }
  }
}

Delays and gate changes on the day of travel come from the schedule, not the booking. They only send reservation.changed when the airline changes the booking too.

When an airline is paused

If an airline is paused (the airlines list shows it), its monitors keep checking the schedule and hold their booking checks until it's back. You get a monitor.paused event, so you know.