This is the official PracSuite API.
It follows standard REST conventions, so you can work with it using any HTTP client and any programming language that can send HTTP requests.
All responses are returned in JSON format.
This is the official PracSuite API.
It follows standard REST conventions, so you can work with it using any HTTP client and any programming language that can send HTTP requests.
All responses are returned in JSON format.
You may search for a maximum of 7 days of appointment availability per request.
All availability searches must specify a single appointment_type_id.
Availability may be filtered using any combination of business, practitioner, profession, or resource. When multiple filters are supplied, only times matching all provided criteria will be returned.
PracSuite users define daily practitioner availability using Rosters. Users can apply three availability flags to control which tools can book at particular times:
Use the manual, online, and waiting_list query parameters to filter available times based on these roster flags. If none of these parameters are supplied, only times available for manual bookings will be returned.
Users define default appointment duration rules per Appointment Type. These defaults may vary based on business, profession, practitioner, and client fee category, which is determined by the combination of client_id and account_id.
When available, client_id and account_id should be provided to ensure the correct Appointment Type default configuration is applied.
RFC 3339 UTC date-time (Z) with microsecond precision.
{ "links": { "self": "https://api.pracsuite.com/v1/patient/1", "accounts": "https://api.pracsuite.com/v1/patient/1/account", "appointments": "https://api.pracsuite.com/v1/patient/1/appointment", "invoices": "https://api.pracsuite.com/v1/patient/1/invoice", "patient_attachments": "https://api.pracsuite.com/v1/patient/1/patient_attachment", "patient_contacts": "https://api.pracsuite.com/v1/patient/1/patient_contact", "payments": "https://api.pracsuite.com/v1/patient/1/payment", "tags": "https://api.pracsuite.com/v1/patient/1/tag" }, "client_id": 1, "first_name": "string", "tenant_id": 0, "title": "string", "middle_name": "string", "surname": "string", "preferred_name": "string", "date_of_birth": "2019-08-24", "email": "user@example.com", "gender": "string", "address_1": "string", "address_2": "string", "address_3": "string", "address_4": "string", "suburb": "string", "address_state": "string", "postcode": "string", "country": "string", "home_phone": "string", "work_phone": "string", "mobile": "string", "fax": "string", "file_no": "string", "patient_notes": "string", "patient_warnings": "string", "fee_category": "string", "health_fund": "string", "health_fund_member_no": "string", "pension_no": "string", "pension_expiry": "2019-08-24", "worksafe_claim_no": "string", "archive": true, "occupation": "string", "default_account_id": 0, "medicare_no": "string", "medicare_irn": "string", "medicare_expiry": "2019-08-24", "medicare_claimant": true, "dva_no": "string", "dva_type": "string", "health_fund_patient_id": 0, "file_created": "2020-09-12T11:09:42.687393Z", "default_business": "string", "default_practitioner": "string", "referrer": "string", "referrer_email": "user@example.com", "referrer_organisation": "string", "referrer_source": "string", "referral_date": "2019-08-24", "medical_warnings": "string", "reminders_notifications": "string", "gp_name": "string", "deceased": true, "family_notes": "string", "health_fund_card_issue_no": "string", "covid_vaccination_status": "string", "covid_vaccination_date": "2019-08-24", "ndis_number": "string", "email_marketing": "Soft Opt-In", "sms_marketing": "Soft Opt-In", "sex": "string", "pronouns": "string", "default_phone_reminder": true, "default_sms_reminder": true, "default_email_reminder": true, "default_sms_confirmation": true, "default_email_confirmation": true, "default_sms_follow_up": true, "default_email_follow_up": true, "medicare_claimants": [ { … } ] }
Comma separated search fields. See Sorting
Filter result by one or more fields.
See Query Filtering
Available filters:
| Value | Format |
|---|---|
| first_name | string |
| surname | string |
| file_created | timestamp |
| date_of_birth | date |
| preferred_name | string |
| string | |
| archived | timestamp |
| updated | timestamp |
| home_phone | string |
| work_phone | string |
| mobile | string |
| phone | string |
| status | integer= only.Active = 1, Inactive = 2, All = 3, Inactive (excl deceased) = 4, All (excl deceased) = 5, Deceased = 6 |
| email_marketing_type | integer= only.Soft Opt-In = 1, Opt-In = 2, Soft Opt-Out = 3, Opt-Out = 4 |
| sms_marketing_type | integer= only.Soft Opt-In = 1, Opt-In = 2, Soft Opt-Out = 3, Opt-Out = 4 |
curl -i -X GET \
'https://api.pracsuite.com/v1/patient?page=1&page_size=50&sort_by=%5B%22client_id%22%2C%22first_name%22%2C%22surname%22%2C%22file_created%22%5D&q%5B%5D=string' \
-H 'a-api-key: YOUR_API_KEY_HERE' \
-H 'x-api-key: YOUR_API_KEY_HERE'{ "clients": [ { … } ], "total_entries": 0, "links": { "self": "https://api.pracsuite.com/v1/patient?page=2", "previous": "https://api.pracsuite.com/v1/patient?page=1", "next": "https://api.pracsuite.com/v1/patient?page=3" } }
Although not enforced by the API, a default practitioner is required when creating patient records in PracSuite. If no default practitioner is provided, the system assigns the first active practitioner in the practice.
When creating a patient as part of an appointment booking flow, it is best practice to set the default practitioner to the practitioner associated with the appointment.
curl -i -X POST \
https://api.pracsuite.com/v1/patient \
-H 'Content-Type: application/json' \
-H 'a-api-key: YOUR_API_KEY_HERE' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-d '{
"first_name": "string",
"surname": "string",
"date_of_birth": "2019-08-24",
"address_1": "string",
"suburb": "string",
"address_state": "string",
"postcode": "string",
"country": "string",
"email": "user@example.com",
"gender": "string",
"home_phone": "string",
"mobile": "string",
"preferred_phone": 1,
"fee_cat_id": 0,
"default_business_id": 0,
"default_practitioner_id": 0,
"default_sms_reminder": true,
"default_email_reminder": true,
"default_sms_confirmation": true,
"default_email_confirmation": true,
"default_sms_follow_up": true,
"default_email_follow_up": true,
"sms_marketing_type": 1,
"email_marketing_type": 1,
"timezone": "Australia/Adelaide",
"sex_id": 0,
"pronoun_id": 0
}'{ "links": { "self": "https://api.pracsuite.com/v1/patient/1", "accounts": "https://api.pracsuite.com/v1/patient/1/account", "appointments": "https://api.pracsuite.com/v1/patient/1/appointment", "invoices": "https://api.pracsuite.com/v1/patient/1/invoice", "patient_attachments": "https://api.pracsuite.com/v1/patient/1/patient_attachment", "patient_contacts": "https://api.pracsuite.com/v1/patient/1/patient_contact", "payments": "https://api.pracsuite.com/v1/patient/1/payment", "tags": "https://api.pracsuite.com/v1/patient/1/tag" }, "client_id": 1, "first_name": "string", "tenant_id": 0, "title": "string", "middle_name": "string", "surname": "string", "preferred_name": "string", "date_of_birth": "2019-08-24", "email": "user@example.com", "gender": "string", "address_1": "string", "address_2": "string", "address_3": "string", "address_4": "string", "suburb": "string", "address_state": "string", "postcode": "string", "country": "string", "home_phone": "string", "work_phone": "string", "mobile": "string", "fax": "string", "file_no": "string", "patient_notes": "string", "patient_warnings": "string", "fee_category": "string", "health_fund": "string", "health_fund_member_no": "string", "pension_no": "string", "pension_expiry": "2019-08-24", "worksafe_claim_no": "string", "archive": true, "occupation": "string", "default_account_id": 0, "medicare_no": "string", "medicare_irn": "string", "medicare_expiry": "2019-08-24", "medicare_claimant": true, "dva_no": "string", "dva_type": "string", "health_fund_patient_id": 0, "file_created": "2020-09-12T11:09:42.687393Z", "default_business": "string", "default_practitioner": "string", "referrer": "string", "referrer_email": "user@example.com", "referrer_organisation": "string", "referrer_source": "string", "referral_date": "2019-08-24", "medical_warnings": "string", "reminders_notifications": "string", "gp_name": "string", "deceased": true, "family_notes": "string", "health_fund_card_issue_no": "string", "covid_vaccination_status": "string", "covid_vaccination_date": "2019-08-24", "ndis_number": "string", "email_marketing": "Soft Opt-In", "sms_marketing": "Soft Opt-In", "sex": "string", "pronouns": "string", "default_phone_reminder": true, "default_sms_reminder": true, "default_email_reminder": true, "default_sms_confirmation": true, "default_email_confirmation": true, "default_sms_follow_up": true, "default_email_follow_up": true, "medicare_claimants": [ { … } ] }
curl -i -X GET \
'https://api.pracsuite.com/v1/patient/{client_id}' \
-H 'a-api-key: YOUR_API_KEY_HERE' \
-H 'x-api-key: YOUR_API_KEY_HERE'{ "links": { "self": "https://api.pracsuite.com/v1/patient/1", "accounts": "https://api.pracsuite.com/v1/patient/1/account", "appointments": "https://api.pracsuite.com/v1/patient/1/appointment", "invoices": "https://api.pracsuite.com/v1/patient/1/invoice", "patient_attachments": "https://api.pracsuite.com/v1/patient/1/patient_attachment", "patient_contacts": "https://api.pracsuite.com/v1/patient/1/patient_contact", "payments": "https://api.pracsuite.com/v1/patient/1/payment", "tags": "https://api.pracsuite.com/v1/patient/1/tag" }, "client_id": 1, "first_name": "string", "tenant_id": 0, "title": "string", "middle_name": "string", "surname": "string", "preferred_name": "string", "date_of_birth": "2019-08-24", "email": "user@example.com", "gender": "string", "address_1": "string", "address_2": "string", "address_3": "string", "address_4": "string", "suburb": "string", "address_state": "string", "postcode": "string", "country": "string", "home_phone": "string", "work_phone": "string", "mobile": "string", "fax": "string", "file_no": "string", "patient_notes": "string", "patient_warnings": "string", "fee_category": "string", "health_fund": "string", "health_fund_member_no": "string", "pension_no": "string", "pension_expiry": "2019-08-24", "worksafe_claim_no": "string", "archive": true, "occupation": "string", "default_account_id": 0, "medicare_no": "string", "medicare_irn": "string", "medicare_expiry": "2019-08-24", "medicare_claimant": true, "dva_no": "string", "dva_type": "string", "health_fund_patient_id": 0, "file_created": "2020-09-12T11:09:42.687393Z", "default_business": "string", "default_practitioner": "string", "referrer": "string", "referrer_email": "user@example.com", "referrer_organisation": "string", "referrer_source": "string", "referral_date": "2019-08-24", "medical_warnings": "string", "reminders_notifications": "string", "gp_name": "string", "deceased": true, "family_notes": "string", "health_fund_card_issue_no": "string", "covid_vaccination_status": "string", "covid_vaccination_date": "2019-08-24", "ndis_number": "string", "email_marketing": "Soft Opt-In", "sms_marketing": "Soft Opt-In", "sex": "string", "pronouns": "string", "default_phone_reminder": true, "default_sms_reminder": true, "default_email_reminder": true, "default_sms_confirmation": true, "default_email_confirmation": true, "default_sms_follow_up": true, "default_email_follow_up": true, "medicare_claimants": [ { … } ] }
curl -i -X PATCH \
'https://api.pracsuite.com/v1/patient/{client_id}' \
-H 'Content-Type: application/json' \
-H 'a-api-key: YOUR_API_KEY_HERE' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-d '{
"first_name": "string",
"surname": "string",
"date_of_birth": "2019-08-24",
"address_1": "string",
"suburb": "string",
"address_state": "string",
"postcode": "string",
"country": "string",
"email": "user@example.com",
"gender": "string",
"home_phone": "string",
"mobile": "string",
"preferred_phone": 1,
"fee_cat_id": 0,
"default_business_id": 0,
"default_practitioner_id": 0,
"default_sms_reminder": true,
"default_email_reminder": true,
"default_sms_confirmation": true,
"default_email_confirmation": true,
"default_sms_follow_up": true,
"default_email_follow_up": true,
"sms_marketing_type": 1,
"email_marketing_type": 1,
"timezone": "Australia/Adelaide",
"sex_id": 0,
"pronoun_id": 0
}'{ "links": { "self": "https://api.pracsuite.com/v1/patient/1", "accounts": "https://api.pracsuite.com/v1/patient/1/account", "appointments": "https://api.pracsuite.com/v1/patient/1/appointment", "invoices": "https://api.pracsuite.com/v1/patient/1/invoice", "patient_attachments": "https://api.pracsuite.com/v1/patient/1/patient_attachment", "patient_contacts": "https://api.pracsuite.com/v1/patient/1/patient_contact", "payments": "https://api.pracsuite.com/v1/patient/1/payment", "tags": "https://api.pracsuite.com/v1/patient/1/tag" }, "client_id": 1, "first_name": "string", "tenant_id": 0, "title": "string", "middle_name": "string", "surname": "string", "preferred_name": "string", "date_of_birth": "2019-08-24", "email": "user@example.com", "gender": "string", "address_1": "string", "address_2": "string", "address_3": "string", "address_4": "string", "suburb": "string", "address_state": "string", "postcode": "string", "country": "string", "home_phone": "string", "work_phone": "string", "mobile": "string", "fax": "string", "file_no": "string", "patient_notes": "string", "patient_warnings": "string", "fee_category": "string", "health_fund": "string", "health_fund_member_no": "string", "pension_no": "string", "pension_expiry": "2019-08-24", "worksafe_claim_no": "string", "archive": true, "occupation": "string", "default_account_id": 0, "medicare_no": "string", "medicare_irn": "string", "medicare_expiry": "2019-08-24", "medicare_claimant": true, "dva_no": "string", "dva_type": "string", "health_fund_patient_id": 0, "file_created": "2020-09-12T11:09:42.687393Z", "default_business": "string", "default_practitioner": "string", "referrer": "string", "referrer_email": "user@example.com", "referrer_organisation": "string", "referrer_source": "string", "referral_date": "2019-08-24", "medical_warnings": "string", "reminders_notifications": "string", "gp_name": "string", "deceased": true, "family_notes": "string", "health_fund_card_issue_no": "string", "covid_vaccination_status": "string", "covid_vaccination_date": "2019-08-24", "ndis_number": "string", "email_marketing": "Soft Opt-In", "sms_marketing": "Soft Opt-In", "sex": "string", "pronouns": "string", "default_phone_reminder": true, "default_sms_reminder": true, "default_email_reminder": true, "default_sms_confirmation": true, "default_email_confirmation": true, "default_sms_follow_up": true, "default_email_follow_up": true, "medicare_claimants": [ { … } ] }
Rich text HTML is supported with a safe, limited set of elements and inline styles. Any unsupported tags, attributes, or CSS are removed automatically.
Supported elements
p, br, strong, em, i, u, blockquote, ul, ol, li, div, span, table, thead, tbody, tfoot, tr, td, th, colgroup, col, caption, img (base64 images only)
Images
Images must be embedded as base64 data URIs. Only PNG, JPEG/JPG, GIF, and WebP image types are supported. External image URLs and other formats are not permitted.
Supported inline CSS
Common formatting and table layout styles are allowed, including text styling, alignment, spacing, borders, and table sizing (color, font-size, text-align, padding, width, height, border, etc.). Unsupported styles are removed automatically.
Content limits
Rich text content must be 150,000 characters or less after processing.