How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Person API

Authoritative person and identity data for UW-Madison — names, populations, affiliations, contact points, exports and webhooks. 47 operations over 31 paths, JSON:API envelopes, OAuth 2.0 client credentials. Gated: production access requires an approved institutional request. This is the closest thing in the estate to SCIM, expressed in UW-local terms.

Person API is one of 16 APIs that University of Wisconsin-Madison publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 JSON Schema definition.

Tagged areas include Identity, People, and Directory. The published artifact set on APIs.io includes an OpenAPI specification and 1 JSON Schema.

This API exposes 47 operations across 31 paths, organized into 16 resource areas, and defines 31 schemas. It is described by OpenAPI 3.0.2, at version 1.0.0.

Requests are made against a single base URL, https://api.wisc.edu.

47 operations 31 paths 31 schemas 6 DELETE30 GET4 PATCH7 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.2
API Version
1.0.0
Base URL
https://api.wisc.edu
Authentication
OAuth 2.0
Resource Areas
16

Authentication & Security 1

Person API declares 1 security scheme for authenticating requests. It supports OAuth 2.0 (OAuth2ClientCredentials) using the clientCredentials flow. By default, every request must be authenticated.

Paths & Operations 47

Across 31 paths, the API surfaces 47 operations — 6 DELETE, 30 GET, 4 PATCH, 7 POST. They span 16 resource areas, including people, identifiers, jobs, wiscard, names, academicAppointments, addresses, affiliations, and 8 more. Each is listed below with its method, path, parameters, and response codes.

people 2
GET
/people
Get people.
get_people 18 params → 200400401403406429500
GET
/people/{id}
Get a person.
get_person 4 params → 200400401403404406429500
identifiers 1
GET
/people/{id}/identifiers
Get identifiers.
get_person_identifiers 9 params → 200400401403404406429500
jobs 5
GET
/people/{id}/jobs
Get jobs.
get_person_jobs 38 params → 200400401403404406429500
GET
/people/{id}/jobs/{jobId}
Get a job.
get_person_job 4 params → 200400401403404406429500
GET
/people/{id}/jobs/{jobId}/costAllocations
Get cost allocations.
get_person_job_cost_allocations 11 params → 200400401403404406429500
GET
/people/{id}/jobs/{jobId}/costAllocations/{costAllocationId}
Get a cost allocation.
get_person_job_cost_allocation 6 params → 200400401403404406429500
GET
/people/{id}/jobs/{jobId}/costAllocations/{costAllocationId}/worktags
Get worktags.
get_person_job_cost_allocation_worktag 7 params → 200400401403404406429500
wiscard 1
GET
/people/{id}/wiscard
Get Wiscard.
get_person_wiscard 2 params → 200400401403404406429500
names 5
GET
/people/{id}/names
Get names.
get_person_names 12 params → 200400401403404406429500
POST
/people/{id}/names
Create a name.
create_person_name 1 param body → 201202400401403404406429
GET
/people/{id}/names/{nameId}
Get a name.
get_person_name 2 params → 200400401403404406429500
PATCH
/people/{id}/names/{nameId}
Update a name.
update_person_name 2 params body → 200202400401403404406429
DELETE
/people/{id}/names/{nameId}
Delete a name.
delete_person_name 2 params body → 202204400401403404406429
academicAppointments 1
GET
/people/{id}/academicAppointments
Get academic appointments.
get_person_academic_appointments 12 params → 200400401403404406429500
addresses 1
GET
/people/{id}/addresses
Get addresses.
get_person_addresses 15 params → 200400401403404406429500
affiliations 1
GET
/people/{id}/affiliations
Get affiliations.
get_person_affiliations 5 params → 200400401403404406429500
degrees 1
GET
/people/{id}/degrees
Get degrees.
get_person_degrees 8 params → 200400401403404406429500
phoneNumbers 1
GET
/people/{id}/phoneNumbers
Get phone numbers.
get_person_phone_numbers 7 params → 200400401403404406429500
emailAddresses 1
GET
/people/{id}/emailAddresses
Get email addresses.
get_person_email_addresses 7 params → 200400401403404406429500
socialSecurityNumbers 1
GET
/people/{id}/socialSecurityNumbers
Get social security numbers.
get_person_social_security_numbers 2 params → 200400401403404406429500
organizationStructures 2
GET
/people/{id}/organizationStructures
Get Organization Structures.
get_person_organization_structures 21 params → 200400401403404406429500
GET
/people/{id}/jobs/{jobId}/organizationStructure
Get Job Organization Structure.
get_person_job_organization_structures 4 params → 200400401403404406429500
webhooks 16
GET
/people/webhooks
Get webhooks.
get_webhooks → 200401403406429500
POST
/people/webhooks
Create a webhook.
create_webhook body → 201400401403406415429500
GET
/people/webhooks/{webhookId}
Get a webhook.
get_webhook 1 param → 200401403404406429500
PATCH
/people/webhooks/{webhookId}
Update a webhook.
update_webhook 1 param body → 200400401403404406415429
DELETE
/people/webhooks/{webhookId}
Delete a webhook.
delete_webhook 1 param → 204401403404406429500
POST
/people/webhooks/{webhookId}/replay
Replay events.
replay_events_for_webhook 1 param body → 202400401403404406429500
GET
/people/webhooks/{webhookId}/filters
Get all filters for a webhook.
get_all_filters_for_webhook 1 param → 200401403404406429500
POST
/people/webhooks/{webhookId}/filters
Create a filter for a webhook.
create_filter_for_webhook 1 param body → 201400401403404406415429
GET
/people/webhooks/{webhookId}/filters/{filterId}
Get a filter for a webhook.
get_filter_for_webhook 2 params → 200401403404406429500
PATCH
/people/webhooks/{webhookId}/filters/{filterId}
Update a filter for a webhook.
update_filter_for_webhook 2 params body → 200400401403404406415429
DELETE
/people/webhooks/{webhookId}/filters/{filterId}
Delete a filter for a webhook.
delete_filter_for_webhook 2 params → 204401403404406429500
GET
/people/webhooks/{webhookId}/relationshipFilters
Get all relationship filters for a webhook.
get_all_relationship_filters_for_webhook 1 param → 200401403404406429500
POST
/people/webhooks/{webhookId}/relationshipFilters
Create a relationship filter for a webhook.
create_relationship_filter_for_webhook 1 param body → 201400401403404406415429
GET
/people/webhooks/{webhookId}/relationshipFilters/{relationshipFilterId}
Get a relationship filter for a webhook.
get_relationship_filter_for_webhook 2 params → 200401403404406429500
PATCH
/people/webhooks/{webhookId}/relationshipFilters/{relationshipFilterId}
Update a relationship filter for a webhook.
update_relationship_filter_for_webhook 2 params body → 200400401403404406415429
DELETE
/people/webhooks/{webhookId}/relationshipFilters/{relationshipFilterId}
Delete a relationship filter for a webhook.
delete_relationship_filter_for_webhook 2 params → 204401403404406429500
exports 4
GET
/people/exports
Get exports.
get_exports → 200401403406429500
POST
/people/exports
Create an export.
create_export body → 202400401403406415429500
GET
/people/exports/{exportId}
Get an export.
get_export 1 param → 200401403404406429500
DELETE
/people/exports/{exportId}
Delete an export.
delete_export 1 param → 204400401403404406429500
certificates 4
GET
/people/certificates
Get certificates.
get_certificates → 200401403406429500
POST
/people/certificates
Create a certificate.
create_certificate body → 201400401403406415429500
GET
/people/certificates/{certificateId}
Get a certificate.
get_certificate 1 param → 200401403404406429500
DELETE
/people/certificates/{certificateId}
Delete a certificate.
delete_certificate 1 param → 204401403404406429500

Schemas 31

The contract defines 31 schemas that model the data the API accepts and returns. The most detailed are people (6 properties), webhookRelationshipFilter (5 properties), webhookFilter (5 properties), costAllocations (5 properties). Each schema is shown below with its type and property counts.

people
object
A person.
6 properties 6 required
identifiers
object
Details about an identifier associated with a person.
4 properties 4 required
jobs
object
Details about a job associated with a person.
5 properties 5 required
wiscard
object
Details and metadata from someone's Wiscard.
4 properties 4 required
names
object
Details about a name used to refer to a person.
5 properties 5 required
academicAppointments
object
Details about an academic appointment associated with a person.
4 properties 4 required
addresses
object
Details about an address associated with a person.
4 properties 4 required
socialSecurityNumbers
object
Details about a social security number for a person. Refer to the [SSN Documentation](https://kb.wisc.edu/uw-apis/internal/158482) for more information (login…
4 properties 4 required
affiliations
object
Details about an affiliation associated with a person.
4 properties 4 required
degrees
object
Details about a degree or diploma associated with a person.
4 properties 4 required
phoneNumbers
object
Details about a phone number associated with a person.
4 properties 4 required
emailAddresses
object
Details about an email address associated with a person.
4 properties 4 required
organizationStructure
object
Details about an Organization Structure associated with a person or job.
4 properties 4 required
costAllocations
object
Details about a Cost Allocation associated with a job.
5 properties 5 required
worktags
object
Details about a Worktag associated with a Cost Allocation.
4 properties 4 required
webhooks
object
A webhook represents the configuration for an application to subscribe to events from the Person API. Webhook events are HTTP requests that will be sent to a s…
5 properties 5 required
webhookFilter
object
A webhook filter allows applications to specify who they will receive webhook events for. Refer to the [Webhooks Documentation](https://kb.wisc.edu/uw-apis/158…
5 properties 4 required
webhookRelationshipFilter
object
A webhook relationship filter allows applications to specify what they will receive webhook events about. Refer to the [Webhooks Documentation](https://kb.wisc…
5 properties 4 required
exports
object
An export allows applications to get bulk person data. Refer to the [Exports Documentation](https://kb.wisc.edu/uw-apis/158402) for more information.
4 properties 4 required
certificates
object
A certificate. This is restricted to applications with access to the Certificates Product. Refer to the [Certificates Documentation](https://kb.wisc.edu/uw-api…
4 properties 4 required
certificate
string
event
object
Details about the payloads of events sent to webhook receivers. Refer to the [Webhooks Documentation](https://kb.wisc.edu/uw-apis/158498) for more information.
4 properties 4 required
sourceNames
string
The source of a name resource.
included
array
Included related resources
personRelationship
object
1 property 1 required
createNameRequestData
object
The data object for name create request bodies.
2 properties 2 required
updateNameRequestData
object
The data object for name update request bodies.
2 properties 2 required
webhookRequestData
object
The data object for webhook create and update request bodies.
2 properties 1 required
webhookFilterRequestData
object
The data object for webhook filter create and update request bodies.
2 properties 1 required
webhookRelationshipFilterRequestData
object
The data object for webhook relationship filter create and update request bodies.
2 properties 1 required
dateFormat
string

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

university-of-wisconsin-madison-person-api-openapi.yml Raw ↑

Other APIs University of Wisconsin-Madison publishes across the network.

Mock Person API
Mock Person API (Certificates)
Mock HR API
Manifest API
Mock Manifest API
Finance API
Locations API
Enterprise Billing API
OAuth API
Public Course Search API
UW-Madison Identity Provider (Shibboleth)
Where this information came from

This is an independent, third-party profile of Person API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.