Skip to main content
Your first call needs no account. The Sandbox, the platform API’s test environment at https://sandbox.haau3.com, answers each operation’s documented example with no key. This guide makes one call there, GET /v1/scheduling/slots, then creates a free API key and makes the same call in production, https://api.haau3.com, where every request needs a key.

1. Make a first call in the Sandbox

Choose a language and follow its steps. Each SDK sends its calls where its environment says: HAAU3_ENVIRONMENT=sandbox names the Sandbox for one run, with no key.
1

Send the request

The Sandbox answers this request with a fixed answer, the one production gave when the example was saved, and any other request with a 400 that names the example to send; the Sandbox lists every example it answers. The cURL request prints the whole answer: total counts every slot that matched, and slots holds this page of them, here one. Each SDK prints that first slot.
Response

2. Create an organization and key

1

Sign in to the dashboard

Go to platform.haau3.com and sign in. The platform is organization-based, so you’ll create or join an organization. Your keys belong to it. A new organization starts on the Developer plan, which is free.
2

Create a free API key

Open API keys and create a key, leaving its mode on Live, the default: a live key works on every production service. It looks like haau3_sk_live_… and is shown only once, so copy it somewhere safe. A test key works only in the Sandbox (see test and live keys).

3. Make the same call in production

In production, every request needs a key, sent as a Bearer token, and a request without a valid key returns 401 (see Authentication). Set your key, then send the same request. Each SDK reads the key from the HAAU3_API_KEY environment variable, and a live key sends every call to production; run it in the same folder as step 1.
1

Set your key

2

Send the request

cURL
Production answers with live data, in the same shape.
total is the full pre-pagination count. Page through results with limit (1 to 100, default 25) and offset.
Results start from now. To include slots that already started, add includePast=true. An explicit startAfter applies as given.

4. Filter the results

The endpoint supports query filters. For example, to get only in-person slots in Massachusetts:
To discover the valid serviceTypeCode values, call GET /v1/scheduling/service-types, which returns the distinct service types seen across served slots, each with a count. To find one clinician’s slots, add npi with their ten-digit National Provider Identifier. To narrow by specialty, add specialty. Specialty codes are each publisher’s own, and GET /v1/scheduling/specialties lists the ones in use. Each of these filters, and serviceTypeCode, takes a comma-separated list and matches any of its values. To find slots accepting new patients, add acceptingPatients=newpt (HL7 accepting-patients codes: newpt / existptonly / existptfam). The filter is lenient: a slot that does not declare an acceptance code still matches:
See the API Reference for every parameter, and Authentication for more on keys. For the FHIR base, start with the Terminology service for codes and value sets, or with MedList to reconcile one patient’s medication records.