gateway-staging.primary.health Open in urlscan Pro
52.21.172.55  Public Scan

URL: https://gateway-staging.primary.health/
Submission: On August 15 via automatic, source certstream-suspicious — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

Timetable Documentation
 * Bookings
   * postCreate Appointments
   * putUpdate Appointments
   * delDelete Appointments
   * putReschedule Appointment
   * getAvailabilties for Location
   * getQuery Locations
   * postCreate Registration
   * getView Registration
   * putUpdate Registration Metadata
   * postE-Mail Registration Edit/Cancel Link
   * postCreate Reservation
   * delDelete Reservation
 * GeoLocation
   * getAddress Autocomplete
   * getAddress Detail
 * Information Queries
   * getService Rules
   * getServices
   * getService Brands
   * getService Kinds
 * Subscriptions
   * postCreate Subscription

API docs by Redocly





TIMETABLE API V1 (V1)

Download OpenAPI specification:Download




Client library to interface with Primary Timetable


BOOKINGS


CREATE APPOINTMENTS

AUTHORIZATIONS:

x_api_key

REQUEST BODY SCHEMA: APPLICATION/JSON



registrationId
integer or null

This is an optional parameter that allows referencing a registration and its
associated metadata.

email
string or null

phoneNumber
string or null

appointments
required
Array of objects



RESPONSES

200

sucessful

400

bad request

post/api/v1/appointments/batch_create

Production

https://timetable.primary.health/api/v1/appointments/batch_create

Staging

https://timetable-staging.primary.health/api/v1/appointments/batch_create

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/appointments/batch_create


REQUEST SAMPLES

 * Payload

Content type
application/json
Example
Request example for Rite AidRequest example for KrogerRequest example for Rite
Aid
Copy
Expand all Collapse all
{
 * "appointments": [
    * {
       * "user": {
          * "firstName": "John",
          * "middleName": "",
          * "lastName": "Doe",
          * "dateOfBirth": "2001-01-01",
          * "address_1": "101 Rainbow Road",
          * "city": "San Francisco",
          * "state": "CA",
          * "zip_code": "95014",
          * "phone_number": "8005551223",
          * "email": "primary@primary.health",
          * "sex": "female"
         
         },
       * "time_slot_id": "bff27018-af5f-4aa3-83ae-e5448faa1064",
       * "services": [
          * {
             * "brand": "pfizer",
             * "kind": "covid_19"
            
            }
         
         ],
       * "metadata": {
          * "consent_signature": "iVBORw0KGgoAAAANaA..."
         
         }
      
      }
   
   ]

}


RESPONSE SAMPLES

 * 200
 * 400

Content type
application/json
Copy
Expand all Collapse all
{
 * "registration": {
    * "accessCode": "8625D3ACB4",
    * "metadata": { },
    * "appointments": [
       * {
          * "id": 1,
          * "time": "2023-01-01T12:00:00-07:00",
          * "user": {
             * "id": 1,
             * "firstName": "John"
            
            },
          * "location": {
             * "latitude": "33.7583",
             * "longitude": "-118.1121",
             * "id": 1,
             * "address1": "460 Michale Locks",
             * "name": "Vitality Wellness Center",
             * "address2": "string",
             * "city": "Sacramento",
             * "distanceTo": "2.12",
             * "state": "CA",
             * "timeZone": "America/New_York",
             * "zipCode": "07712",
             * "bookable": true,
             * "supportsWalkIn": true,
             * "metadata": {
                * "open_hours": [
                   * {
                      * "day": "mon",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     }
                  
                  ],
                * "web_address": "https://www.example.com",
                * "phone_number": "5555555555"
               
               },
             * "locationType": {
                * "retailer": "kroger"
               
               }
            
            },
          * "services": [
             * {
                * "name": "COVID-19 Booster",
                * "id": 1,
                * "brand": "pfizer",
                * "kind": "covid_19",
                * "patientCategory": "adult",
                * "immunocompromised": true
               
               }
            
            ],
          * "externalId": "e7a9cac2-7722-ee11-9cbe-00224808109a",
          * "externalUrl":
            "https://www.safeway.com/vaccinations/reschedule-cancel/step-c1/e7a9cac2-7722-ee11-9cbe-00224808109a"
         
         }
      
      ]
   
   }

}



UPDATE APPOINTMENTS

AUTHORIZATIONS:

x_api_key

PATH PARAMETERS

access_code
required
string
Example: 8625D3ACB4

Registration access code

QUERY PARAMETERS

token
required
string
Example:
token=eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7InJlZ2lzdHJhdGlvbl9pZCI6MSwic2NvcGUiOiJzaG93In0sImV4cCI6MTY5MDMyMTQwOX0.ala3aADJ9EAmtFvAuy1cBj6e2Ermx0AGk4jtNrj6kLE

JWT

REQUEST BODY SCHEMA: APPLICATION/JSON



appointments
required
Array of objects



RESPONSES

200

sucessful

404

Not found

409

bad request

put/api/v1/registrations/{access_code}/appointments/batch_update

Production

https://timetable.primary.health/api/v1/registrations/{access_code}/appointments/batch_update

Staging

https://timetable-staging.primary.health/api/v1/registrations/{access_code}/appointments/batch_update

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/registrations/{access_code}/appointments/batch_update


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "appointments": [
    * {
       * "id": 1,
       * "locationId": 1,
       * "time": "2023-01-01T12:00:00-07:00"
      
      }
   
   ]

}


RESPONSE SAMPLES

 * 200
 * 404
 * 409

Content type
application/json
Copy
Expand all Collapse all
{
 * "registration": {
    * "accessCode": "8625D3ACB4",
    * "metadata": { },
    * "appointments": [
       * {
          * "id": 1,
          * "time": "2023-01-01T12:00:00-07:00",
          * "user": {
             * "id": 1,
             * "firstName": "John"
            
            },
          * "location": {
             * "latitude": "33.7583",
             * "longitude": "-118.1121",
             * "id": 1,
             * "address1": "460 Michale Locks",
             * "name": "Vitality Wellness Center",
             * "address2": "string",
             * "city": "Sacramento",
             * "distanceTo": "2.12",
             * "state": "CA",
             * "timeZone": "America/New_York",
             * "zipCode": "07712",
             * "bookable": true,
             * "supportsWalkIn": true,
             * "metadata": {
                * "open_hours": [
                   * {
                      * "day": "mon",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     }
                  
                  ],
                * "web_address": "https://www.example.com",
                * "phone_number": "5555555555"
               
               },
             * "locationType": {
                * "retailer": "kroger"
               
               }
            
            },
          * "services": [
             * {
                * "name": "COVID-19 Booster",
                * "id": 1,
                * "brand": "pfizer",
                * "kind": "covid_19",
                * "patientCategory": "adult",
                * "immunocompromised": true
               
               }
            
            ],
          * "externalId": "e7a9cac2-7722-ee11-9cbe-00224808109a",
          * "externalUrl":
            "https://www.safeway.com/vaccinations/reschedule-cancel/step-c1/e7a9cac2-7722-ee11-9cbe-00224808109a"
         
         }
      
      ]
   
   }

}




DELETE APPOINTMENTS

AUTHORIZATIONS:

x_api_key

PATH PARAMETERS

access_code
required
string
Example: 8625D3ACB4

Registration access code

QUERY PARAMETERS

token
required
string
Example:
token=eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7InJlZ2lzdHJhdGlvbl9pZCI6MSwic2NvcGUiOiJzaG93In0sImV4cCI6MTY5MDMyMTQwOX0.ala3aADJ9EAmtFvAuy1cBj6e2Ermx0AGk4jtNrj6kLE

JWT

REQUEST BODY SCHEMA: APPLICATION/JSON



appointmentIds
Array of integers



RESPONSES

200

sucessful

404

Not found

delete/api/v1/registrations/{access_code}/appointments/batch_destroy

Production

https://timetable.primary.health/api/v1/registrations/{access_code}/appointments/batch_destroy

Staging

https://timetable-staging.primary.health/api/v1/registrations/{access_code}/appointments/batch_destroy

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/registrations/{access_code}/appointments/batch_destroy


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "appointmentIds": [
    * 1
   
   ]

}


RESPONSE SAMPLES

 * 200
 * 404

Content type
application/json
Copy
{
 * "message": "Successfully deleted Appointment"

}



RESCHEDULE APPOINTMENT

AUTHORIZATIONS:

x_api_key

PATH PARAMETERS

access_code
required
string
Example: 8625D3ACB4

Registration access code

appointment_id
required
integer
Example: 1

Appointment id

QUERY PARAMETERS

token
required
string
Example:
token=eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7InJlZ2lzdHJhdGlvbl9pZCI6MSwic2NvcGUiOiJzaG93In0sImV4cCI6MTY5MDMyMTQwOX0.ala3aADJ9EAmtFvAuy1cBj6e2Ermx0AGk4jtNrj6kLE

JWT

REQUEST BODY SCHEMA: APPLICATION/JSON



registration
object



RESPONSES

200

sucessful

404

Not found

409

bad request

put/api/v1/registrations/{access_code}/appointments/{appointment_id}/reschedule

Production

https://timetable.primary.health/api/v1/registrations/{access_code}/appointments/{appointment_id}/reschedule

Staging

https://timetable-staging.primary.health/api/v1/registrations/{access_code}/appointments/{appointment_id}/reschedule

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/registrations/{access_code}/appointments/{appointment_id}/reschedule


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "registration": {
    * "locationId": 1,
    * "time": "2023-01-01T12:00:00-07:00"
   
   }

}


RESPONSE SAMPLES

 * 200
 * 404
 * 409

Content type
application/json
Copy
Expand all Collapse all
{
 * "id": 1,
 * "time": "2023-01-01T12:00:00-07:00",
 * "user": {
    * "id": 1,
    * "firstName": "John"
   
   },
 * "location": {
    * "latitude": "33.7583",
    * "longitude": "-118.1121",
    * "id": 1,
    * "address1": "460 Michale Locks",
    * "name": "Vitality Wellness Center",
    * "address2": "string",
    * "city": "Sacramento",
    * "distanceTo": "2.12",
    * "state": "CA",
    * "timeZone": "America/New_York",
    * "zipCode": "07712",
    * "bookable": true,
    * "supportsWalkIn": true,
    * "metadata": {
       * "open_hours": [
          * {
             * "day": "mon",
             * "end_time": "11:00 pm",
             * "open_hours": 16,
             * "start_time": "07:00 am"
            
            }
         
         ],
       * "web_address": "https://www.example.com",
       * "phone_number": "5555555555"
      
      },
    * "locationType": {
       * "retailer": "kroger"
      
      }
   
   },
 * "services": [
    * {
       * "name": "COVID-19 Booster",
       * "id": 1,
       * "brand": "pfizer",
       * "kind": "covid_19",
       * "patientCategory": "adult",
       * "immunocompromised": true
      
      }
   
   ],
 * "externalId": "e7a9cac2-7722-ee11-9cbe-00224808109a",
 * "externalUrl":
   "https://www.safeway.com/vaccinations/reschedule-cancel/step-c1/e7a9cac2-7722-ee11-9cbe-00224808109a"

}




AVAILABILTIES FOR LOCATION

AUTHORIZATIONS:

x_api_key

QUERY PARAMETERS

locationIds[]
Array of integers
Example: locationIds[]=[1, 2]

services[][brand]
string
Example: services[][brand]=pfizer

services[][kind]
string
Example: services[][kind]=covid_19

date
string
Example: date=2023-08-14

startDate
string
Example: startDate=2023-08-14

If not provided, it will check the date param, or default to today's date

endDate
string
Example: endDate=2023-08-20

If not provided, it will check the date param, or default to 7 days from today's
date


RESPONSES

200

successful

400

bad request

get/api/v1/availabilities

Production

https://timetable.primary.health/api/v1/availabilities

Staging

https://timetable-staging.primary.health/api/v1/availabilities

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/availabilities


RESPONSE SAMPLES

 * 200
 * 400

Content type
application/json
Copy
Expand all Collapse all
{
 * "locations": [
    * {
       * "latitude": "33.7583",
       * "longitude": "-118.1121",
       * "id": 1,
       * "address1": "460 Michale Locks",
       * "name": "Vitality Wellness Center",
       * "address2": "string",
       * "city": "Sacramento",
       * "distanceTo": "2.12",
       * "state": "CA",
       * "timeZone": "America/New_York",
       * "zipCode": "07712",
       * "bookable": true,
       * "supportsWalkIn": true,
       * "metadata": {
          * "open_hours": [
             * {
                * "day": "mon",
                * "end_time": "11:00 pm",
                * "open_hours": 16,
                * "start_time": "07:00 am"
               
               }
            
            ],
          * "web_address": "https://www.example.com",
          * "phone_number": "5555555555"
         
         },
       * "timeSlots": [
          * {
             * "id": "04c076f5-fdee-46f0-8205-2130900474ed",
             * "time": "2000-01-01T00:00:00-00:00"
            
            }
         
         ],
       * "locationType": {
          * "retailer": "kroger"
         
         }
      
      }
   
   ]

}



QUERY LOCATIONS

AUTHORIZATIONS:

x_api_key

QUERY PARAMETERS

latitude
number
Example: latitude=0.4645

longitude
number
Example: longitude=-0.4645

swCorner
Array of integers
Example: swCorner=36.12&swCorner=-97.9

neCorner
Array of integers
Example: neCorner=36.4&neCorner=-97.05

page
number
Example: page=1

is_precise_location
boolean
Example: is_precise_location=true

bookable_only
boolean
Example: bookable_only=true

If true, only return locations that are bookable

services[][brand]
string
Example: services[][brand]=pfizer

services[][kind]
string
Example: services[][kind]=covid_19

retailer
string
Enum: "unbookable" "fake" "cvs" "walgreens" "rite_aid" "albertsons" "kroger"
Example: retailer=riteaid



RESPONSES

200

Successful

400

Bad request

get/api/v1/query

Production

https://timetable.primary.health/api/v1/query

Staging

https://timetable-staging.primary.health/api/v1/query

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/query


RESPONSE SAMPLES

 * 200
 * 400

Content type
application/json
Copy
Expand all Collapse all
{
 * "locations": [
    * {
       * "latitude": "33.7583",
       * "longitude": "-118.1121",
       * "id": 1,
       * "address1": "460 Michale Locks",
       * "name": "Vitality Wellness Center",
       * "address2": "string",
       * "city": "Sacramento",
       * "distanceTo": "2.12",
       * "state": "CA",
       * "timeZone": "America/New_York",
       * "zipCode": "07712",
       * "bookable": true,
       * "supportsWalkIn": true,
       * "metadata": {
          * "open_hours": [
             * {
                * "day": "mon",
                * "end_time": "11:00 pm",
                * "open_hours": 16,
                * "start_time": "07:00 am"
               
               }
            
            ],
          * "web_address": "https://www.example.com",
          * "phone_number": "5555555555"
         
         },
       * "locationType": {
          * "retailer": "kroger"
         
         }
      
      }
   
   ],
 * "nextUrl":
   "https://timetable.primary.health/api/v1/availabilities?latitude=0.4645&longitude=-0.32&page=2",
 * "previousUrl":
   "https://timetable.primary.health/api/v1/availabilities?latitude=0.4645&longitude=-0.32&page=1"

}



CREATE REGISTRATION

Enable family registration by associating multiple appointments within a single
registration, streamlining the process for scheduling and managing appointments
for multiple family members.

AUTHORIZATIONS:

x_api_key


RESPONSES

200

sucessful

post/api/v1/registrations

Production

https://timetable.primary.health/api/v1/registrations

Staging

https://timetable-staging.primary.health/api/v1/registrations

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/registrations


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "registration": {
    * "accessCode": "8625D3ACB4",
    * "metadata": { },
    * "appointments": [
       * {
          * "id": 1,
          * "time": "2023-01-01T12:00:00-07:00",
          * "user": {
             * "id": 1,
             * "firstName": "John"
            
            },
          * "location": {
             * "latitude": "33.7583",
             * "longitude": "-118.1121",
             * "id": 1,
             * "address1": "460 Michale Locks",
             * "name": "Vitality Wellness Center",
             * "address2": "string",
             * "city": "Sacramento",
             * "distanceTo": "2.12",
             * "state": "CA",
             * "timeZone": "America/New_York",
             * "zipCode": "07712",
             * "bookable": true,
             * "supportsWalkIn": true,
             * "metadata": {
                * "open_hours": [
                   * {
                      * "day": "mon",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     }
                  
                  ],
                * "web_address": "https://www.example.com",
                * "phone_number": "5555555555"
               
               },
             * "locationType": {
                * "retailer": "kroger"
               
               }
            
            },
          * "services": [
             * {
                * "name": "COVID-19 Booster",
                * "id": 1,
                * "brand": "pfizer",
                * "kind": "covid_19",
                * "patientCategory": "adult",
                * "immunocompromised": true
               
               }
            
            ],
          * "externalId": "e7a9cac2-7722-ee11-9cbe-00224808109a",
          * "externalUrl":
            "https://www.safeway.com/vaccinations/reschedule-cancel/step-c1/e7a9cac2-7722-ee11-9cbe-00224808109a"
         
         }
      
      ]
   
   }

}


VIEW REGISTRATION

AUTHORIZATIONS:

x_api_key

PATH PARAMETERS

access_code
required
string
Example: 8625D3ACB4

Registration access code

QUERY PARAMETERS

token
string
Example:
token=eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7InJlZ2lzdHJhdGlvbl9pZCI6MSwic2NvcGUiOiJzaG93In0sImV4cCI6MTY5MDMyMTQwOX0.ala3aADJ9EAmtFvAuy1cBj6e2Ermx0AGk4jtNrj6kLE

JWT, Only needed if requesting PHI information


RESPONSES

200

sucessful

404

Not found

get/api/v1/registrations/{access_code}

Production

https://timetable.primary.health/api/v1/registrations/{access_code}

Staging

https://timetable-staging.primary.health/api/v1/registrations/{access_code}

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/registrations/{access_code}


RESPONSE SAMPLES

 * 200
 * 404

Content type
application/json
Example
Without token (No PHI)With token (PHI)Without token (No PHI)
Copy
Expand all Collapse all
{
 * "registration": {
    * "accessCode": "5CE7759EDF",
    * "metadata": { },
    * "appointments": [
       * {
          * "id": 2365,
          * "time": "2023-07-31T21:00:40.135Z",
          * "externalId": "e7a9cac2-7722-ee11-9cbe-00224808109a",
          * "externalUrl":
            "https://www.safeway.com/vaccinations/reschedule-cancel/step-c1/e7a9cac2-7722-ee11-9cbe-00224808109a",
          * "user": {
             * "id": 2635,
             * "firstName": "Harlan"
            
            },
          * "location": {
             * "id": 6831,
             * "latitude": "46.617168",
             * "longitude": "83.51284",
             * "address1": "136 Voncile Hollow",
             * "address2": null,
             * "city": "Lake Theoview",
             * "zipCode": "73558",
             * "state": "OH",
             * "name": "SAFEWAY",
             * "metadata": {
                * "open_hours": [
                   * {
                      * "day": "mon",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     },
                   * {
                      * "day": "tue",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     },
                   * {
                      * "day": "wed",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     },
                   * {
                      * "day": "thu",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     },
                   * {
                      * "day": "fri",
                      * "end_time": "12:00 am",
                      * "open_hours": -7,
                      * "start_time": "07:00 am"
                     
                     },
                   * {
                      * "day": "sat",
                      * "end_time": "12:00 am",
                      * "open_hours": -7,
                      * "start_time": "07:00 am"
                     
                     },
                   * {
                      * "day": "sun",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     }
                  
                  ],
                * "web_address": null,
                * "phone_number": null
               
               },
             * "timeZone": "Pacific Time (US & Canada)",
             * "distanceTo": null,
             * "locationType": {
                * "retailer": "krogers"
               
               }
            
            },
          * "services": [ ]
         
         }
      
      ]
   
   }

}



UPDATE REGISTRATION METADATA

AUTHORIZATIONS:

x_api_key

PATH PARAMETERS

access_code
required
string
Example: 8625D3ACB4

Registration access code

QUERY PARAMETERS

token
string
Example:
token=eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7InJlZ2lzdHJhdGlvbl9pZCI6MSwic2NvcGUiOiJzaG93In0sImV4cCI6MTY5MDMyMTQwOX0.ala3aADJ9EAmtFvAuy1cBj6e2Ermx0AGk4jtNrj6kLE

JWT, Only needed if requesting PHI information

REQUEST BODY SCHEMA: APPLICATION/JSON



registration
required
object

Registration with NO PHI data returned


RESPONSES

200

sucessful

404

Not found

put/api/v1/registrations/{access_code}

Production

https://timetable.primary.health/api/v1/registrations/{access_code}

Staging

https://timetable-staging.primary.health/api/v1/registrations/{access_code}

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/registrations/{access_code}


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "registration": {
    * "metadata": { },
    * "appointments": [
       * {
          * "time": "2023-01-01T12:00:00-07:00",
          * "user": {
             * "firstName": "John"
            
            },
          * "location": {
             * "latitude": "33.7583",
             * "longitude": "-118.1121",
             * "address1": "460 Michale Locks",
             * "name": "Vitality Wellness Center",
             * "address2": "string",
             * "city": "Sacramento",
             * "distanceTo": "2.12",
             * "state": "CA",
             * "timeZone": "America/New_York",
             * "zipCode": "07712",
             * "bookable": true,
             * "supportsWalkIn": true,
             * "metadata": {
                * "open_hours": [
                   * {
                      * "day": "mon",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     }
                  
                  ],
                * "web_address": "https://www.example.com",
                * "phone_number": "5555555555"
               
               },
             * "locationType": {
                * "retailer": "kroger"
               
               }
            
            },
          * "services": [
             * {
                * "name": "COVID-19 Booster",
                * "brand": "pfizer",
                * "kind": "covid_19",
                * "patientCategory": "adult",
                * "immunocompromised": true
               
               }
            
            ]
         
         }
      
      ]
   
   }

}


RESPONSE SAMPLES

 * 200
 * 404

Content type
application/json
Copy
Expand all Collapse all
{
 * "registration": {
    * "accessCode": "8625D3ACB4",
    * "metadata": { },
    * "appointments": [
       * {
          * "id": 1,
          * "time": "2023-01-01T12:00:00-07:00",
          * "user": {
             * "id": 1,
             * "firstName": "John"
            
            },
          * "location": {
             * "latitude": "33.7583",
             * "longitude": "-118.1121",
             * "id": 1,
             * "address1": "460 Michale Locks",
             * "name": "Vitality Wellness Center",
             * "address2": "string",
             * "city": "Sacramento",
             * "distanceTo": "2.12",
             * "state": "CA",
             * "timeZone": "America/New_York",
             * "zipCode": "07712",
             * "bookable": true,
             * "supportsWalkIn": true,
             * "metadata": {
                * "open_hours": [
                   * {
                      * "day": "mon",
                      * "end_time": "11:00 pm",
                      * "open_hours": 16,
                      * "start_time": "07:00 am"
                     
                     }
                  
                  ],
                * "web_address": "https://www.example.com",
                * "phone_number": "5555555555"
               
               },
             * "locationType": {
                * "retailer": "kroger"
               
               }
            
            },
          * "services": [
             * {
                * "name": "COVID-19 Booster",
                * "id": 1,
                * "brand": "pfizer",
                * "kind": "covid_19",
                * "patientCategory": "adult",
                * "immunocompromised": true
               
               }
            
            ],
          * "externalId": "e7a9cac2-7722-ee11-9cbe-00224808109a",
          * "externalUrl":
            "https://www.safeway.com/vaccinations/reschedule-cancel/step-c1/e7a9cac2-7722-ee11-9cbe-00224808109a"
         
         }
      
      ]
   
   }

}



E-MAIL REGISTRATION EDIT/CANCEL LINK

AUTHORIZATIONS:

x_api_key

PATH PARAMETERS

access_code
required
string
Example: 8625D3ACB4

Registration access code


RESPONSES

204

sucessful

404

Not found

post/api/v1/registrations/{access_code}/send_phi_link

Production

https://timetable.primary.health/api/v1/registrations/{access_code}/send_phi_link

Staging

https://timetable-staging.primary.health/api/v1/registrations/{access_code}/send_phi_link

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/registrations/{access_code}/send_phi_link


RESPONSE SAMPLES

 * 404

Content type
application/json
Copy
{
 * "error": "Couldn't find Registration"

}


CREATE RESERVATION

AUTHORIZATIONS:

x_api_key

REQUEST BODY SCHEMA: APPLICATION/JSON



timeSlotId
string



RESPONSES

200

sucessful

post/api/v1/reservations

Production

https://timetable.primary.health/api/v1/reservations

Staging

https://timetable-staging.primary.health/api/v1/reservations

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/reservations


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "timeSlotId": "string"

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "id": "04c076f5-fdee-46f0-8205-2130900474ed",
 * "time": "2000-01-01T00:00:00-00:00"

}


DELETE RESERVATION

AUTHORIZATIONS:

x_api_key

REQUEST BODY SCHEMA: APPLICATION/JSON



timeSlotIds
Array of strings



RESPONSES

200

sucessful

delete/api/v1/reservations

Production

https://timetable.primary.health/api/v1/reservations

Staging

https://timetable-staging.primary.health/api/v1/reservations

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/reservations


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
Expand all Collapse all
{
 * "timeSlotIds": [
    * 1
   
   ]

}


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "timeSlots": [
    * {
       * "id": "04c076f5-fdee-46f0-8205-2130900474ed",
       * "time": "2000-01-01T00:00:00-00:00"
      
      }
   
   ]

}


GEOLOCATION


ADDRESS AUTOCOMPLETE

AUTHORIZATIONS:

x_api_key

QUERY PARAMETERS

search
required
string
Example: search=123%20example

Searched Address


RESPONSES

200

successful

get/api/v1/geolocation/autocomplete

Production

https://timetable.primary.health/api/v1/geolocation/autocomplete

Staging

https://timetable-staging.primary.health/api/v1/geolocation/autocomplete

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/geolocation/autocomplete


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
[
 * "123 Example St, San Francisco, CA, USA",
 * "123 Example Ln, New York, NY, USA"

]


ADDRESS DETAIL

AUTHORIZATIONS:

x_api_key

QUERY PARAMETERS

search
required
string

Searched Address


RESPONSES

200

successful

get/api/v1/geolocation/address_detail

Production

https://timetable.primary.health/api/v1/geolocation/address_detail

Staging

https://timetable-staging.primary.health/api/v1/geolocation/address_detail

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/geolocation/address_detail


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
{
 * "address_1": "123 Example Street",
 * "address_2": "Level 2",
 * "city": "San Francisco",
 * "state": "CA",
 * "postal_code": "94114",
 * "lat": 37.796961,
 * "lng": -122.4047734

}


INFORMATION QUERIES


SERVICE RULES

AUTHORIZATIONS:

x_api_key


RESPONSES

200

sucessful

get/api/v1/rules

Production

https://timetable.primary.health/api/v1/rules

Staging

https://timetable-staging.primary.health/api/v1/rules

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/rules


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "rules": [
    * {
       * "id": 1,
       * "ruleType": "restriction",
       * "frequencyUnit": "6",
       * "frequencyType": "hours",
       * "maxServicesPerAppointment": "1",
       * "maxAppointmentsPerSlot": "1",
       * "additionalNotes": "string",
       * "serviceExclusions": { },
       * "target": {
          * "id": 1,
          * "type": "Location",
          * "name": "string"
         
         }
      
      }
   
   ]

}


SERVICES

AUTHORIZATIONS:

x_api_key

QUERY PARAMETERS

brands[]
Array of strings or null or null (service_brand)
Example: brands[]=['pfizer', 'moderna']

Filter by brand.

kinds[]
Array of strings or null (service_kind)
Example: kinds[]=['covid_19', 'flu']

Filter by service kind.

name[]
Array of strings or null
Example: name[]=['COVID-19 Updated Booster Pfizer']

Filter by service name.

page
number or null
Example: page=1



RESPONSES

200

sucessful

get/api/v1/services

Production

https://timetable.primary.health/api/v1/services

Staging

https://timetable-staging.primary.health/api/v1/services

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/services


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "services": [
    * {
       * "id": 8,
       * "name": "COVID-19 Dose",
       * "brand": "pfizer",
       * "kind": "covid_19",
       * "immunocompromised": false,
       * "patient_category": "adult"
      
      },
    * {
       * "id": 19,
       * "name": "COVID-19 Dose",
       * "immunocompromised": false,
       * "patient_category": "adult",
       * "brand": "johnson_and_johnson",
       * "kind": "covid_19"
      
      },
    * {
       * "id": 9,
       * "name": "COVID-19 Booster Dose (Pediatric)",
       * "brand": "pfizer",
       * "immunocompromised": false,
       * "patient_category": "pediatric",
       * "kind": "covid_19"
      
      },
    * {
       * "id": 16,
       * "name": "COVID-19 Booster Dose (Pediatric)",
       * "brand": "moderna",
       * "immunocompromised": false,
       * "patient_category": "pediatric",
       * "kind": "covid_19"
      
      },
    * {
       * "id": 4,
       * "name": "COVID-19 Dose 1 (Pediatric)",
       * "brand": "pfizer",
       * "immunocompromised": true,
       * "patient_category": "pediatric",
       * "kind": "covid_19"
      
      }
   
   ]

}


SERVICE BRANDS

AUTHORIZATIONS:

x_api_key

QUERY PARAMETERS

page
number or null
Example: page=1



RESPONSES

200

sucessful

get/api/v1/service_brands

Production

https://timetable.primary.health/api/v1/service_brands

Staging

https://timetable-staging.primary.health/api/v1/service_brands

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/service_brands


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "serviceBrands": [
    * "pfizer",
    * "moderna",
    * "johnson_and_johnson"
   
   ]

}


SERVICE KINDS

AUTHORIZATIONS:

x_api_key

QUERY PARAMETERS

page
number or null
Example: page=1



RESPONSES

200

sucessful

get/api/v1/service_kinds

Production

https://timetable.primary.health/api/v1/service_kinds

Staging

https://timetable-staging.primary.health/api/v1/service_kinds

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/service_kinds


RESPONSE SAMPLES

 * 200

Content type
application/json
Copy
Expand all Collapse all
{
 * "serviceKinds": [
    * "covid_19",
    * "flu",
    * "pneumococcal",
    * "rsv"
   
   ]

}


SUBSCRIPTIONS


CREATE SUBSCRIPTION

AUTHORIZATIONS:

x_api_key

REQUEST BODY SCHEMA: APPLICATION/JSON



email
string or null

phoneNumber
string or null



RESPONSES

200

sucessful

409

bad request

post/api/v1/subscriptions

Production

https://timetable.primary.health/api/v1/subscriptions

Staging

https://timetable-staging.primary.health/api/v1/subscriptions

Review

https://timetable-review-b68ab8ee2a67.herokuapp.com/api/v1/subscriptions


REQUEST SAMPLES

 * Payload

Content type
application/json
Copy
{
 * "email": "test@example.com",
 * "phoneNumber": "+15555555555"

}


RESPONSE SAMPLES

 * 200
 * 409

Content type
application/json
Copy
{
 * "message": "Successfully created subscription"

}