University of Wisconsin-Madison · Schema
Person API data model
Component schemas extracted verbatim from openapi/university-of-wisconsin-madison-person-api-openapi.yml, a contract published by the University of Wisconsin-Madison. Refs are rewritten from #/$defs/ to #/$defs/; no schema was authored or altered here.
UniversityHigher EducationEducationPublic Research UniversityUnited StatesWisconsinBig TenAssociation of American UniversitiesIdentityIdentity FederationCourse CatalogResearch RepositoryStudent Information SystemHuman ResourcesFinanceCurriculum
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/main/json-schema/university-of-wisconsin-madison-person-api-schema.json",
"title": "Person API data model",
"description": "Component schemas extracted verbatim from openapi/university-of-wisconsin-madison-person-api-openapi.yml, a contract published by the University of Wisconsin-Madison. Refs are rewritten from #/$defs/ to #/$defs/; no schema was authored or altered here.",
"x-provenance": {
"generated": "2026-08-19",
"method": "derived",
"source": "openapi/university-of-wisconsin-madison-person-api-openapi.yml",
"x-operator": "institution"
},
"$defs": {
"people": {
"description": "A person.",
"type": "object",
"required": [
"type",
"id",
"attributes",
"relationships",
"links",
"meta"
],
"properties": {
"type": {
"type": "string",
"example": "people"
},
"id": {
"type": "string",
"description": "An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response."
},
"attributes": {
"type": "object",
"required": [
"firstName",
"lastName",
"emailAddress",
"officeAddress",
"officePhoneNumber",
"dateOfBirth",
"legalSex",
"deceased"
],
"properties": {
"firstName": {
"type": "string",
"example": "John",
"description": "First name, derived from the person's current UW affiliations."
},
"lastName": {
"type": "string",
"example": "Smith",
"description": "Last name, derived from the person's current UW affiliations."
},
"emailAddress": {
"type": "string",
"example": "john.smith@wisc.edu",
"description": "The email address this person has designated as their primary, if set. Otherwise, their Campus Business Email, or other email derived from their current UW affiliations.",
"nullable": true
},
"officeAddress": {
"type": "string",
"description": "Primary work-related address derived from the person's current UW affiliations. May or may not be a fully-formed street address.",
"example": "1210 W. Dayton Street Madison, WI 53706-1613",
"nullable": true
},
"officePhoneNumber": {
"type": "string",
"example": "608-262-1204",
"description": "Primary work-related phone number derived from the person's current UW affiliations. May or may not be associated with the officeAddress.",
"nullable": true
},
"dateOfBirth": {
"type": "string",
"format": "date",
"example": "1980-01-01",
"description": "Date of birth. This is a sensitive attribute and is only available if the requesting application has the 'Sensitive Person Demographics' permission.",
"nullable": true
},
"legalSex": {
"type": "string",
"enum": [
"Female",
"Male",
"Non-binary",
"Other",
"Unknown"
],
"example": "Male",
"description": "Legal sex. This is a sensitive attribute and is only available if the requesting application has the 'Sensitive Person Demographics' permission."
},
"deceased": {
"type": "boolean",
"example": false,
"description": "Indicates whether or not this person is deceased. This is a sensitive attribute and is only available if the requesting application has the 'Sensitive Person Demographics' permission.",
"nullable": true
},
"continuousServiceDate": {
"type": "string",
"format": "date",
"example": "2000-01-01",
"description": "Adjusted date of civil service employment with the state of Wisconsin - required for a classified permanent job. The adjusted continuous service date is used, for example, to allocate annual vacation for leave accounting, and to rank employees for layoff provisions, including reinstatements, etc. Please see https://policy.wisc.edu/library/UW-5029 for more details.",
"nullable": true
}
}
},
"relationships": {
"type": "object",
"required": [
"identifiers",
"jobs",
"names",
"wiscard",
"addresses",
"phoneNumbers",
"emailAddresses",
"affiliations"
],
"properties": {
"academicAppointments": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"affiliations": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"addresses": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"degrees": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"emailAddresses": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"identifiers": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"jobs": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"names": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"organizationStructures": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"phoneNumbers": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"socialSecurityNumbers": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
}
}
}
}
},
"wiscard": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
},
"nullable": true
}
}
}
}
},
"links": {
"description": "The link to access a resource itself",
"type": "object",
"properties": {
"self": {
"type": "string",
"example": "https://api.wisc.edu/link/to/self"
}
}
},
"meta": {
"type": "object",
"required": [],
"properties": {
"ferpa": {
"type": "boolean",
"example": false,
"description": "Indicates whether or not a student has elected FERPA coverage on one or more of their attributes. Please see https://registrar.wisc.edu/ferpa/ for more details about how to handle FERPA data."
},
"ferpaAttributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Lists attributes on the base person resource that are covered by FERPA. Currently, only 'emailAddress' is eligible to be covered by FERPA."
},
"privateAttributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Not currently used."
}
}
}
}
},
"identifiers": {
"description": "Details about an identifier associated with a person.",
"type": "object",
"required": [
"type",
"id",
"attributes",
"relationships"
],
"properties": {
"type": {
"type": "string",
"example": "identifiers"
},
"id": {
"type": "string",
"description": "Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored."
},
"attributes": {
"type": "object",
"required": [
"name",
"source",
"value",
"current",
"institution"
],
"properties": {
"name": {
"type": "string",
"example": "pvi",
"enum": [
"pvi",
"netId",
"emplId",
"libraryPatronId",
"campusId",
"predictedPhotoId",
"eppn",
"workerId",
"wiscardId",
"manifestId"
],
"description": "The name of this identifier."
},
"source": {
"description": "The source of an identifier resource.",
"type": "string",
"enum": [
"IAM",
"HRS",
"SIS",
"LIBRARY",
"WISCARD",
"Workday"
],
"example": "IAM"
},
"value": {
"type": "string",
"example": "UW123A456",
"minLength": 1
},
"current": {
"description": "Property that indicates if this identifier is currently used. The identifiers 'pvi' and 'emplId' are available as current and non-current. All other identifiers are only available in their current versions.",
"type": "boolean",
"example": true
},
"active": {
"description": "If false, no further changes are being made to the identifier. This field is only visible if the requesting application has access to the Inactive Population.",
"type": "boolean",
"example": true
},
"institution": {
"description": "The institution associated with the resource.",
"type": "string",
"example": "UW-Madison",
"enum": [
"Shared",
"UW-Eau Claire",
"UW-Green Bay",
"UW-La Crosse",
"UW-Madison",
"UW-Milwaukee",
"UW Oshkosh",
"UW-Parkside",
"UW-Platteville",
"UW-River Falls",
"UW-Stevens Point",
"UW-Stout",
"UW-Superior",
"UW-Whitewater",
"UW-Extension",
"UW System"
]
}
}
},
"relationships": {
"type": "object",
"properties": {
"person": {
"description": "A generic relationship object",
"type": "object",
"properties": {
"links": {
"type": "object",
"properties": {
"related": {
"type": "string",
"example": "https://api.wisc.edu/link/to/related/object"
}
}
},
"data": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "sampleType"
},
"id": {
"type": "string",
"example": "sampleId"
}
},
"nullable": true
}
}
}
}
}
}
},
"jobs": {
"description": "Details about a job associated with a person.",
"type": "object",
"required": [
"type",
"id",
"attributes",
"relationships",
"links"
],
"properties": {
"type": {
"type": "string",
"example": "jobs"
},
"id": {
"type": "string",
"description": "Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored."
},
"attributes": {
"type": "object",
"required": [
"title",
"annualizedSalary",
"basePay",
"beginDate",
"endDate",
"effectiveDate",
"fullTimeEquivalent",
"compensationBasis",
"payRateType",
"employeeCategoryCode",
"employeeCategory",
"jobCode",
"jobProfileName",
"businessTitle",
"position",
"current",
"primary",
"supervisoryOrganizationId",
"costCenterId",
"source",
"institution",
"locationId",
"locationName",
"workspaceId",
"action",
"actionReason",
"workerType"
],
"properties": {
"title": {
"type": "string",
"example": "Software Eng/Developer I",
"description": "Title of the person's position at this job.",
"minLength": 1
},
"annualizedSalary": {
"type": "number",
"example": 90384.56,
"description": "The annualized salary of the job. This is not the actual paid salary, but the expected annual salary given the normal pay rate and assuming full time equivalence, adjusted to a 12-month compensation basis (i.e. positions with a compensationBasis of 9 Month assume an FTE of 1.22222, while jobs with a compensationBasis of 12 Month assume 1.0 FTE). Only available for jobs with source Workday.",
"nullable": true
},
"basePay": {
"type": "number",
"example": 75328.8,
"description": "The base pay of the job. This is not the actual paid salary. For jobs with a payRateType of Hourly, this is usually the hourly rate. For jobs with a payRateType of Salary, this is usually the expected annual salary given the normal pay rate and assuming full time equivalence, not adjusted for compensation basis (i.e. 1.0 FTE for both 9- and 12-month appointments). Only available for jobs with source Workday.",
"nullable": true
},
"beginDate": {
"type": "string",
"format": "date",
"example": "2018-01-01",
"description": "The date the job began."
},
"endDate": {
"type": "string",
"format": "date",
"example": "2025-01-01",
"description": "The date the job ended.",
"nullable": true
},
"effectiveDate": {
"type": "string",
"format": "date",
"example": "2018-01-01",
"description": "The date the newest action on this job is effective."
},
"fullTimeEquivalent": {
"type": "string",
"example": "100.0",
"pattern": "^-?\\d+(\\.\\d+)?$",
"description": "The full time equivalency of the job, represented as a percentage."
},
"payRateType": {
"type": "string",
"enum": [
"Hourly",
"Salary",
"No_Pay",
"Period_Activity_Pay",
"One_Time_Payment",
"Hourly_Timeclock"
],
"example": "Hourly",
"description": "The pay rate type for this position."
},
"compensationBasis": {
"type": "string",
"enum": [
"12 Month",
"9 Month",
"Summer",
"Seasonal",
"No Pay",
null
],
"example": "12 Month",
"description": "Compensation basis for a job.",
"nullable": true
},
"employeeCategoryCode": {
"type": "string",
"example": "AS",
"description": "Unique identifier for an employee category."
},
"employeeCategory": {
"type": "string",
"example": "Academic Staff",
"description": "See this document for information on this field: https://kb.wisc.edu/ohr/policies/page.php?id=53496",
"minLength": 1
},
"jobCode": {
"type": "string",
"example": "IT002",
"description": "Unique identifier for the job title.",
"minLength": 1
},
"jobProfileName": {
"type": "string",
"example": "Software Engineer",
"description": "The job\u2019s assigned official standard job code description defining the characteristics of that position within the organization.",
"minLength": 1
},
"businessTitle": {
"type": "string",
"example": "Software Engineer/Developer",
"description": "The job\u2019s assigned official job title, which can be edited with HR approval to include more specific details about an individual position within the organization or the type of work performed.",
"minLength": 1
},
"position": {
"type": "string",
"example": "00123456-1",
"description": "An identifier to be used to uniquely identify a job for a person.",
"minLength": 1
},
"current": {
"type": "boolean",
"example": true,
"description": "Property that indicates if this job is current."
},
"primary": {
"type": "boolean",
"example": true,
"description": "Property that indicates if this is the primary job. In Workday, a person can only have 1 primary job system-wide. The job designated as primary may be invisible to the registered app if they are not able to view data for the insitution the primary job belongs to."
},
"supervisoryOrganizationId": {
"type": "string",
"example": "SO00001234",
"description": "The ID of the supervisory organization for this job. Only available for jobs with source Workday.",
"nullable": true
},
"costCenterId": {
"type": "string",
"example": "CC001234",
"description": "The ID of the cost center for this job. Only available for jobs with source Workday.",
"nullable": true
},
"costCenterName": {
"type": "string",
"example": "UWMSN | DOIT | Application Infrastructure Services",
"description": "The name of the cost center for this job. Only available for jobs with source Workday.",
"nullable": true
},
"source": {
"type": "string",
"example": "Workday",
"description": "The source of this job.",
"enum": [
"Workday"
]
},
"institution": {
"description": "The institution associated with the resource.",
"type": "string",
"example": "UW-Madison",
"enum": [
"Shared",
"UW-Eau Claire",
"UW-Green Bay",
"UW-La Crosse",
"UW-Madison",
"UW-Milwaukee",
"UW Oshkosh",
"UW-Parkside",
"UW-Platteville",
"UW-River Falls",
"UW-Stevens Point",
"UW-Stout",
"UW-Superior",
"UW-Whitewater",
"UW-Extension",
"UW System"
]
},
"supervisoryOrganizationName": {
"type": "string",
"example": "Application Infrastructure Services",
"description": "The name of the supervisory organization for this job. Only available for jobs with source Workday.",
"nullable": true
},
"supervisoryOrganizationCode": {
"type": "string",
"example": "UWMSN | DOIT |",
"description": "The code of the supervisory organization for this job. Only available for jobs with source Workday.",
"nullable": true
},
"relatedSupervisoryOrganizationIds": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"SO00000000",
"SO00001234",
"SO00002345"
],
"description": "The IDs of the supervisory organizations related to this job. This list contains IDs of all parent supervisory organizations and IDs of supervisory organizations that this position manages. Only available for jobs with source Workday."
},
"managedSuperv
# --- truncated at 32 KB (137 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-person-api-schema.json