View Swagger Documentation here.
The Scholars widgets API is a low-maintenance solution for consuming data about an individual or an entire
organization. Endpoints can be accessed using the Widgets Builder tool
(https://scholars.duke.edu/widgets/builder?uri=DukeUniqueID) and then exported in various formats, including
JSON and Javascript. The Widgets Builder also allows users to copy and paste embed code directly onto your own
website. The Widgets Builder is accessible from a person’s profile page or organization’s page by clicking the “Add
Data to my Website” button.
Scholars@Duke Data Consumer’s Guide
3
Basic Use of Scholars Widgets (Endpoint by section of profile)
Advanced Use of Scholars Widgets (All data for a person or individual)
• A Complete Feed endpoint is available that includes all data sections for a person or organization.
• Getting data for an organization. The organization widgets includes directory data (name, contact, overview,
and image) for an organization. If you require more data than this, one way to pull data for an entire
organization is to write a script that loops over the individual person widgets. For groups defined in
Scholars@Duke, the organization widgets will provide you with a list of individuals. You can also loop
through a custom list to create ad-hoc groups. You can pull individual widgets data using the Scholars unique
URIs or the Duke Unique ID. These identifiers can be substituted into the following URL in order to access the
JSON feed for an individual:
https://scholars.duke.edu/widgets/api/v0.9/people/complete/all.json?uri=https://scholars.duke.edu/individual/per9294252
Scholars@Duke Person URI – The person identifier (text in green) is specific to Scholars@Duke. This identifier
is what is listed in the organizational widgets Person List and is in the URL on the profile page.
Duke Unique ID – rather than using the person identifier, the widgets URL will also resolve using the Duke Unique
ID. Remove everything after the “uri=” above and replace it with the Duke Unique ID. The above example would
look like this using a 7-digit Duke Unique ID (including leading zeros):
https://scholars.duke.edu/widgets/api/v0.9/people/complete/all.json?uri=0123456
• Identifying changes in the widgets. When using the embed code, updates will automatically display wherever
that embed code is used. When consuming individual profile data from the Complete Feed as JSON, there is an
attribute called ‘updatedAt’ that you can use to identify when a profile was last updated. There is a separate
‘imageModTime’ attribute that alerts you to changes in the profile picture. The ‘imageModTime’ attribute can
be found both in the individual widgets and the organization widgets.
• Widgets for inactive profiles. When a profile becomes inactive in Scholars@Duke, all of their data is removed
from scholars.duke.edu and they will be dissociated with all Duke organizations by removing them from the
organizational widgets. However, a static version of their widgets data can still be accessed using the URL
above. In this case, the widgets will reflect the state of the profile prior to being deactivated