University of Washington Section API
The Section API from University of Washington — 5 operation(s) for section.
The Section API from University of Washington — 5 operation(s) for section.
openapi: 3.0.1
info:
title: IdCard Web Service (IdCardWS) Campus Section API
description: IdCard Web Service (IdCardWS) provides a RESTful API to UW IdCard data. Subscribe to http://mailman.u.washington.edu/mailman/listinfo/idcardws-users 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: idcardws-support@uw.edu
version: v1
servers:
- url: /idcard
tags:
- name: Section
paths:
/v5/course/{year},{quarter},{curriculum_abbreviation},{course_number}/{section_id}:
get:
tags:
- Section
summary: Get a course section offered in the year/quarter
description: "<pre>\r\n { \r\n \"DisplayTitle\" : \"Section\",\r\n \"ews_guid\" : \"17D4611C-D94A-478C-95CD-EAB4B7E37FAE\",\r\n \"LongDescription\" : \"A resource to retrieve a specific course section of a course offered in the year/quarter \r\n for the specified curriculum\",\r\n \"ShortDescription\" : \"Get a specific course section\",\r\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" }, { \"source\":\"uweo\" }, { \"source\":\"irws\" } ],\r\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\r\n - sws:Support\r\n - sws:GradeSubmitter\r\n - sws:UnitReader\r\n This resource supports the following authentication types:\r\n - X.509 Certificate\r\n - NetID\r\n - AccessToken \",\r\n \"Links\" : [\"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.coursesection\"],\r\n \"Synonyms\" : []\r\n }\r\n </pre>"
operationId: GetSection
parameters:
- name: year
in: path
description: 'The 4 digit year. For example: 2025'
required: true
schema:
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:
type: string
- name: curriculum_abbreviation
in: path
description: ''
required: true
schema:
type: string
- name: course_number
in: path
description: ''
required: true
schema:
type: string
- name: section_id
in: path
description: ''
required: true
schema:
maxLength: 2
minLength: 1
type: string
responses:
'400':
description: 'Invalid arg: year | Invalid arg: quarter | Invalid arg: curriculum abbreviation | Invalid arg: course number | Invalid arg: section ID'
'404':
description: No section found.
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/SectionViewModel'
application/xml:
schema:
$ref: '#/components/schemas/SectionViewModel'
text/xml:
schema:
$ref: '#/components/schemas/SectionViewModel'
text/plain:
schema:
$ref: '#/components/schemas/SectionViewModel'
application/json:
schema:
$ref: '#/components/schemas/SectionViewModel'
text/json:
schema:
$ref: '#/components/schemas/SectionViewModel'
'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/section:
get:
tags:
- Section
summary: Search for course sections that match the supplied parameters
description: "<pre>\r\n { \r\n \"DisplayTitle\" : \"Section Search\",\r\n \"ews_guid\" : \"A5877849-AE6E-409C-BDCE-EA4AAFADD0AC\",\r\n \"LongDescription\" : \"Search for course sections that match the supplied parameters\",\r\n \"ShortDescription\" : \"Get a list of course sections\",\r\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" }, { \"source\":\"uweo\" }, { \"source\":\"irws\" } ],\r\n \"Notes\" : \" This resource requires any of the following ASTRA roles:\r\n - sws:Support\r\n - sws:GradeSubmitter\r\n - sws:UnitReader\r\n This resource supports the following authentication types:\r\n - X.509 Certificate\r\n - NetID\r\n - AccessToken\r\n For the Section_Search resource, the query string parameters can be configured in different ways, \r\n depending on the desired results.\r\n To return a full listing of all the courses and sections in the curriculum, enter the year, quarter, \r\n and curriculum abbreviation parameters.\r\n To return list of sections for a specified course, enter the year, quarter, curriculum abbreviation, \r\n and the course number parameters.\r\n To return a list of all the sections that an instructor is teaching across multiple curricula, \r\n enter the year, quarter and (instructor) regID parameters.\r\n To return a list of all the sections that an instructor is teaching in the specified curriculum, \r\n enter the year, quarter, curriculum abbreviation and (instructor) regID parameters.\r\n To return a list of all the sections that a course has been offered at UW, enter the starting year \r\n in the year field, leave quarter empty, specify the curriculum abbreviation and course number parameters.\r\n To return a list of all the sections that a course has been offered at UW but filter them for a specific \r\n set of Delete Flag values, enter the starting year in the year field, leave quarter empty, specify \r\n the curriculum abbreviation, course number and desired delete flag values.\r\n To return a list of all the sections that a course has but exclude courses that do not have sections, \r\n use the exclude_courses_without_sections flag. To use this mode, you may not also search for future terms \r\n at the same time.\",\r\n \"Links\" : [\"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.coursesection\"],\r\n \"Synonyms\" : []\r\n }\r\n </pre>"
operationId: SectionSearch
parameters:
- name: year
in: query
description: 'The 4 digit year. For example: 2025'
schema:
type: string
default: ''
- name: quarter
in: query
description: 'The 1 digit quarter. For example: 0=Default, 1=winter, 2=spring, 3=summer, 4=autumn'
schema:
type: string
default: ''
- name: future_terms
in: query
description: Choose from 0 - 400
schema:
type: integer
format: int32
default: 0
- name: curriculum_abbreviation
in: query
description: ''
schema:
type: string
default: ''
- name: course_number
in: query
description: ''
schema:
type: string
default: ''
- 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: ''
- name: search_by
in: query
description: Choose instructor or gradesubmissiondelegate
schema:
type: string
default: ''
- name: include_secondaries
in: query
description: Choose on or true or false.
schema:
type: string
default: ''
- name: delete_flag
in: query
description: Any combination of active, suspended or withdrawn separated by ,.
schema:
type: string
default: ''
- name: changed_since_date
in: query
description: If you have a value in ChangedSinceDate all other input fields will be ignored and will return all data that has changed since the date entered. This is used for applications that only need the changes since they last checked without having to know specific details to search by.
schema:
type: string
default: ''
- name: transcriptable_course
in: query
description: "Choose yes, no, or all. If yes then results will include any course that can be creditable such that it can be shown on a transcript. This would include certain classes that also fall under the Educational Outreach (EO). Yes is also the default value chosen for this search criteria if none is specified.\r\n If no then only classes from EO will be returned.\r\n If all, both transcriptable and non-transcriptable courses will be returned.\r\n All will return every course regardless of whether it can be included in a transcript or not."
schema:
type: string
default: 'yes'
- name: page_size
in: query
description: ''
schema:
type: string
default: ''
- name: page_start
in: query
description: ''
schema:
type: string
default: ''
- name: facility_code
in: query
description: ''
schema:
type: string
default: ''
- name: room_number
in: query
description: ''
schema:
type: string
default: ''
- name: sln
in: query
description: ''
schema:
type: string
default: ''
responses:
'400':
description: 'Invalid Search for changed since date value | Invalid year | Invalid quarter | Invalid number of future terms | Invalid reg id | Invalid search by | Invalid curriculum | Invalid course number | Invalid include secondaries | Invalid delete_flag: should be any comma-separated combination of ''active'', ''suspended'', or ''withdrawn'' | Year and quarter is required when searching by SLN | Invalid input: no secondary sections when filtering by delete_flag | year required | Invalid input: either instructor, curriculum, facility code or sln required | Invalid input: no secondary sections when filtering by delete_flag | Year and quarter is required when searching by facility code | Page start must be an integer greater than 0. | Page size must be an integer between 1 and 500, inclusive.'
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/SectionSearchViewModel'
application/xml:
schema:
$ref: '#/components/schemas/SectionSearchViewModel'
text/xml:
schema:
$ref: '#/components/schemas/SectionSearchViewModel'
text/plain:
schema:
$ref: '#/components/schemas/SectionSearchViewModel'
application/json:
schema:
$ref: '#/components/schemas/SectionSearchViewModel'
text/json:
schema:
$ref: '#/components/schemas/SectionSearchViewModel'
'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/section/{year},{quarter}:
get:
tags:
- Section
summary: Get course sections offered in the year/quarter
description: "<pre>\r\n { \r\n \"DisplayTitle\" : \"Section Search by Term\",\r\n \"ews_guid\" : \"EC0A49F3-5969-4020-81CA-924BCA67E7AB\",\r\n \"LongDescription\" : \"A resource to retrieve a list of course sections offered in the year/quarter.\",\r\n \"ShortDescription\" : \"Search for all course sections by term\",\r\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" } ],\r\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\r\n - sws:Support\r\n - sws:GradeSubmitter\r\n - sws:UnitReader\r\n This resource supports the following authentication types:\r\n - X.509 Certificate\r\n - NetID\r\n - AccessToken \",\r\n \"Links\" : [\"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.coursesection\"],\r\n \"Synonyms\" : []\r\n }\r\n </pre>"
operationId: SectionTermSearch
parameters:
- name: year
in: path
description: 'The 4 digit year. For example: 2025'
required: true
schema:
maxLength: 4
minLength: 4
type: string
default: ''
- 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
default: ''
- name: page_size
in: query
description: ''
schema:
type: string
default: '1000'
- name: page_start
in: query
description: ''
schema:
type: string
default: ''
responses:
'400':
description: Section Term search does not support paging of less then 500 sections per request.
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/SectionTermSearchViewModel'
application/xml:
schema:
$ref: '#/components/schemas/SectionTermSearchViewModel'
text/xml:
schema:
$ref: '#/components/schemas/SectionTermSearchViewModel'
text/plain:
schema:
$ref: '#/components/schemas/SectionTermSearchViewModel'
application/json:
schema:
$ref: '#/components/schemas/SectionTermSearchViewModel'
text/json:
schema:
$ref: '#/components/schemas/SectionTermSearchViewModel'
'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/course/{year},{quarter},{curriculum_abbreviation},{course_number}/{section_id}/status:
get:
tags:
- Section
summary: Get the status of a course section
description: "<pre>\r\n {\r\n \"DisplayTitle\" : \"Section Status\",\r\n \"ews_guid\" : \"0FE09C52-834E-4F65-A35D-23D7D890C727\",\r\n \"LongDescription\" : \"Get the status of a course section including how many spots are open and whether \r\n students can register for the section.\",\r\n \"ShortDescription\" : \"Get the status of a course section\",\r\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" }, { \"source\":\"uweo\" }, { \"source\":\"irws\" } ],\r\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\r\n - sws:Support\r\n - sws:GradeSubmitter\r\n - sws:SectionStatusReader\r\n This resource supports the following authentication types:\r\n - X.509 Certificate\r\n - NetID \",\r\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.coursesection\" ],\r\n \"Synonyms\" : []\r\n }\r\n </pre>"
operationId: GetSectionStatus
parameters:
- name: year
in: path
description: 'The 4 digit year. For example: 2025'
required: true
schema:
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:
type: string
- name: curriculum_abbreviation
in: path
description: ''
required: true
schema:
type: string
- name: course_number
in: path
description: ''
required: true
schema:
type: string
- name: section_id
in: path
description: ''
required: true
schema:
type: string
responses:
'404':
description: No section status found.
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/SectionStatusViewModel'
application/xml:
schema:
$ref: '#/components/schemas/SectionStatusViewModel'
text/xml:
schema:
$ref: '#/components/schemas/SectionStatusViewModel'
text/plain:
schema:
$ref: '#/components/schemas/SectionStatusViewModel'
application/json:
schema:
$ref: '#/components/schemas/SectionStatusViewModel'
text/json:
schema:
$ref: '#/components/schemas/SectionStatusViewModel'
'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/course/{year},{quarter},{curriculum_abbreviation},{course_number}/status:
get:
tags:
- Section
summary: Get the status of a course
description: "<pre>\r\n {\r\n \"DisplayTitle\" : \"Section Status List\",\r\n \"ews_guid\" : \"135BD797-FC81-42C3-954D-EF67D7869B41\",\r\n \"LongDescription\" : \"Get the information about a specific course's section statuses, searching by \r\n the associated course\",\r\n \"ShortDescription\" : \"Get the status of a course's sections\",\r\n \"OriginatingSchema\" : [ { \"source\":\"swssdb\" }, { \"source\":\"uweo\" }, { \"source\":\"irws\" } ],\r\n \"Notes\" : \"This resource requires any of the following ASTRA roles:\r\n - sws:Support\r\n - sws:GradeSubmitter\r\n - sws:SectionStatusReader\r\n This resource supports the following authentication types:\r\n - X.509 Certificate\r\n - NetID \",\r\n \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.coursesection\" ],\r\n \"Synonyms\" : []\r\n }\r\n </pre>"
operationId: GetSectionStatusByCourse
parameters:
- name: year
in: path
description: 'The 4 digit year. For example: 2025'
required: true
schema:
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:
type: string
- name: curriculum_abbreviation
in: path
description: ''
required: true
schema:
type: string
- name: course_number
in: path
description: ''
required: true
schema:
type: string
responses:
'404':
description: No section status found.
'200':
description: OK
content:
text/html:
schema:
$ref: '#/components/schemas/SectionStatusListViewModel'
application/xml:
schema:
$ref: '#/components/schemas/SectionStatusListViewModel'
text/xml:
schema:
$ref: '#/components/schemas/SectionStatusListViewModel'
text/plain:
schema:
$ref: '#/components/schemas/SectionStatusListViewModel'
application/json:
schema:
$ref: '#/components/schemas/SectionStatusListViewModel'
text/json:
schema:
$ref: '#/components/schemas/SectionStatusListViewModel'
'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:
SectionStatusViewModel:
type: object
properties:
CurrentEnrollment:
type: integer
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.current_enroll\" }\r\n ],\r\n \"TechnicalDescription\": \"Current Enrollment\"\r\n }\r\n </pre>"
format: int32
JointCurrentEnrollment:
type: integer
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.joint_curr_enroll\" }\r\n ],\r\n \"TechnicalDescription\": \"Joint Current Enrollment\"\r\n }\r\n </pre>"
format: int32
CurrentRegistrationPeriod:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_sched_access_to_add.index1\" }\r\n ],\r\n \"TechnicalDescription\": \"Current Registration Period\"\r\n }\r\n </pre>"
nullable: true
AddCodeRequired:
type: boolean
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_sched_access_to_add.access_to_add\" }\r\n ],\r\n \"TechnicalDescription\": \"Add Code Required\"\r\n }\r\n </pre>"
FacultyCodeRequired:
type: boolean
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.section_type_code\" }\r\n ],\r\n \"TechnicalDescription\": \"Faculty Code Required\"\r\n }\r\n </pre>"
LimitEstimateEnrollment:
type: integer
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.l_e_enroll\" }\r\n ],\r\n \"TechnicalDescription\": \"Limit Estimate Enrollment\"\r\n }\r\n </pre>"
format: int32
JointLimitEstimateEnrollment:
type: integer
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.joint_limit\" }\r\n ],\r\n \"TechnicalDescription\": \"Joint Limit Estimate Enrollment\"\r\n }\r\n </pre>"
format: int32
LimitEstimateEnrollmentIndicator:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.l_e_indicator\" }\r\n ],\r\n \"TechnicalDescription\": \"Limit Estimate Enrollment Indicator. E=estimate, L=limit\"\r\n }\r\n </pre>"
nullable: true
RoomCapacity:
type: integer
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.room_cap\" }\r\n ],\r\n \"TechnicalDescription\": \"Room Capacity\"\r\n }\r\n </pre>"
format: int32
Section:
$ref: '#/components/schemas/SectionResourceUri'
SLN:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.sln\" }\r\n ],\r\n \"TechnicalDescription\": \"SLN\"\r\n }\r\n </pre>"
nullable: true
SpaceAvailable:
type: integer
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.space_available\" }\r\n ],\r\n \"TechnicalDescription\": \"Space Available\"\r\n }\r\n </pre>"
format: int32
JointSpaceAvailable:
type: integer
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.joint_space_avail\" }\r\n ],\r\n \"TechnicalDescription\": \"Joint Space Available\"\r\n }\r\n </pre>"
format: int32
Status:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.room_cap\" },\r\n { \"source\":\"SWSSDB.time_schedule.joint_curr_enroll\" },\r\n { \"source\":\"SWSSDB.time_schedule.section_type_code\" },\r\n { \"source\":\"SWSSDB.time_sched_access_to_add.access_to_add\" },\r\n { \"source\":\"SWSSDB.time_schedule.joint_space_avail\" }\r\n ],\r\n \"TechnicalDescription\": \"\r\n 1.\tIf the room cap is non-zero and enrollment is in excess of 115% of room cap, section is closed.\r\n 2.\tIf the section is IS, status is ‘faculty code required’.\r\n 3.\tIf section currently has an add code restriction, status is ‘add code required’.\r\n 4.\tIf space available is less than 1, section is closed.\r\n 4.a If the section is part of a joint group we need to determine \r\n 5\tOtherwise, section is open.\"\r\n }\r\n </pre>"
nullable: true
ResponsibleCurriculumAbbreviation:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.resp_curric_abbr\" }\r\n ],\r\n \"TechnicalDescription\": \"Responsible Curriculum Abbreviation\"\r\n }\r\n </pre>"
nullable: true
ResponsibleCourseNumber:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.resp_course_number\" }\r\n ],\r\n \"TechnicalDescription\": \"Responsible Course Number\"\r\n }\r\n </pre>"
nullable: true
ResponsibleSectionID:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"SWSSDB.time_schedule.resp_section_id\" }\r\n ],\r\n \"TechnicalDescription\": \"Responsible Section ID\"\r\n }\r\n </pre>"
nullable: true
additionalProperties: false
description: "{\r\n \"DisplayTitle\" : \"Section Status Model\",\r\n \"TargetSchema\" : [{\"target\" : \"SWS.Section\"}]\r\n}"
SectionSearchResourceUri:
type: object
properties:
Year:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"url\" }\r\n ],\r\n \"TechnicalDescription\": \"User supplied value\"\r\n }\r\n </pre>"
nullable: true
Quarter:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"url\" }\r\n ],\r\n \"TechnicalDescription\": \"User supplied value\"\r\n }\r\n </pre>"
nullable: true
FutureTerms:
type: integer
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"url\" }\r\n ],\r\n \"TechnicalDescription\": \"User supplied value\"\r\n }\r\n </pre>"
format: int32
CurriculumAbbreviation:
type: string
description: "<pre>\r\n {\r\n \"OriginatingSchema\" : [\r\n { \"source\":\"url\" }\r\n ],\r\n
# --- truncated at 32 KB (101 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-washington/refs/heads/main/openapi/university-of-washington-section-api-openapi.yml