generated: '2026-07-15' method: generated source: openapi/university-of-washington-idcard-web-service.yaml, openapi/university-of-washington-student-web-service.yaml description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 56 by_action_class: connected: 51 acting: 5 by_consequence: read: 51 write: 4 safety-critical: 1 human_in_the_loop_required: 1 operations: - path: /v1/card method: get operationId: GetCards x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/photo/{reg_Id} method: get operationId: Photo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/photo/{reg_Id}.{file_extension} method: get operationId: PhotoWithExtension x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/photo method: get operationId: PhotoSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1 method: get operationId: GetResources x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: / method: get operationId: GetVersions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/campus method: get operationId: CampusSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/college method: get operationId: CollegeSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/course/{year},{quarter},{curriculum_abbreviation},{course_number} method: get operationId: GetCourse x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/course method: get operationId: CourseSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/curriculum method: get operationId: CurriculumSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/degree/{major_abbr},{pathway},{level},{type},{year},{quarter} method: get operationId: GetDegree x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/degree method: get operationId: DegreeSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/degreeaudit method: post operationId: DegreeAuditCreate x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v5/degreeaudit method: get operationId: DegreeAuditSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/degreeaudit/{campus},{majorabbreviation},{pathway},{degreelevel},{degreetype},{regid} method: get operationId: GetDegreeAudit x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/degreeauditexception method: post operationId: DegreeAuditExceptionCreate x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v5/degreeauditexception method: get operationId: DegreeAuditExceptionSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/degreeauditexception/{regid} method: get operationId: GetDegreeAuditException x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/degreeauditexception/{subtype}/{controlcode}/{sequenceno}/{regid} method: delete operationId: DegreeAuditExceptionDelete x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v5/degreeauditprogram method: get operationId: DegreeAuditProgramSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/degreeauditstatus/{campus},{majorabbreviation},{pathway},{degreelevel},{degreetype},{regid},{jobid} method: get operationId: GetDegreeAuditStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/department method: get operationId: DepartmentSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/enrollment/{year},{quarter},{reg_id} method: get operationId: GetEnrollment x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/enrollment method: get operationId: EnrollmentSearchFull x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/enrollment/{year},{quarter},{regid}/major method: get operationId: GetEnrollmentMajor x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/enrollment/{year},{quarter},{regid}/major method: put operationId: UpdateEnrollmentMajor x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v5/majorstudents method: get operationId: GetMajorStudents x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/notice/{uwregid} method: get operationId: GetNotice x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/person/{reg_id}/registrationblock method: get operationId: GetRegistrationBlocks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/person/{reg_id}/registrationblock method: put operationId: PutRegistrationBlocks x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v5/person/{reg_id}/degree method: get operationId: GetEarnedDegrees x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/person/{reg_id}/advisers method: get operationId: GetAcademicAdvisers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/person/{reg_id} method: get operationId: GetPerson x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/person method: get operationId: PersonSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/person/{reg_id}/financial method: get operationId: GetPersonalFinancial x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/program/{major_abbr},{pathway},{year},{quarter} method: get operationId: GetProgram x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/program method: get operationId: ProgramSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/registration/{year},{quarter},{curriculum_abbreviation},{course_number},{section_id},{reg_id},{duplicate_code} method: get operationId: GetRegistration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/registration/{year},{quarter},{curriculum_abbreviation},{course_number},{section_id},{reg_id}, method: get operationId: GetRegistrationNoDupeCode x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/registration method: get operationId: RegistrationSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5 method: get operationId: GetSWSResources x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/schedule/{reg_id} method: get operationId: GetCurrentSchedule x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/schedule/{year},{quarter},{reg_id} method: get operationId: GetSchedule x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/course/{year},{quarter},{curriculum_abbreviation},{course_number}/{section_id} method: get operationId: GetSection x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/section method: get operationId: SectionSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/section/{year},{quarter} method: get operationId: SectionTermSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/course/{year},{quarter},{curriculum_abbreviation},{course_number}/{section_id}/status method: get operationId: GetSectionStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/course/{year},{quarter},{curriculum_abbreviation},{course_number}/status method: get operationId: GetSectionStatusByCourse x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/term/current method: get operationId: GetTermCurrent x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/term/next method: get operationId: GetTermNext x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/term/previous method: get operationId: GetTermPrevious x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/term/{year},{quarter} method: get operationId: GetTerm x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/testscore/{regID} method: get operationId: GetTestScore x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v5/testscore/{testType},{regID} method: get operationId: GetTestScoreWithTestType x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: / method: get operationId: GetVersions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none