Person API Release Notes
The release notes cover past changes that have been made to the Person API.
For future changes, roadmap information, and attending sprint reviews, please see the website for the API Team .
February 3rd, 2026
- Bug fixed where query parameters were validated even if they were not supported for a specific endpoint. Now, query parameters are only validated if they are supported for the specific endpoint.
- Added several new functions to advanced filtering:
not: This function allows you to negate other functions in advanced filters.startsWith,contains, andendsWith: These functions allow you to filter string attributes based on whether they start with, contain, or end with a specified substring.greaterThan,greaterThanOrEqual,lessThan, andlessThanOrEqual: These functions allow you to filter date and number attributes based on specified ranges.- Added a new attribute,
relationships, to thewebhookresource to enable customizing what relationship resources are included with webhook events. Check out the documentation for therelationshipsattribute: Person API Webhooks.
January 20th, 2026
- Bug fixed where jobs would have a relationship to a non-existent supervisor since the supervisor was deleted. Now, if a supervisor is deleted, all the jobs they supervise will be update to remove that supervisor relationship.
- Added a new function,
memberOf, to advanced filtering. This function allows you to check for values in list attributes. - Added support for advanced filters in exports.
January 6th, 2026
- Added salary and compensation basis data for $0 positions.
- Bug fixed where webhook events in ITE (test environment) were being sent with the incorrect url (Production url).
- Added advanced filtering query parameter,
advancedFilter, to support complex filtering needs.
December 9th, 2025
- Added a new attribute,
jobProfileName, to thejobsresource.
November 25th, 2025
- Added a new attribute,
locationName, to thejobsresource. - Added support for the
filterIncludedquery parameter. Check out the documentation for thefilterIncludedparameter: Person API Filter Query Paramater
November 11th, 2025
- Bug fixed where some jobs were incorrectly marked as
current=falseon the same day as theendDate. The expected behavior is that jobs are set tocurrent=falsethe day after theendDate. This bug fix addresses an edge case to make sure all jobs follow this expectation. - Added a new identifier for UW Medical Foundation. This identifier has the name
personNumberand the sourceUW Medical Foundation. - Added new "Inactive Population". The Inactive population are people who activated a NetID but are no longer part of the UW-Madison population. A special permission is required to access the Inactive population.
- Increased export time limit to 120 minutes to allow larger exports to complete rather than time out.
October 28th, 2025
- Added new attributes to the
webhooksresource providing statistics on webhook subscriptions. These can be viewed via theGET /people/webhooksandGET /people/webhooks/{webhookId}endpoints.
October 14th, 2025
- Removed all data sourced from
HRS, except foremplIdidentifiers, from the Person API
September 23rd, 2025
- Added a new attribute
leveltocostAllocationsresource. - Added an additional type of
costAllocation, "Position Restrictions", indicated in the newlevelattribute. - Added additional contingent worker affiliations to the
affiliationsresources at/people/{id}/affiliations. - Updated
ferpaAttributesin themetasection of thepeopleresource to includeemailAddress.
September 16th, 2025
- Added support for
NOT_INoperator in thefilterquery parameter. Check out documentation for theNOT_INoperator: Person API Filter Query Paramater
September 2nd, 2025
- Added new
degreesresource to the API at/people/{personId}/degrees - Added new attributes to the
academicAppointmentsresource:academicUnitId,academicUnitName,startDate, andendDate.
August 19th, 2025
- Added former Workday contingent positions to the
jobsresource.
August 5th, 2025
- Added
payRateTypeandcompensationBasisto thejobsresource.payRateTypewill contain the same value as the existingpayBasisfield. Consumers are encouraged to usepayRateTypeinstead ofpayBasis. - Webhook events now include a
changedRelationshipsattribute listing the relationships affected.
July 22nd, 2025
- Added a new attribute,
workerType, to thejobsresource. This data is only populated for Workday jobs. - Added new endpoint
/people/{id}/academicAppointments. This endpoint will return a list of academic appointments associated directly with the person.
July 8th, 2025
- Added new
costAllocationsresource to the API at/people/{personId}/jobs/{jobId}/costAllocations - Added new
worktagsresource to the API at/people/{personId}/jobs/{jobId}/costAllocations/{costAllocationId}/worktags - Added support for deeply nested filters, such as
GET /people?filter[jobs.costAllocations.worktags.id]=123 - Added support for nested inclusions, such as
GET /people?include=jobs.costAllocations.worktags - Added a limit of 10 of total inclusions, accounting for intermediate inclusions. Previously, there were only 10 possible inclusions, so all previous requests will still be valid.
June 10th, 2025
- Added new student and employee affiliations to the
affiliationsresource. - Added new range operators for attributes of type
DateandNumber- Supported operations are [GREATER_THAN,GREATER_THAN_OR_EQUAL,LESS_THAN,LESS_THAN_OR_EQUAL].
May 27th, 2025
- Added a new attribute,
proximityId, to thewiscardresource. This attribute is only available for applications with the new Sensitive Identifiers permission. - Added annualized salary data for the
jobsresource. This data is only populated for Workday jobs. - Switched the source of the root person
emailAddressandofficePhoneNumberattributes to Workday in the Integrated Test Environment (ITE) of the Person API (https://test.api.wisc.edu/) for non-Madison institutions. Previously, these were sourced from HRS.
May 13th, 2025
- Added new names with the source
SISand typeprimaryto thenamesresource. These are currently only available for Madison applications with special permissions.
April 29th, 2025
- Added new endpoint
/people/{id}/organizationStructures. This endpoint will return a list of UW Organization Structures associated directly with the person.
April 15th, 2025
- Added new endpoint for
jobsresource at/people/{id}/jobs/{jobId}. This endpoint returns the specific job withjobId. This endpoint was added to support the neworganizationStructurerelationship. - Added new relationship
organizationStructureto thejobsresource. This relationship provides the organization structure of a job sourced from Workday and is available at/people/{id}/jobs/{jobId}/organizationStructure.
April 1st, 2025
- Finished a milestone towards migrating our underlying database which results in a few changes that will be noticeable to API consumers:
- Person IDs are now UUIDs: While person IDs were always strings, previously they could be cast to integers. For example, an ID might have been "123". Now, person IDs will be UUIDs, and they cannot be cast to integers. For example, an ID might now "2a2b7c38-caaa-4cf0-8177-d75f1de27841".
- Sub-resource IDs will change when there are updates to a person: “ID” in this context refers to the “id” string field on sub-resources (e.g. jobs, names, addresses) that is next to the “attributes” object. Although IDs on sub-resources are ephemeral, we have previously tried to preserve the IDs when making updates to a person. For example, if there was an update to a person’s job, the ID of the job would be preserved while the other attributes of the job would be updated. Going forward, when there are any changes about a person or their sub-resources, new IDs will be generated for all their sub-resources. This change does not affect the ID of the person resource. Although Person IDs are also considered ephemeral in the Person API, we will continue to preserve those IDs when possible when there are updates to data.
- Supervisor ID visibility in a job: When a job has a supervisor in a different institution that the API consumer does not have access to, we previously would show that ID in the “relationships” section of the job, but the consumer would not have access to that supervisor. As a result, following the link to that supervisor would result in a 404/”not found” error. Going forward, if an API consumer does not have access to the supervisor of someone’s job, the ID will not be displayed in the job resource for that person.
- Mock data: To better improve the realism of our mock data, we will be switching to dynamically created mock people in the Mock Person API. Previously, we had been maintaining a handful of mock people manually. Going forward, the Mock Person API will contain over 1,000 mock people with more variety of mock data, better simulating the kind of data people can expect in the real API. Existing mock people and their IDs will be replaced with the new dynamically generated mock data. Additionally, the new mock data will be completely regenerated when we make updates to the Person API. We recommend using the Mock Person API to get a feel for the kind of data the real API has, but not to rely on the presence of specific data or mock people for integrations/testing.
February 18th, 2025
- Added new property
continuousServiceDateto thepeopleresource.
January 21st, 2025
- Expanded documentation in the API specification for the
/emailAddresses,/addresses, and/phoneNumbersendpoints to clarify the types available for each source.
January 7th, 2025
- Added supervisor relationships for Workday jobs.
November 12, 2024
- Added a new identifier, workerId, to the
identifiersresource. This is the unique identifier for a person from Workday. - Removed character validation for Name In Use and extended character length. Name In Use can now contain any UTF-8 character and be a maximum of 255 characters long for each name field.
- Added the deceased population to the API. This data is only available to applications with the 'Sensitive Person Demographics' permission.
October 29, 2024
- Added new
socialSecurityNumbersresource at/people/{id}/socialSecurityNumbers. This resource returns the social security numbers for a person.
October 15, 2024
- Added new names with the source
Workdayand typepreferredto thenamesresource. These are currently only available in the test environment.
October 01, 2024
- Added a new product that provides access to new
/certificatesendpoints. This allows clients to manage upto 30 self-signed certificates.
September 03, 2024
- Improved performance on sub-resource endpoints, such as
GET /people/{id}/jobs, for applications without FERPA access. names,addresses,phoneNumbers, andemailAddressesresources now contain data from Workday. These resources are currently only available in the Integrated Test Environment (ITE) of the Person APIhttps://test.api.wisc.edu/.
August 20, 2024
- Added new properties
actionandactionReasonto thejobsresource. These values are only populated for Workday jobs. - Added former Workday jobs to the
jobsresource for a person -/people/{id}/jobs. Previously, former jobs were only supplied from HRS. - Added new property deceased to the people resource. This property will only be available to applications with the Sensitive Demographics permission. The API does not currently contain any people who are deceased, and this property will be false for all people.
August 06, 2024
- Added new
affiliationsresource at/people/{id}/affiliations. This resource returns institutional affiliations for a Person, which is currently limited to Retiree and Emeritus status. - Added new properties
locationIdandworkspaceIdto thejobsresource. These values are only populated for Workday jobs.
July 23, 2024
- Added new properties
prefixandsuffixto thenamesresource. These values are only populated for primary HRS names. - Added new properties
dateOfBirthandlegalSexto thepeopleresource. These properties will only be available to applications with the new 'Sensitive Person Demographics' permission.
July 09, 2024
- Added new properties
supervisoryOrganizationNameandsupervisoryOrganizationCodeto thejobsresource. These properties provide the name and code of the supervisory organization for a job sourced from Workday. - Added new property
costCenterNameto thejobsresource. This property provides the name of the cost center for a job sourced from Workday.
June 25, 2024
- Added technical control to handle FERPA privacy. This control will allow applications to access people who have elected FERPA only if they have been granted the proper permission.
- Added home email addresses and preferred email addresses to the email address endpoint.
- Added new attribute
primaryto job resources.
June 11, 2024
- Added new
emailAddressesresource at/people/{id}/emailAddresses. This resource returns all business and office email addresses for a person.
May 28, 2024
- Removed
fullTimeEquivalentconversion for Workdayjobsresources from percentage to decimal. ThefullTimeEquivalentattribute now returns the FTE as a percentage.
May 14, 2024
- Increased webhook subscription limit from 1 per app to 5 per app.
- Added new phone types denoted by the
phoneNumberTypeofmobileandhome. Added SIS as a new source for phone numbers. Mobile and home phones require additional approval for access.
April 30, 2024
- Added a new identifier, EPPN, to the
identifiersresource. - Added home addresses to the API. Home addresses are only available to application that are granted the new 'Sensitive Person Data' permission.
April 02, 2024
- Added a new test environment which sources data from the Integrated Test Environment (ITE).
March 19, 2024
- Fixed an issue where the
GET /people/{id}/jobswould result in a 500 error if the person had a job whose supervisor is in an institution that the client app cannot access. - Added
instititutionattribute to resources and support for applications that access all institutions.
March 05, 2024
- Allow clients to send a request body with a
DELETErequest to/people/{id}/names/{nameId}. This allows clients to provide a reason for deleting a name. - Currently, the only reason supported is
inappropriate. Example:{"inappropriate": true}. - Increased exports per hour limit from 5 to 100 in the Mock Person API.
- Add static Workday jobs to support planning for the Workday transition.
- Expired exports will no longer show up in the
GET /people/exportsandGET /people/exports/{exportId}endpoints.
February 06, 2024
- Added new attributes to the
jobsresource to support transition to Workday. supervisoryOrganizationIdcostCenterIdsource- Added new
phoneNumbersendpoint. This endpoint returns all office phone numbers for a person.
January 23, 2024
- Added new
exportsendpoint to allow bulk exporting of data from the Person API. For more information, see the documentation: Person API Exports - Added new
addressesendpoint to the Person API. This endpoint returns all office addresses for a person.
December 12, 2023
- Added new identifiers to the
identifiersresource. - Library Patron ID
- Predicted Photo ID
- Campus ID from Student Information System
November 28, 2023
- Added support for offset based pagination. Feature is disabled by default due to performance concerns.
- Fixed issue where the API was not returning
wiscardresources for people.
November 14, 2023
- Universities of Wisconsin data has been added to the Person API. Consumers only see data for their own institutions.
October 31, 2023
- UW-Whitewater data has been added to the Person API. Consumers only see UW-Whitewater data if they have a relationship with the institution.
September 28, 2023
- Updated webhooks documentation to reflect token verification practices.
September 19, 2023
- Fixed a bug where multiple webhook filters were being matched across all resources on a person (e.g. all
jobs) instead of each resource. For example, if a webhook had two filters,jobs.current=trueandjobs.divisionCode=A067130, this would send a webhook if a person's jobs matched on both those filters, regardless if it was the same job or across multiple jobs. With this bug fix, filters will match across each resource. With the previous example, the webhook will only trigger for a person who has at least one job wherejobs.current=trueandjobs.divisionCode=A067130.
September 05, 2023
- Updated our response time SLOs to have separate targets for GET and PATCH/POST/DELETE requests.
- Fixed issue that prevented webhook filters from being created for boolean and date fields. Webhook filters can now be created for these fields, but similar to the filtering on the
/people, no operators other thanEQUALScan be used on booleans and dates. - The OpenAPI specification published to the Developer Portal is now dereferenced, which removes the usage of
$refthat normally helps re-use definitions and schemas in the specification. The new dereferenced specification now works better with Informatica Intelligent Cloud Services. - Fixed issue which caused some changes to person data to be applied out of order during a full synchronization from source systems.
- Fixed issue which was not populating the
positionproperty of thejobsresource for some people.
August 22, 2023
- Added property
positionto thejobsresource, which is a concatenation of Peoplesoft HRSposition numberandjob record. These fields were combined to allow an easier transition to Workday, wherejob recordwill no longer exist. - Added property
currentto thejobsresource. This property indicates whether the job is current or not. This allows for filtering on current jobs both on requests and webhooks. - Fixed bug that prevented results in the
jobsresource from being filtered by attributes of a job's supervisor. Now that this is fixed, requests such as/people/123/jobs?filter[supervisor.firstName]=foowill work as expected.
July 25, 2023
- Added property
businessTitleto thejobsresource and remapped official title to existingtitleproperty in thejobsresource.titleproperty was previously mapped to the business title. - Added new type of webhook filter,
webhookRelationshipFilter. This limits your webhook events to only those events where a specific relationship has changed.
July 11, 2023
- Added former jobs to the
jobsresource for a person -/people/{id}/jobs. Former jobs are jobs that have an end date in the past. - Added a new relationship
supervisorto the jobs resourcejobsfor a person -/people/{id}/jobs. Added the ability to include the supervisor(s) in a request to thejobsendpoint using theincludequery parameter.
May 31, 2023
- Added additional properties in the
jobsresource for a person -/people/{id}/jobs.jobsresource now contain the following properties: beginDateendDateeffectiveDatefullTimeEquivalentpayBasisemployeeCategoryCodeemployeeCategory-
jobCode -
PATCH requests for webhooks not accepting partial updates. This bug has been repaired. Expired webhooks can be successfully un-expired directly through the API.
May 17, 2023
- Filter webhooks by university. Webhook events are only sent to subscribers if they have a relation with the university. Note that existing applications have been back-populated with their university affiliation. The application has been modified adding a step to specify university affiliation.
April 18, 2023
- Added
webhooksendpoint to the Person API. This endpoint allows users to manage their webhooks in a self-service manner. - Check out documentation for webhooks: Person API Webhooks
- Added functionality for users to enable/disable their registered webhook.
- Added functionality for users to replay events for their registered webhook via
/people/webhooks/{id}/replayendpoint. - Added functionality for users to filter webhook events based on their required criteria
/people/webhooks/{id}/filtersendpoint.
January 10, 2023
- Added
namesendpoint to the Person API. This endpoint returns all names for a person. - The
namesendpoint also includes UW Madison Name in Use for the UW Madison Profile app. - Added ability to update Name in Use for UW Madison Profile app.
November 29, 2022
- Added support for change events to be sent to applications via webhooks. Check out documentation for webhooks: Person API Webhooks
- Support was added to allow users of various applications to have a seamless experience when their data changes.
November 01, 2022
- Added functionality for partial searches via the
filterquery parameter. - Added support for
STARTS_WITH, CONTAINS, ENDS_WITHoperators in thefilterquery parameter. - Check out documentation for the
filterquery parameter: Person API Filter Query Paramater
October 18, 2022
- Enabled ability to onboard new applications to the Person API.
- Added
Terms of useto the Person API documentation.
September 06, 2022
- Added functionality to provide history of PVIs so that developers are aware of PVI changes.
August 23, 2022
- Made the Person API available to the UW Madison College of Engineering.
- Added
wiscardendpoint to the Person API. This endpoint returns details for a Wiscard for a person. - Added functionality to handle special characters in query parameters especially for addresses that contain commas.
- Escape special characters in query parameters with
\example: 123 Main St\, Madison. - Added developer guidelines to the Person API documentation: Person API Guidelines
- Document contains guidelines for developers to follow such as quotas, versioning, patterns, etc.
- Added spike arrests and quotas.
- Updated error handling to return informative error messages.
June 28, 2022
- Created a Mock Person API for developers to test features.
- Created Person API for UW Madison Web and Mobile Solutions team to use for their applications.
- Person API contains the following endpoints:
people- returns a person's demographic informationjobs- returns a person's jobs and related informationidentifiers- returns a person's identifiers and related information
- Person API contains details about FERPA protected data in the
metasection of the response document. - Person API contains details about PRIVACY protected data in the
metasection of the response document. - Added support for ISO/IEC 8859 character set.
