crisphive
BookingsPoll for new & changed job requests (sync feed)

Poll for new & changed job requests (sync feed)

Keep an external system (your CRM, ERP or field-service tool) in sync with bookings WITHOUT re-listing everything: returns the job requests (work orders) whose state changed (created, status transition, reschedule, soft-delete/archive) at or after the `since` cursor, ordered oldest-change-first (updated_at ASC). How to use it: (1) On your first poll OMIT `since` — the server primes the cursor at "now", returns no items and a `next_since`. (2) Store `next_since` and pass it as `since` on the next poll. (3) Apply each returned item to your store by UPSERTING on `id` (the server re-scans a ~5s safety window, so the same job may appear again — never blindly append). (4) If `has_more` is true the page filled to `limit` and more changes are already waiting — poll again immediately; otherwise wait your normal interval (e.g. 5–15s). This is NOT pagination — it is a time-keyed change feed. Use the paginated GET /job-requests for the initial bulk load, then this endpoint to stay live. Filters (status_keys, customer_id, …) narrow the feed to the slice you care about.

Arguments

status_keysstringqueryoptional
Comma-separated status slugs — only surface changes to jobs in these statuses
prioritystringqueryoptional
Priority filter (normal|emergency)
customer_idstringqueryoptional
Only changes to this customer's jobs (UUID)
technician_idstringqueryoptional
Only changes to jobs assigned to this technician (UUID)
scheduled_fromstringqueryoptional
Filter from (YYYY-MM-DD = start of that day in the business timezone, or RFC3339); range is [from, to)
scheduled_tostringqueryoptional
Filter to (YYYY-MM-DD = end of that day in the business timezone, or RFC3339), exclusive
sincestringqueryoptional
RFC3339 cursor from the prior response's next_since. OMIT on the first poll to prime the cursor at server-now.
limitintegerqueryoptional
Max changes per poll (default 15, max 1000). If the page fills, has_more=true.
GET/v1/job-requests/changes
curl -X GET "https://api.crisphive.com/v1/job-requests/changes" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT"

Responses