Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Student Web Service (SWS) Degree Audit API
description: Student Web Service (SWS) provides a RESTful API to access and update central student data. Subscribe to http://mailman.u.washington.edu/mailman/listinfo/sws-client-app-dev to get notifications about planned outages, support and the announcement of new features.
contact:
name: Enterprise Web Services & Events Team
url: https://itconnect.uw.edu/service/enterprise-web-services-and-events/
email: sws-support@uw.edu
version: v5
termsOfService: https://www.washington.edu/online/terms/
servers:
- url: https://ws.admin.washington.edu/student
description: UW-IT Enterprise Web Services production host for the Student Web Service
externalDocs:
description: UW-IT Enterprise Web Services registry
url: https://webservices.washington.edu/sws/
tags:
- name: DegreeAudit
x-operator: institution
x-provenance:
method: derived
source: openapi/_original/university-of-washington-student-web-service.yaml
generated: '2026-08-30'
note: Re-based by the university pipeline on 2026-08-30. refine-openapis had welded the IdCard Web Service title/contact/base onto outputs split from the Student Web Service original; identity restored from the true parent named above and the relative base resolved to the production host published on the EWS registry.
paths:
/v5/degreeaudit:
post:
tags:
- DegreeAudit
summary: Create a Degree Audit
description: "<pre>\n {\n \"DisplayTitle\" : \"Degree Audit Create\",\n \"ews_guid\" : \"BE01A04F-C2C3-4589-A499-E6367FE626CB\",\n \"LongDescription\" : \"Create a degree audit that shows a student's progress and plan \n towards obtaining a degree\",\n \"ShortDescription\" : \"Create a degree audit\",\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" }, { \"source\":\"sdb\" }, { \"source\":\"irws\" } ],\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\n - sws:Support\n - sws:DegreeAuditSubmitter\n This resource supports the following authentication types:\n - X.509 Certificate\n - NetID \",\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.degree\", \n \"https://wiki.cac.washington.edu/display/SWS/How+to+use+Degree+Audit+Resources\" ],\n \"Synonyms\" : []\n }\n </pre>"
operationId: DegreeAuditCreate
responses:
'202':
description: Accepted
'400':
description: http body must not be null | http body length must be greater than zero | unable to parse request to create degree audit
'301':
description: MovedPermanently
'302':
description: Found
'304':
description: NotModified
'401':
description: Identity '{identity}' is not authorized to access this resource.
'405':
description: MethodNotAllowed
'500':
description: InternalServerError
'503':
description: ServiceUnavailable
get:
tags:
- DegreeAudit
summary: Search for Degree Audit for a specific person
description: "<pre>\n {\n \"DisplayTitle\" : \"Degree Audit Search\",\n \"ews_guid\" : \"7B4C6A0F-DA28-4E2E-96BF-F0C619C32462\",\n \"LongDescription\" : \"Search for degree audits for a specific person that shows a student's progress and plan \n towards obtaining degrees\",\n \"ShortDescription\" : \"Search for degree audits for a specific person\",\n \"OriginatingSchema\" : [ { \"source\":\"sdb\" }, { \"source\":\"irws\" } ],\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\n - sws:Support\n - sws:DegreeAuditSubmitter\n This resource supports the following authentication types:\n - X.509 Certificate\n - NetID \",\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.degree\", \n \"https://wiki.cac.washington.edu/display/SWS/How+to+use+Degree+Audit+Resources\" ],\n \"Synonyms\" : []\n }\n </pre>"
operationId: DegreeAuditSearch
parameters:
- name: reg_id
in: query
description: RegIDs are the authoritative unique IDs guaranteed to identify a UW person permanently. RegIDs are assigned to a person by the Identity Registration Service, the authoritative source for person data reconciled from several data sources which may represent multiple records and accounts for a single person. A given RegID will always refer to the same person, regardless of name, status or affiliation changes.
schema:
type: string
default: ''
responses:
'400':
description: 'Invalid arg: regid ID | invalid system key'
'404':
description: No degree audits found.
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/DegreeAuditSearchViewModel'
application/xml:
schema:
$ref: '#/components/schemas/DegreeAuditSearchViewModel'
text/xml:
schema:
$ref: '#/components/schemas/DegreeAuditSearchViewModel'
text/plain:
schema:
$ref: '#/components/schemas/DegreeAuditSearchViewModel'
application/json:
schema:
$ref: '#/components/schemas/DegreeAuditSearchViewModel'
text/json:
schema:
$ref: '#/components/schemas/DegreeAuditSearchViewModel'
'202':
description: Accepted
'301':
description: MovedPermanently
'302':
description: Found
'304':
description: NotModified
'401':
description: Identity '{identity}' is not authorized to access this resource.
'405':
description: MethodNotAllowed
'500':
description: InternalServerError
'503':
description: ServiceUnavailable
/v5/degreeaudit/{campus},{majorabbreviation},{pathway},{degreelevel},{degreetype},{regid}:
get:
tags:
- DegreeAudit
summary: Get a specific Degree Audit
description: "<pre>\n {\n \"DisplayTitle\" : \"Degree Audit\",\n \"ews_guid\" : \"38D7E02F-66EA-42E8-990B-AAB6F53FA10C\",\n \"LongDescription\" : \"Retrieve a specific degree audit that shows a student's progress and plan \n towards obtaining a degree\",\n \"ShortDescription\" : \"Retrieve a degree audit\",\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" }, { \"source\":\"sdb\" }, { \"source\":\"irws\" } ],\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\n - sws:Support\n - sws:DegreeAuditSubmitter\n This resource supports the following authentication types:\n - X.509 Certificate\n - NetID\n For information on programs of study to populate the parameters see the degree audit program resource.\",\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.degree\", \n \"https://wiki.cac.washington.edu/display/SWS/How+to+use+Degree+Audit+Resources\" ],\n \"Synonyms\" : []\n }\n </pre>"
operationId: GetDegreeAudit
parameters:
- name: campus
in: path
description: ''
required: true
schema:
type: string
- name: majorAbbreviation
in: path
description: ''
required: true
schema:
type: string
- name: pathway
in: path
description: ''
required: true
schema:
type: string
- name: degreeLevel
in: path
description: ''
required: true
schema:
type: string
- name: degreeType
in: path
description: ''
required: true
schema:
type: string
- name: regid
in: path
description: RegIDs are the authoritative unique IDs guaranteed to identify a UW person permanently. RegIDs are assigned to a person by the Identity Registration Service, the authoritative source for person data reconciled from several data sources which may represent multiple records and accounts for a single person. A given RegID will always refer to the same person, regardless of name, status or affiliation changes.
required: true
schema:
maxLength: 32
minLength: 32
type: string
responses:
'400':
description: 'Invalid arg: campus | Invalid arg: majorAbbreviation | Invalid arg: pathway | Invalid arg: degreeLevel | Invalid arg: degreeType | Invalid arg: regid ID'
'404':
description: No degree audit found. | CTC Student audits are not available via SWS DegreeAudit resource. | A pending degree audit was found. Try again later. | Term not found
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/DegreeAuditViewModel'
application/xml:
schema:
$ref: '#/components/schemas/DegreeAuditViewModel'
text/xml:
schema:
$ref: '#/components/schemas/DegreeAuditViewModel'
text/plain:
schema:
$ref: '#/components/schemas/DegreeAuditViewModel'
application/json:
schema:
$ref: '#/components/schemas/DegreeAuditViewModel'
text/json:
schema:
$ref: '#/components/schemas/DegreeAuditViewModel'
'202':
description: Accepted
'301':
description: MovedPermanently
'302':
description: Found
'304':
description: NotModified
'401':
description: Identity '{identity}' is not authorized to access this resource.
'405':
description: MethodNotAllowed
'500':
description: InternalServerError
'503':
description: ServiceUnavailable
components:
schemas:
PersonResourceUri:
type: object
properties:
Name:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"IRWS.identity.uwPersonPrefferredName\" },\n { \"source\":\"IRWS.identity.uwPersonRegisteredName\" }\n ],\n \"TechnicalDescription\": \"This field is resource specific\"\n }\n </pre>"
RegID:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"IRWS.identity.regid\" }\n ],\n \"TechnicalDescription\": \"UW Registration ID. This field is resource specific\"\n }\n </pre>"
Pronouns:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"IRWS.identity.uwPersonPronoun\" }\n ],\n \"TechnicalDescription\": \"\"\n }\n </pre>"
Href:
type:
- string
- 'null'
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Person Resource URI\",\n \"TargetSchema\" : [{\"target\" : \"SWS.Person\"}],\n \"TargetOperationId\" : [\"GetPerson\"]\n}"
DegreeAuditResourceUri:
type: object
properties:
Campus:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/brcd\" }\n ],\n \"TechnicalDescription\": \"Campus\"\n }\n </pre>"
DegreeLevel:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/dlvl\" }\n ],\n \"TechnicalDescription\": \"Degree Level\"\n }\n </pre>"
DegreeType:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/dtyp\" }\n ],\n \"TechnicalDescription\": \"Degree Type\"\n }\n </pre>"
Href:
type:
- string
- 'null'
MajorAbbreviation:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/mabb\" }\n ],\n \"TechnicalDescription\": \"Major Abbreviation\"\n }\n </pre>"
Pathway:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/pth\" }\n ],\n \"TechnicalDescription\": \"Pathway\"\n }\n </pre>"
RegID:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/sysk\" }\n ],\n \"TechnicalDescription\": \"UW Registration ID\"\n }\n </pre>"
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Degree Audit Resource URI\",\n \"TargetSchema\" : [{\"target\" : \"SWS.DegreeAudit\"}],\n \"TargetOperationId\" : [\"DegreeAuditSearch\"]\n}"
DegreeAuditLine:
type: object
properties:
Line:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.darptlines/ln\" }\n ],\n \"TechnicalDescription\": \"Degree audit report line\"\n }\n </pre>"
Type:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.darptlines/typ\" },\n ],\n \"TechnicalDescription\": \"Type\"\n }\n </pre>"
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Degree Audit Line\"\n}"
DegreeAuditSearchResultViewModel:
type: object
properties:
DegreeAuditURI:
$ref: '#/components/schemas/DegreeAuditResourceUri'
StudentName:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"IRWS.identity.displayName\" }\n ],\n \"TechnicalDescription\": \"Student name\"\n }\n </pre>"
StudentSystemKey:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"IRWS.identity.uwStudentSystemKey\" }\n ],\n \"TechnicalDescription\": \"Student system key\"\n }\n </pre>"
DatePrepared:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.darpt/rptln\" }\n ],\n \"TechnicalDescription\": \"Listed in PREPARED header tag\"\n }\n </pre>"
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Degree Audit Search Result Model\",\n \"TargetSchema\" : [{\"target\" : \"SWS.DegreeAudit\"}]\n}"
DegreeAuditSearchResourceUri:
type: object
properties:
Href:
type:
- string
- 'null'
RegID:
type:
- string
- 'null'
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Degree Audit Search Resource URI\",\n \"TargetSchema\" : [{\"target\" : \"SWS.DegreeAudit\"}],\n \"TargetOperationId\" : [\"DegreeAuditSearch\"]\n}"
EntryDateViewModel:
type: object
properties:
Year:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI370.csr/rsp/exe.exdt\" }\n ],\n \"TechnicalDescription\": \"Year\"\n }\n </pre>"
Quarter:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI370.csr/rsp/exe.exdt\" }\n ],\n \"TechnicalDescription\": \"Quarter\"\n }\n </pre>"
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Entry Date Model\"\n}"
DegreeAuditSearchViewModel:
type: object
properties:
TotalCount:
type: integer
format: int32
DegreeAudits:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DegreeAuditSearchResultViewModel'
readOnly: true
Current:
$ref: '#/components/schemas/DegreeAuditSearchResourceUri'
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Degree Audit Search Model\",\n \"TargetSchema\" : [{\"target\" : \"SWS.DegreeAudit\"}]\n}"
DegreeAuditViewModel:
type: object
properties:
Campus:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/brcd\" }\n ],\n \"TechnicalDescription\": \"Campus\"\n }\n </pre>"
DatePrepared:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/brcd\" }\n ],\n \"TechnicalDescription\": \"Date prepared\"\n }\n </pre>"
DegreeAuditReport:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DegreeAuditLine'
DegreeLevel:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/dlvl\" }\n ],\n \"TechnicalDescription\": \"Degree Level\"\n }\n </pre>"
DegreeType:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/dtyp\" }\n ],\n \"TechnicalDescription\": \"Degree Type\"\n }\n </pre>"
GraduationDate:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.darptlines/typ\" },\n { \"source\":\"SDB.SWI394.darptlines/ln\" }\n ],\n \"TechnicalDescription\": \"Graduation date is pulled from degree audit report header on line marked GRADUATION DATE\"\n }\n </pre>"
MajorAbbreviation:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/mabb\" }\n ],\n \"TechnicalDescription\": \"Major Abbreviation\"\n }\n </pre>"
Pathway:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/pth\" }\n ],\n \"TechnicalDescription\": \"Pathway\"\n }\n </pre>"
Person:
$ref: '#/components/schemas/PersonResourceUri'
ProgramEntry:
$ref: '#/components/schemas/EntryDateViewModel'
ProgramTitle:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.darptlines/typ\" },\n { \"source\":\"SDB.SWI394.darptlines/ln\" }\n ],\n \"TechnicalDescription\": \"Program title is pulled from degree audit report header on line marked PROGRAM\"\n }\n </pre>"
RegID:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI394.dgp/sysk\" }\n ],\n \"TechnicalDescription\": \"UW Registration ID\"\n }\n </pre>"
UWEntry:
$ref: '#/components/schemas/EntryDateViewModel'
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Degree Audit Model\",\n \"TargetSchema\" : [{\"target\" : \"SWS.DegreeAudit\"}]\n}"