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) Term 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: Term
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/term/current:
get:
tags:
- Term
summary: Get the current term
description: "<pre>\n {\n \"DisplayTitle\" : \"Term (Current)\",\n \"ews_guid\" : \"AC24C6B9-5259-4DB6-A9E8-AA05013DA0A9\",\n \"LongDescription\" : \"Get the current term. It is often a starting point to accessing other term based resources.\",\n \"ShortDescription\" : \"Get the current term \",\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" } ],\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\n - sws:Support\n - sws:GradeSubmitter\n - sws:UnitReader\n - sws:AdmReader\n This resource supports the following authentication types:\n - X.509 Certificate\n - NetID\n - AccessToken\n The term resource describes important dates and times for the academic term.\",\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/36884191-96e2-43ea-b6bc-c0dfa138bf9e\" ],\n \"Synonyms\" : []\n }\n </pre>"
operationId: GetTermCurrent
responses:
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/TermViewModel'
application/xml:
schema:
$ref: '#/components/schemas/TermViewModel'
text/xml:
schema:
$ref: '#/components/schemas/TermViewModel'
text/plain:
schema:
$ref: '#/components/schemas/TermViewModel'
application/json:
schema:
$ref: '#/components/schemas/TermViewModel'
text/json:
schema:
$ref: '#/components/schemas/TermViewModel'
'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/term/next:
get:
tags:
- Term
summary: Get the next term
description: "<pre>\n {\n \"DisplayTitle\" : \"Term (Next)\",\n \"ews_guid\" : \"9C4B72E7-96D7-450E-9D2F-B6235F6C4A52\",\n \"LongDescription\" : \"Get the next term \",\n \"ShortDescription\" : \"Get the next term \",\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" } ],\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\n - sws:Support\n - sws:GradeSubmitter\n - sws:UnitReader\n - sws:AdmReader\n This resource supports the following authentication types:\n - X.509 Certificate\n - NetID\n - AccessToken\n The term resource describes important dates and times for the academic term.\",\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/36884191-96e2-43ea-b6bc-c0dfa138bf9e\" ],\n \"Synonyms\" : []\n }\n </pre>"
operationId: GetTermNext
responses:
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/TermViewModel'
application/xml:
schema:
$ref: '#/components/schemas/TermViewModel'
text/xml:
schema:
$ref: '#/components/schemas/TermViewModel'
text/plain:
schema:
$ref: '#/components/schemas/TermViewModel'
application/json:
schema:
$ref: '#/components/schemas/TermViewModel'
text/json:
schema:
$ref: '#/components/schemas/TermViewModel'
'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/term/previous:
get:
tags:
- Term
summary: Get the previous term
description: "<pre>\n {\n \"DisplayTitle\" : \"Term (Previous)\",\n \"ews_guid\" : \"9B182AB0-922F-4868-AAA2-99867635201F\",\n \"LongDescription\" : \"Get the previous term \",\n \"ShortDescription\" : \"Get the previous term \",\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" } ],\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\n - sws:Support\n - sws:GradeSubmitter\n - sws:UnitReader\n - sws:AdmReader\n This resource supports the following authentication types:\n - X.509 Certificate\n - NetID\n - AccessToken\n The term resource describes important dates and times for the academic term.\",\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/36884191-96e2-43ea-b6bc-c0dfa138bf9e\" ],\n \"Synonyms\" : []\n }\n </pre>"
operationId: GetTermPrevious
responses:
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/TermViewModel'
application/xml:
schema:
$ref: '#/components/schemas/TermViewModel'
text/xml:
schema:
$ref: '#/components/schemas/TermViewModel'
text/plain:
schema:
$ref: '#/components/schemas/TermViewModel'
application/json:
schema:
$ref: '#/components/schemas/TermViewModel'
text/json:
schema:
$ref: '#/components/schemas/TermViewModel'
'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/term/{year},{quarter}:
get:
tags:
- Term
summary: Get the specific term that matches the supplied parameters
description: "<pre>\n {\n \"DisplayTitle\" : \"Term\",\n \"ews_guid\" : \"4457E842-C465-47AA-9E35-B2858FAADCBC\",\n \"LongDescription\" : \"Get a specific term matching the supplied parameters\",\n \"ShortDescription\" : \"Get a specific term\",\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" } ],\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\n - sws:Support\n - sws:GradeSubmitter\n - sws:UnitReader\n - sws:AdmReader\n This resource supports the following authentication types:\n - X.509 Certificate\n - NetID\n - AccessToken\n The term resource describes important dates and times for the academic term.\",\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/36884191-96e2-43ea-b6bc-c0dfa138bf9e\" ],\n \"Synonyms\" : []\n }\n </pre>"
operationId: GetTerm
parameters:
- name: year
in: path
description: 'The 4 digit year. For example: 2025'
required: true
schema:
maxLength: 4
minLength: 4
type: string
- name: quarter
in: path
description: 'The 1 digit quarter. For example: 0=Default, 1=winter, 2=spring, 3=summer, 4=autumn'
required: true
schema:
maxLength: 6
minLength: 6
type: string
responses:
'400':
description: 'Invalid arg: year | Invalid arg: quarter'
'404':
description: Term not found.
'500':
description: Term is null or empty. | InternalServerError
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/TermViewModel'
application/xml:
schema:
$ref: '#/components/schemas/TermViewModel'
text/xml:
schema:
$ref: '#/components/schemas/TermViewModel'
text/plain:
schema:
$ref: '#/components/schemas/TermViewModel'
application/json:
schema:
$ref: '#/components/schemas/TermViewModel'
text/json:
schema:
$ref: '#/components/schemas/TermViewModel'
'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
'503':
description: ServiceUnavailable
components:
schemas:
TermViewModel:
type: object
properties:
AcademicCatalog:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.catdt\" }\n ],\n \"TechnicalDescription\": \"Academic Catalog\"\n }\n </pre>"
ATermLastDay:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.ldya\" }\n ],\n \"TechnicalDescription\": \"A term last day\"\n }\n </pre>"
BTermFirstDay:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.fdyb\" }\n ],\n \"TechnicalDescription\": \"B term first day\"\n }\n </pre>"
CensusDay:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.cnsdy\" }\n ],\n \"TechnicalDescription\": \"Census day\"\n }\n </pre>"
FifthDay:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.fidy\" }\n ],\n \"TechnicalDescription\": \"Fifth day\"\n }\n </pre>"
FinancialAidYear:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.fayr\" }\n ],\n \"TechnicalDescription\": \"Financial Aid Year\"\n }\n </pre>"
GradeSubmissionDeadline:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.grdln\" }\n ],\n \"TechnicalDescription\": \"Grade submission deadline\"\n }\n </pre>"
GradingPeriodClose:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.grc\" }\n ],\n \"TechnicalDescription\": \"Grading period close\"\n }\n </pre>"
GradingPeriodOpen:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.gro\" }\n ],\n \"TechnicalDescription\": \"Grading period open\"\n }\n </pre>"
GradingPeriodOpenATerm:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.groa\" }\n ],\n \"TechnicalDescription\": \"Grading period open A-term\"\n }\n </pre>"
FirstDay:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.fdy\" }\n ],\n \"TechnicalDescription\": \"First day\"\n }\n </pre>"
FirstDayMedSchool:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.fdym\" }\n ],\n \"TechnicalDescription\": \"First day med school\"\n }\n </pre>"
TimeScheduleConstruction:
$ref: '#/components/schemas/TimeScheduleConstructionViewModel'
TimeSchedulePublished:
$ref: '#/components/schemas/TimeSchedulePublishedViewModel'
LastAddDay:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.lady\" }\n ],\n \"TechnicalDescription\": \"Last add day\"\n }\n </pre>"
LastAddDayATerm:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.ladya\" }\n ],\n \"TechnicalDescription\": \"Last add day A-term\"\n }\n </pre>"
LastAddDayBTerm:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.ladyb\" }\n ],\n \"TechnicalDescription\": \"Last add day B-term\"\n }\n </pre>"
LastDayOfClasses:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.ldy\" }\n ],\n \"TechnicalDescription\": \"Last day of classes\"\n }\n </pre>"
LastDropDay:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.lddy\" }\n ],\n \"TechnicalDescription\": \"Last drop day\"\n }\n </pre>"
LastDropDayATerm:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.lddya\" }\n ],\n \"TechnicalDescription\": \"Last drop day A-term\"\n }\n </pre>"
LastDropDayBTerm:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.lddyb\" }\n ],\n \"TechnicalDescription\": \"Last drop day B-term\"\n }\n </pre>"
LastDropDayNotRecorded:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.lddyn\" }\n ],\n \"TechnicalDescription\": \"Last drop day not recorded\"\n }\n </pre>"
LastDropDayNotRecordedATerm:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.lddyna\" }\n ],\n \"TechnicalDescription\": \"Last drop day not recorded A-term\"\n }\n </pre>"
LastDropDayNotRecordedBTerm:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.lddynb\" }\n ],\n \"TechnicalDescription\": \"Last drop day not recorded B-term\"\n }\n </pre>"
LastFinalExamDay:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.ldyex\" }\n ],\n \"TechnicalDescription\": \"Last final exam day\"\n }\n </pre>"
NextTerm:
$ref: '#/components/schemas/TermResourceUri'
PreviousTerm:
$ref: '#/components/schemas/TermResourceUri'
Quarter:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.qtr\" }\n ],\n \"TechnicalDescription\": \"Quarter consists of winter, spring, summer, and autumn.\"\n }\n </pre>"
RepositoryTimeStamp:
type:
- string
- 'null'
Metadata:
type:
- string
- 'null'
RegistrationPeriods:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/RegistrationPeriodViewModel'
RegistrationServicesStart:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.rsdt\" }\n ],\n \"TechnicalDescription\": \"Registration services start\"\n }\n </pre>"
StudentAccountStart:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.sast\" }\n ],\n \"TechnicalDescription\": \"Student accounts start\"\n }\n </pre>"
Year:
type: integer
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.yr\" }\n ],\n \"TechnicalDescription\": \"Year\"\n }\n </pre>"
format: int32
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Term Model\",\n \"TargetSchema\" : [{\"target\" : \"SWS.Term\"}]\n}"
TermResourceUri:
type: object
properties:
Href:
type:
- string
- 'null'
Year:
type: integer
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SWSSDB.sr_major_code.major_last_yr\" },\n { \"source\":\"SWSSDB.sr_major_code.major_first_yr\" },\n { \"source\":\"SWSSDB.sys_tbl_39_calendar.table_key\" },\n { \"source\":\"SWSSDB.student_1.last_yr_enrolled\" },\n { \"source\":\"SDB.SWI610.trm/yr\" },\n { \"source\":\"SWSSDB.sr_course_titles.first_eff_yr\" },\n { \"source\":\"UWEO.selSWSRegistrations.FirstEffectiveTerm/Year\"}\n ],\n \"TechnicalDescription\": \"Year for the given term\"\n }\n </pre>"
format: int32
Quarter:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SWSSDB.sr_major_code.major_last_qtr\" },\n { \"source\":\"SWSSDB.sr_major_code.major_first_qtr\" },\n { \"source\":\"SWSSDB.sys_tbl_39_calendar.table_key\" },\n { \"source\":\"SWSSDB.student_1.last_qtr_enrolled\" },\n { \"source\":\"SDB.SWI610.trm/qtr\" },\n { \"source\":\"SWSSDB.sr_course_titles.first_eff_qtr\" },\n { \"source\":\"UWEO.selSWSRegistrations.FirstEffectiveTerm/Quarter\"}\n ],\n \"TechnicalDescription\": \"Quarter for the given term\"\n }\n </pre>"
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Term Resource URI\",\n \"TargetSchema\" : [{\"target\" : \"SWS.Term\"}],\n \"TargetOperationId\" : [\"GetTerm\"]\n}"
TimeSchedulePublishedViewModel:
type: object
properties:
Bothell:
type: boolean
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SWSSDB.sys_tbl_39_calendar.cal_web_ts_bot\" }\n ],\n \"TechnicalDescription\": \"Time schedule published for the Bothell campus\"\n }\n </pre>"
Seattle:
type: boolean
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SWSSDB.sys_tbl_39_calendar.cal_web_ts_sea\" }\n ],\n \"TechnicalDescription\": \"Time schedule published for the Seattle campus\"\n }\n </pre>"
Tacoma:
type: boolean
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SWSSDB.sys_tbl_39_calendar.cal_web_ts_tac\" }\n ],\n \"TechnicalDescription\": \"Time schedule published for the Tacoma campus\"\n }\n </pre>"
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Time Schedule Published Model\"\n}"
TimeScheduleConstructionViewModel:
type: object
properties:
Bothell:
type: boolean
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SWSSDB.sys_tbl_39_calendar.cal_ts_cnst_off_b\" }\n ],\n \"TechnicalDescription\": \"Time schedule construction on for the Bothell campus\"\n }\n </pre>"
Seattle:
type: boolean
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SWSSDB.sys_tbl_39_calendar.cal_ts_cnst_off_s\" }\n ],\n \"TechnicalDescription\": \"Time schedule construction on for the Seattle campus\"\n }\n </pre>"
Tacoma:
type: boolean
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SWSSDB.sys_tbl_39_calendar.cal_ts_cnst_off_t\" }\n ],\n \"TechnicalDescription\": \"Time schedule construction on for the Tacoma campus\"\n }\n </pre>"
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Time Schedule Construction Model\"\n}"
RegistrationPeriodViewModel:
type: object
properties:
StartDate:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.sdt\" }\n ],\n \"TechnicalDescription\": \"Registration period start\"\n }\n </pre>"
EndDate:
type:
- string
- 'null'
description: "<pre>\n {\n \"OriginatingSchema\" : [\n { \"source\":\"SDB.SWI701.term.edt\" }\n ],\n \"TechnicalDescription\": \"Registration period end\"\n }\n </pre>"
additionalProperties: false
description: "{\n \"DisplayTitle\" : \"Registration Period Model\",\n \"TargetSchema\" : [{\"target\" : \"SWS.Registration\"}]\n}"