Directory API Documentation
Introduction
This collection of JSON endpoints allows your applications and services to retrieve UF Health Directory data in a friendly, lightweight format.
There are 3 tiers/namespaces for endpoint access:
- Public - Returns public data that is visible to anyone who visits the UF Health Directory.
- Secured - Returns data that requires authentication to view, but omits FERPA protected data for students.
- Restricted - Returns all secured data, including FERPA-protected data.
Authentication
Public endpoints can be accessed freely, but endpoints in the secured and restricted tiers require an API key. You can request one by emailing webservices@ahc.ufl.edu
. Your API key will be unique to your application, and only the IP addresses you specify will be authorized to make requests.
Once you have your API key, include it in your requests using the key
query string parameter (API keys are case-sensitive):
GET https://directory.ufhealth.org/webservices/restricted/v1.1/profiles/email/morales2@ufl.edu?key=<yourKey>
Endpoints
The Base URL for an API request depends on the tier of data you're requesting:
- Public:
https://directory.ufhealth.org/webservices/v1.1/
- Secured:
https://directory.ufhealth.org/webservices/secured/v1.1/
- Restricted:
https://directory.ufhealth.org/webservices/restricted/v1.1/
Append each endpoint URL below to your chosen Base URL to build the full URL for your request.
Profiles
profiles/all
— Load all active profiles.
Supports the following query parameters:
pagesize
: number of profiles to return per page; default = 10page
: page numberfields
/includeFields
/excludeFields
profiles/search/<keyword>
— List profiles that match your search term.
Supports the following query parameters:
pagesize
: number of profiles to return per page; default = 10page
: page numberfields
/includeFields
/excludeFields
profiles/ufid/<ufid>
— Get a single profile by the individual's UFID.
profiles/emplid/<emplid>
— Get a single profile by the individual's Shands EMPLID.
profiles/email/<email>
— Get a single profile by email address.
These endpoints support the fields
/includeFields
/excludeFields
parameters.
Publications
publications/ufid/<ufid>
— List publications for a profile by the individual's UFID.
publications/email/<email>
— List publications for a profile by the individual's email address.
These endpoints support the following query parameters:
pagesize
: number of publications to return per page; default = 10page
: page number
Departments
departments/search/<keyword>
— List departments that match your search term.
There are no query parameters available for this endpoint.
departments/<name>/profiles
— List profiles whose primary department matches the named department.
departments/deptid/<deptid>/profiles
— List profiles whose primary department matches the given UF DEPTID.
These endpoints support the following query parameters:
includeIndirect
: include profiles in sub-departments of the named department.pagesize
: number of profiles to return per page; default = 10page
: page numberfields
/includeFields
/excludeFields
Custom groups
groups/search/<keyword>
— Searches custom groups for matches to your search term.
There are no query parameters available for this endpoint.
groups/<groupId>
— Load details for the given custom group.
There are no query parameters available for this endpoint.
groups/<groupId>/members
— List direct members of the given custom group.
Supports the following query parameters:
limit
: number of members to return per page; default = 25page
: page number
Profile Fields
Every API endpoint that returns profile data includes the ability to fine-tune the list of fields returned in your results, so you can get exactly the data you need and minimize payload size. You can do this one of two ways:
-
Use the
fields
parameter to specify the exact list of fields you want returned.Use a comma-separated list of available field names to define exactly what you want. For example, if you want only UFIDs and display names:
GET profiles/all?fields=ufid,display_name
-
Use the
includeFields
and/orexcludeFields
parameters to return the default field list, plus or minus the fields you specify.The list of fields returned by default differs slightly depending on your request tier (public/secured/restricted), but in general, contains a pretty comprehensive set of data for general use. You can keep this behavior, but fine-tune it, using
includeFields
andexcludeFields
.For example, to include a list of parent departments (a list of the higher-level departments that contain the profile's primary department):
GET profiles/all?includeFields=department_parents
Or to exclude course information for faculty members:
GET profiles/all?excludeFields=courses,course_codes
Available fields
The following is a list of all the available field names for a profile endpoint.
Important note about JSON fields: Several fields in this list are denoted with :[json]
after the field name, because they contain JSON-encoded data. When using these fields in the fields
or includeFields
parameters, keep the :[json]
endings to automatically decode them. Otherwise, they will return encoded JSON strings.
academic_positions:[json] certifications:[json] emplid honors:[json] presentations:[json] show_on_ufhealth
addresses:[json] clinical_interests epic_department_id languages primary_department_group_id show_on_ufhealth_jax
affiliation_codes clinical_summary epic_mychart_scheduling last_name primary_department_parent_ids slug
affiliation_names college_code epic_provider_id last_updated profile_id specialties
affiliations:[json] colleges epic_telehealth_scheduling legal_name profile_type subspecialties
appointment_phone course_codes external_links:[json] middle_name profile_type_name suffix_family
appointment_phone_area courses:[json] first_name npi promoted_specialties suffix_professional
appointment_phone_ext cv full_name orcid publication_journal_names take_appointments
appointment_phone_number cv_modified_date gatorlink patent_titles publication_keywords take_appointments_jax
assistant:[json] department gender patents:[json] publication_mesh_terms:[json] teaching_philosophy
biography department_deptid granting_bodies patient_type publication_titles title
business_cell_phone department_parent_deptids grants:[json] personal_cell_phone publications:[json] ufid
business_phone department_parents hash philosophy_of_care referral_fax
business_phone_area disable_provider_profile hero_photo phones:[json] regions
business_phone_ext display_name hero_photo_ext photo research_interests
business_phone_number education:[json] hero_photo_sha1 photo_ext research_summary
certification_titles email honor_titles photo_sha1 shands_account_gnv