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
servers:
- url: /student
tags:
- name: Term
paths:
/v5/term/current:
get:
tags:
- Term
summary: Get the current term
description: '{
"DisplayTitle" : "Term (Current)",
"ews_guid" : "AC24C6B9-5259-4DB6-A9E8-AA05013DA0A9",
"LongDescription" : "Get the current term. It is often a starting point to accessing other term based resources.",
"ShortDescription" : "Get the current term ",
"OriginatingSchema" : [ { "source":"swssdb" } ],
"Notes" : "This resource requires any of the following ASTRA roles:
- sws:Support
- sws:GradeSubmitter
- sws:UnitReader
- sws:AdmReader
This resource supports the following authentication types:
- X.509 Certificate
- NetID
- AccessToken
The term resource describes important dates and times for the academic term.",
"Links" : [ "https://metadata.uw.edu/Catalog/ViewItem/Term/36884191-96e2-43ea-b6bc-c0dfa138bf9e" ],
"Synonyms" : []
}'
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: '{
"DisplayTitle" : "Term (Next)",
"ews_guid" : "9C4B72E7-96D7-450E-9D2F-B6235F6C4A52",
"LongDescription" : "Get the next term ",
"ShortDescription" : "Get the next term ",
"OriginatingSchema" : [ { "source":"swssdb" } ],
"Notes" : "This resource requires any of the following ASTRA roles:
- sws:Support
- sws:GradeSubmitter
- sws:UnitReader
- sws:AdmReader
This resource supports the following authentication types:
- X.509 Certificate
- NetID
- AccessToken
The term resource describes important dates and times for the academic term.",
"Links" : [ "https://metadata.uw.edu/Catalog/ViewItem/Term/36884191-96e2-43ea-b6bc-c0dfa138bf9e" ],
"Synonyms" : []
}'
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: '{
"DisplayTitle" : "Term (Previous)",
"ews_guid" : "9B182AB0-922F-4868-AAA2-99867635201F",
"LongDescription" : "Get the previous term ",
"ShortDescription" : "Get the previous term ",
"OriginatingSchema" : [ { "source":"swssdb" } ],
"Notes" : "This resource requires any of the following ASTRA roles:
- sws:Support
- sws:GradeSubmitter
- sws:UnitReader
- sws:AdmReader
This resource supports the following authentication types:
- X.509 Certificate
- NetID
- AccessToken
The term resource describes important dates and times for the academic term.",
"Links" : [ "https://metadata.uw.edu/Catalog/ViewItem/Term/36884191-96e2-43ea-b6bc-c0dfa138bf9e" ],
"Synonyms" : []
}'
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: '{
"DisplayTitle" : "Term",
"ews_guid" : "4457E842-C465-47AA-9E35-B2858FAADCBC",
"LongDescription" : "Get a specific term matching the supplied parameters",
"ShortDescription" : "Get a specific term",
"OriginatingSchema" : [ { "source":"swssdb" } ],
"Notes" : "This resource requires any of the following ASTRA roles:
- sws:Support
- sws:GradeSubmitter
- sws:UnitReader
- sws:AdmReader
This resource supports the following authentication types:
- X.509 Certificate
- NetID
- AccessToken
The term resource describes important dates and times for the academic term.",
"Links" : [ "https://metadata.uw.edu/Catalog/ViewItem/Term/36884191-96e2-43ea-b6bc-c0dfa138bf9e" ],
"Synonyms" : []
}'
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:
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}"
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}"
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}"
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}"