$bulk-publish
feed of provider availability.
A reference feed for the open standard
The Slot Publisher is primarily a contribution to the open SMART Scheduling Links standard: a real reference feed that publishers, clients, and tooling can test against. It is not a billed platform API and is not part of the B2B product surface. The product is the aggregator (the Scheduling API). Because an SSL feed is meant to be openly fetchable, the publisher requires no API key. The/v1/scheduling/* aggregator endpoints are key-authenticated.
Why it’s hosted on the platform
Hosting the feed atapi.haau3.com lets any organization evaluating the haau3 Scheduling API
test a direct connection to a real Slot Publisher with zero setup: point your own client,
ingestion worker, or public SSL tooling at a single URL instead of standing up a feed or
integrating a third party. It’s the simplest way to see the publisher → aggregator → client flow
end to end.
Our own aggregator ingests this same feed, so what you fetch directly here is exactly what flows
into GET /v1/scheduling/slots and GET /v1/scheduling/provider-locations under the haau3 publisher slug.
You can compare the two sides: the raw publisher feed, and the normalized, unified result the
aggregator serves.
Endpoints
Both are public (no API key) and serve non-PHI synthetic data.GET https://api.haau3.com/scheduling/$bulk-publish: the$bulk-publishmanifest (transactionTime+ anoutput[]array of absolute NDJSON file URLs).GET https://api.haau3.com/scheduling/{Resource}.ndjson: one newline-delimited JSON file per resource type (Location,Practitioner,PractitionerRole,HealthcareService,Schedule,Slot), served asapplication/fhir+ndjson.
transactionTime moves to the start of the new
day. Every response carries Cache-Control: max-age set to the seconds left until then, which
SMART Scheduling Links reads as how long to wait before polling again.
What’s in the feed
A small, curated dataset built to exercise representative SSL scenarios so you can see how each maps through the aggregator:- A rolling window: slots for the 90 days starting today (by the UTC date), at the practices’
local times in US Eastern time, so the feed never runs out of future availability. A slot keeps
its
idand content for every day it is in the window. - Virtual vs in-person appointments (
Location.physicalType, coded from the SMART Scheduling Links value set:vifor the telehealth location, which has no address, andphfor the two clinics). - Accepting-patients states in the
patient-typeextension on everySlot: new patients, existing patients only, existing patients and families, and a weekly not-accepting example (the aggregator stores it but never serves it). - Multiple service types and provider specialties (HL7 service-type and NUCC codes).
- A healthcare service as the provider: the immunization clinic’s schedule names a
HealthcareServiceand no practitioner. - Location details: coordinates (
position) and adescriptionon the two clinics. - Booking deep links and phone numbers (SSL booking extensions, the phone as a
ContactPoint). Nothing can be booked here: a slot’s booking link opens this page.
npi filter still finds them, because it matches an NPI as the
publisher sent it.
How it relates to the aggregator
To consume the aggregator instead, start with the Quickstart and the
SMART Scheduling Links overview.