Student Web Service (SWS) Curriculum API

Student Web Service (SWS) Curriculum API — a resource of the UW-IT Student Web Service, split out per resource by the API Evangelist refine step from the institution-published SWS v5 OpenAPI. Specification public; data gated by UW NetID / X.509 client certificate and named ASTRA roles.

Operations 1

GET /v5/curriculum Search for curriculums that match the supplied parameters #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/university-of-washington-curriculum-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-washington-curriculum-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Student Web Service (SWS) Curriculum 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: Curriculum
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/curriculum:
    get:
      tags:
      - Curriculum
      summary: Search for curriculums that match the supplied parameters
      description: "<pre>\n                {\n                    \"DisplayTitle\" : \"Curriculum Search\",\n                    \"ews_guid\" : \"AC340F89-812E-4FCB-B357-DCCFE65E0059\",\n                    \"LongDescription\" : \"Search for a list of curriculum results that match the supplied parameters\",\n                    \"ShortDescription\" : \"Search for a list of curriculum results\",\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                               This resource supports the following authentication types:\n                                 - X.509 Certificate\n                                 - NetID\n                                 - AccessToken\n                               You do not need to specify all parameters to return a successful search result. This search resource \n                               supports different combinations of search parameters to provide different search results.\n                               For college abbreviations refer to the college resource.  \n                               For department abbreviations refer to the department resource.\",\n                    \"Links\" : [ \"https://metadata.uw.edu/Catalog/ViewItem/Term/studentdata.curriculum\" ],\n                    \"Synonyms\" : []\n                }\n                </pre>"
      operationId: CurriculumSearch
      parameters:
      - name: year
        in: query
        description: 'The 4 digit year.  For example: 2025'
        required: true
        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'
        required: true
        schema:
          type: string
          default: ''
      - name: future_terms
        in: query
        description: Number of future terms to look ahead
        schema:
          type: integer
          format: int32
          default: 0
      - name: department_abbreviation
        in: query
        description: ''
        schema:
          type: string
          default: ''
      - name: college_abbreviation
        in: query
        description: ''
        schema:
          type: string
          default: ''
      - name: view_unpublished
        in: query
        description: ''
        schema:
          type: string
          default: 'false'
      responses:
        '400':
          description: 'Invalid input | Invalid arg: college abbreviation'
        '200':
          description: OK
          content:
            text/html:
              schema:
                $ref: '#/components/schemas/CurriculumSearchViewModel'
            application/xml:
              schema:
                $ref: '#/components/schemas/CurriculumSearchViewModel'
            text/xml:
              schema:
                $ref: '#/components/schemas/CurriculumSearchViewModel'
            text/plain:
              schema:
                $ref: '#/components/schemas/CurriculumSearchViewModel'
            application/json:
              schema:
                $ref: '#/components/schemas/CurriculumSearchViewModel'
            text/json:
              schema:
                $ref: '#/components/schemas/CurriculumSearchViewModel'
        '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:
    CurriculumSearchViewModel:
      type: object
      properties:
        TotalCount:
          type: integer
          format: int32
        Curricula:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CurriculumResourceUri'
          readOnly: true
        PageSize:
          type:
          - string
          - 'null'
        PageStart:
          type:
          - string
          - 'null'
        Current:
          $ref: '#/components/schemas/CurriculumSearchResourceUri'
        Next:
          $ref: '#/components/schemas/CurriculumSearchResourceUri'
        Previous:
          $ref: '#/components/schemas/CurriculumSearchResourceUri'
      additionalProperties: false
      description: "{\n    \"DisplayTitle\" : \"Curriculum Search Model\",\n    \"TargetSchema\" : [{\"target\" : \"SWS.Curriculum\"}]\n}"
    CurriculumResourceUri:
      type: object
      properties:
        Year:
          type: integer
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"SWSSDB.sr_course_titles.first_eff_yr\" },\n                    { \"source\":\"SWSSDB.sr_course_titles.last_eff_yr\" }\n                ],\n                \"TechnicalDescription\": \"Year\"\n            }\n            </pre>"
          format: int32
        Quarter:
          type:
          - string
          - 'null'
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"SWSSDB.sr_course_titles.first_eff_qtr\" },\n                    { \"source\":\"SWSSDB.sr_course_titles.last_eff_qtr\" }\n                ],\n                \"TechnicalDescription\": \"Quarter\"\n            }\n            </pre>"
        CurriculumAbbreviation:
          type:
          - string
          - 'null'
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"SWSSDB.sr_curric_code.curric_abbr\" }\n                ],\n                \"TechnicalDescription\": \"Curriculum abbreviation\"\n            }\n            </pre>"
        CurriculumName:
          type:
          - string
          - 'null'
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"SWSSDB.sr_curric_code.curric_name\" }\n                ],\n                \"TechnicalDescription\": \"Curriculum name\"\n            }\n            </pre>"
        CurriculumFullName:
          type:
          - string
          - 'null'
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"SWSSDB.sr_curric_code.curric_full_nm\" }\n                ],\n                \"TechnicalDescription\": \"Curriculum full name\"\n            }\n            </pre>"
        Href:
          type:
          - string
          - 'null'
      additionalProperties: false
      description: "{\n    \"DisplayTitle\" : \"Expanded Curriculum Resource URI\",\n    \"TargetSchema\" : [{\"target\" : \"SWS.Curriculum\"}],\n    \"TargetOperationId\" : [\"CurriculumSearch\"]\n}"
    CurriculumSearchResourceUri:
      type: object
      properties:
        Year:
          type: integer
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"url\" }\n                ],\n                \"TechnicalDescription\": \"User supplied value\"\n            }\n            </pre>"
          format: int32
        Quarter:
          type:
          - string
          - 'null'
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"url\" }\n                ],\n                \"TechnicalDescription\": \"User supplied value\"\n            }\n            </pre>"
        DepartmentAbbreviation:
          type:
          - string
          - 'null'
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"url\" }\n                ],\n                \"TechnicalDescription\": \"User supplied value\"\n            }\n            </pre>"
        CollegeAbbreviation:
          type:
          - string
          - 'null'
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"url\" }\n                ],\n                \"TechnicalDescription\": \"User supplied value\"\n            }\n            </pre>"
        FutureTerms:
          type: integer
          description: "<pre>\n            {\n                \"OriginatingSchema\" : [\n                    { \"source\":\"url\" }\n                ],\n                \"TechnicalDescription\": \"User supplied value\"\n            }\n            </pre>"
          format: int32
        ViewUnpublished:
          type: boolean
        Href:
          type:
          - string
          - 'null'
      additionalProperties: false
      description: "{\n    \"DisplayTitle\" : \"Curriculum Search Resource URI\",\n    \"TargetSchema\" : [{\"target\" : \"SWS.Curriculum\"}],\n    \"TargetOperationId\" : [\"CurriculumSearch\"]\n}"