ailio admin

Health

22 open drift events. Queue depth requires Cloudflare API access and is not wired — see DLQ for terminal failures, which is the queue state that can actually be acted on.

Adapters (11)

Crawlable 8 of 8 active clinics (100.0%). Unverified adapters are listed because they are what bounds coverage.

ProviderVerificationAvailabilityClinicsOverrideNote
Jane janeverified 13 tenantsyes8
Noterro noterroverified 4 tenantsyes0
Cliniko clinikoverified 5 tenantsyes0
Setmore setmoreverified 2 tenantscatalogue only0Catalogue only. Availability is not publicly reachable — no slots route exists in the build manifest and the booking UI would not advance under automation to reveal a runtime call.
Full Slate fullslateverified 3 tenantsyes0Availability is a "next available" endpoint capped at ~5 openings per service; no paging parameter works. Complete enough for a days-to-first-appointment signal, not for a full calendar.
Calendly calendlyverified 2 tenantsyes0Generic scheduling, so most accounts are not clinics — a Calendly marker alone is weak evidence that a page is a bookable clinic.
SimplyBook.me simplybookverified 5 tenantsyes0
Acuity Scheduling acuityunverifiedyes0API LOCATED but behind a real authorization wall (2026-08-02). schedule.php?owner=<id> redirects to /schedule/<slug>; availability is GET /api/scheduling/v1/availability/times?owner&appointmentTypeId&calendarId&startDate&maxDays&timezone. It requires headers X-Secondo-Session (a server-issued UUID) and X-Secondo-Owner (the slug), and returns 401 Unauthorized without them. Unlike Jane (403, fixed by a public GET first) and Noterro (a client key shipped to every visitor), a cookie jar from the public page does NOT satisfy it and a client-generated UUID is rejected. Treat as an intentional boundary unless a public path to a session is found.
Square Appointments squareunverifiedyes0TOKEN-GATED (confirmed 2026-08-02). book.squareup.com/appointments/<merchantId>/location/<locationId>/services renders services client-side, and selecting one calls a signed per-session endpoint carrying a `unit_token` query parameter. Same category as Acuity: the public page does not yield a token a crawler can reuse, so this is an intentional boundary rather than an undiscovered endpoint. Square also has a public Bookings API, but it is OAuth-scoped to the merchant and is not a route to a public index.
Mindbody mindbodyunverifiedcatalogue only0Healcode widgets keyed by studioid. Heavily bot-protected and skewed to fitness class schedules rather than practitioner appointments — lower value for allied health, and the one most likely to be actively blocked.
Schedulicity schedulicityunverifiedyes0MERGED INTO VAGARO (confirmed 2026-08-02): schedulicity.com/scheduling/<id> now 302s to vagaro.com/<slug>, and the page calls vagaro.com/us05/websiteapi/* rather than any Schedulicity API. Building a Schedulicity adapter would be building the wrong thing — the work here is a Vagaro adapter, and this entry exists to keep those clinics detected in the meantime.

Open drift events

DetectedProviderSignalSeverityDetail
2026-08-03 21:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 20:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 19:00janeparse_error_ratewarning{"rate":0.36363636363636365,"total":11,"parseErrors":4}
2026-08-03 19:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 18:04janedlq_growthwarning{"kind":"availability","account":"dogwoodtherapeutics","website":null}
2026-08-03 18:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 17:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 16:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 15:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 14:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 13:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 12:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 11:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 10:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 09:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 08:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 07:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 06:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 05:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 04:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}
2026-08-03 03:04janedlq_growthwarning{"kind":"catalogue","account":"dogwoodtherapeutics","website":null}
2026-08-03 03:00janeslot_dropcritical{"currentHourSlots":"0","medianDailySlots":187}