Rokwire Gateway Building Block

Gateway Building Block of the Rokwire platform, providing access to external university systems and data streams for the Illinois mobile app ecosystem.

OpenAPI Specification

university-of-illinois-urbana-champaign-rokwire-gateway.yaml Raw ↑
openapi: 3.0.3
info:
  title: Rokwire Gateway Building Block API
  description: Gateway Building Block API Documentation
  version: 2.21.1
servers:
- url: https://api.rokwire.illinois.edu/gateway
tags:
- name: Client
  description: Client applications APIs.
- name: Admin
  description: Clients administration applications APIs.
- name: BBs
  description: Building Block APIs.
- name: TPS
  description: Third-Party Service APIs.
- name: System
  description: Third-Party Service APIs.
- name: Default
  description: Default APIs.
paths:
  /version:
    get:
      tags:
      - Default
      summary: Get version
      description: |
        Gets current version of this service
      responses:
        "200":
          description: Success
          content:
            text/plain:
              schema:
                type: string
                example: v1.0.0
        "500":
          description: Internal error
  /api/examples/{id}:
    get:
      tags:
      - Client
      summary: Gets example
      description: |
        Gets example record

        **Auth:** Requires valid user token with `get_examples` permission
      security:
      - bearerAuth: []
      parameters:
      - name: id
        in: path
        description: ID of example to retrieve
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Example'
        "400":
          description: Bad request
        "401":
          description: Unauthorized
        "500":
          description: Internal error
  /api/wayfinidng/buildng:
    get:
      tags:
      - Client
      summary: Gets building information
      description: |
        Gets building information by id

        **Auth:** Requires valid first-party service account token with `get_building` permission
      security:
      - bearerAuth: []
      parameters:
      - name: id
        in: query
        description: Building id
        required: true
        style: form
        explode: false
        schema:
          type: string
      - name: adaOnly
        in: query
        description: Prioritize ADA accessible entrances in the response
        required: false
        style: form
        explode: false
        schema:
          type: boolean
      - name: lat
        in: query
        description: lattidue of the user's location
        required: false
        style: form
        explode: false
        schema:
          type: number
      - name: long
        in: query
        description: longitude of the user's location
        required: false
        style: form
        explode: false
        schema:
          type: number
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Building'
        "400":
          description: Bad request
        "401":
          description: Unauthorized
        "500":
          description: Internal error
  /api/wayfinding/buildings:
    get:
      tags:
      - Client
      summary: Gets all campus buildings
      description: |
        Gets all campus buildings with coordinates, entrances, floors and features

        **Auth:** Requires valid first-party service account token with `get_building` permission
      security:
      - bearerAuth: []
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Building'
        "400":
          description: Bad request
        "401":
          description: Unauthorized
        "500":
          description: Internal error
  /api/wayfinding/floorplan:
    get:
      tags:
      - Client
      summary: Returns the markup required to display the requested floor plan.
      description: |
        Returns the markup and data structures needed to display an svg of the request floor plan.

        **Auth:** Requires valid first-party service account token with `get_building` permission
      security:
      - bearerAuth: []
      parameters:
      - name: bldgid
        in: query
        description: The building id for the selected building
        required: true
        style: form
        explode: false
        schema:
          type: string
      - name: floor
        in: query
        description: Identifier of the floor to retrieve.
        required: true
        style: form
        explode: false
        schema:
          type: string
      - name: markers
        in: query
        description: If omitted, the value is set to "on". Indicates the initial state
          of all the marker on the floor plan. Values are "on" or "off".
        required: false
        style: form
        explode: false
        schema:
          type: number
      - name: highlites
        in: query
        description: If omitted, the values is set to "on". Indicates the initial
          state of all the highlites on the flloor plan. Values are "on" or "off".
        required: false
        style: form
        explode: false
        schema:
          type: number
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FloorPlan'
        "400":
          description: Bad request
        "401":
          description: Unauthorized
        "500":
          description: Internal error
  /api/wayfinding/searchbuildings:
    get:
      tags:
      - Client
      summary: Returns a list of buildings matching the requested name
      description: "Returns every building in the campus buildings list that contains
        the name parameter in the building name property. \nThe response is a map
        where keys are building names and values are building objects.\n\n**Verbosity
        Levels:**\n- **v=1 or omitted**: Returns CompactBuilding objects (default)\n-
        **v=2**: Returns full Building objects with complete details\n\n**Auth:**
        Requires valid first-party service account token with `get_building` permission\n"
      security:
      - bearerAuth: []
      parameters:
      - name: name
        in: query
        description: String to search for in the building name (case-insensitive)
        required: true
        style: form
        explode: false
        schema:
          type: string
          example: Illini
      - name: v
        in: query
        description: Verbosity level. Set to 1 or omit for compact buildings, set
          to 2 for full building details
        required: false
        style: form
        explode: false
        schema:
          type: string
          enum:
          - "1"
          - "2"
          default: "1"
          example: "1"
      responses:
        "200":
          description: Success - Returns a map of building names to building objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchBuildingsResponse'
              example:
                Illini Union:
                  ID: illini_union
                  Name: Illini Union
                  Number: "1401"
                  FullAddress: 1401 W Green St, Urbana, IL 61801
                  ImageURL: https://example.com/illini_union.jpg
                  ShortName: Union
                  Latitude: 40.1095
                  Longitude: -88.2272
        "400":
          description: Bad request - Missing or invalid name parameter
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: invalid
                  type:
                    type: string
                    example: query_param
                  args:
                    type: array
                    items:
                      type: string
                    example:
                    - name
        "401":
          description: Unauthorized - Invalid or missing authentication token
        "404":
          description: Not found - No buildings match the search criteria
        "500":
          description: Internal server error
  /api/termsessions/listcurrent:
    get:
      tags:
      - Client
      summary: Returns a list of current term sessions
      description: |
        Based on the current date, returns 4 term sessions for campus. If the current month is between 6 and 12, the current fall term is assumed and returned with the upcomign spring semester, the last summer semster and the previous spring semester. If the current month is less than 6, returns the current spring semester, the upcoming summer and fall semesters and the previous fall semester.

        **Auth:** Requires valid first-party service account token with `get_building` permission
      security:
      - bearerAuth: []
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TermSession'
        "400":
          description: Bad request
        "401":
          description: Unauthorized
        "500":
          description: Internal error
  /api/laundry/rooms:
    get:
      tags:
      - Client
      summary: Get list of all campus laundry rooms
      description: |
        Returns a list of all laundry rooms available on campus with their basic information including ID, name, status, and location details.

        **Auth:** Requires valid first-party service account token with appropriate permissions
      security:
      - bearerAuth: []
      responses:
        "200":
          description: Success - Returns organization with list of laundry rooms
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
              example:
                SchoolName: University of Illinois at Urbana-Champaign
                LaundryRooms:
                - ID: 1
                  Name: Illini Tower Laundry
                  Status: active
                  Location:
                    Latitude: 40.1095
                    Longitude: -88.2272
                    Floor: 1
                - ID: 2
                  Name: Bromley Hall Laundry
                  Status: active
                  Location:
                    Latitude: 40.11
                    Longitude: -88.228
                    Floor: 2
        "401":
          description: Unauthorized - Invalid or missing authentication token
        "404":
          description: Not found - No laundry rooms available
        "500":
          description: Internal server error
  /api/laundry/room:
    get:
      tags:
      - Client
      summary: Get detailed information about a specific laundry room
      description: "Returns detailed information about a specific laundry room including
        the number of washers and dryers, \na list of all appliances (machines) in
        the room with their current status, and location details.\n\n**Auth:** Requires
        valid first-party service account token with appropriate permissions\n"
      security:
      - bearerAuth: []
      parameters:
      - name: id
        in: query
        description: The unique identifier of the laundry room
        required: true
        style: form
        explode: false
        schema:
          type: string
          example: "1"
      responses:
        "200":
          description: Success - Returns detailed laundry room information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoomDetail'
              example:
                NumWashers: 8
                NumDryers: 6
                RoomName: Illini Tower Laundry
                CampusName: University of Illinois at Urbana-Champaign
                Location:
                  Latitude: 40.1095
                  Longitude: -88.2272
                  Floor: 1
                Appliances:
                - ID: washer_001
                  Status: available
                  ApplianceType: washer
                  AverageCycleTime: 45
                  TimeRemaining: null
                  Label: Washer 1
                - ID: dryer_001
                  Status: in_use
                  ApplianceType: dryer
                  AverageCycleTime: 60
                  TimeRemaining: 15
                  Label: Dryer 1
                - ID: washer_002
                  Status: maintenance
                  ApplianceType: washer
                  AverageCycleTime: 45
                  TimeRemaining: null
                  Label: Washer 2
        "400":
          description: Bad request - Missing or invalid room ID parameter
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: missing
                  type:
                    type: string
                    example: query_param
                  args:
                    type: array
                    items:
                      type: string
                    example:
                    - id
        "401":
          description: Unauthorized - Invalid or missing authentication token
        "404":
          description: Not found - Laundry room with specified ID not found
        "500":
          description: Internal server error
  /api/laundry/initrequest:
    get:
      tags:
      - Client
      summary: Initialize a service request for a laundry machine
      description: "Returns the problem codes and pending service request status for
        a specific laundry machine. \nThis endpoint is used to initialize a service
        request by providing the available problem codes \nand checking if there's
        already an open issue for the machine.\n\n**Auth:** Requires valid first-party
        service account token with appropriate permissions\n"
      security:
      - bearerAuth: []
      parameters:
      - name: machineid
        in: query
        description: The unique service tag ID of the laundry machine
        required: true
        style: form
        explode: false
        schema:
          type: string
          example: washer_001
      responses:
        "200":
          description: Success - Returns machine request details and available problem
            codes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineRequestDetail'
              example:
                MachineID: washer_001
                Message: Machine is available for service requests
                OpenIssue: false
                ProblemCodes:
                - not_spinning
                - not_draining
                - leaking
                - not_starting
                - error_code
                - other
                MachineType: washer
        "400":
          description: Bad request - Missing or invalid machine ID parameter
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: missing
                  type:
                    type: string
                    example: query_param
                  args:
                    type: array
                    items:
                      type: string
                    example:
                    - machineid
        "401":
          description: Unauthorized - Invalid or missing authentication token
        "404":
          description: Not found - Machine with specified ID not found
        "500":
          description: Internal server error
  /api/laundry/requestservice:
    post:
      tags:
      - Client
      summary: Submit a service request for a laundry machine
      description: "Submits a service request for a specific laundry machine. This
        endpoint requires detailed information \nabout the problem and contact information
        for the person submitting the request.\n\n**Required Fields:** machineid,
        problemcode, firstname, lastname, email\n**Optional Fields:** comments, phone\n\n**Auth:**
        Requires valid first-party service account token with appropriate permissions\n"
      security:
      - bearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceSubmission'
            example:
              machineid: washer_001
              problemcode: not_spinning
              comments: Machine makes noise but doesn't spin
              firstname: John
              lastname: Doe
              phone: 555-123-4567
              email: [email protected]
      responses:
        "200":
          description: Success - Service request submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceRequestResult'
              example:
                Message: Service request submitted successfully
                RequestNumber: SR-2024-001234
                Status: submitted
        "400":
          description: Bad request - Missing required fields or invalid data
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: missing
                  type:
                    type: string
                    example: request_body
                  args:
                    type: array
                    items:
                      type: string
                    example:
                    - machineid
                    - problemcode
        "401":
          description: Unauthorized - Invalid or missing authentication token
        "404":
          description: Not found - Machine with specified ID not found
        "500":
          description: Internal server error
  /api/person/contactinfo:
    get:
      tags:
      - Client
      summary: Get contact information for a person
      description: "Returns comprehensive contact information for a person including
        name, permanent and mailing addresses, \nphone numbers, and emergency contact
        information.\n\n**Authentication:** Requires both RokwireAuth and ExternalAuth
        tokens\n**Mode Parameter:** \n- \"0\" (default): Standard contact information\n-
        \"1\": Enhanced contact information (for specific UINs)\n\n**Auth:** Requires
        valid first-party service account token and external authorization token\n"
      security:
      - bearerAuth: []
      parameters:
      - name: id
        in: query
        description: User ID (UIN) of the person
        required: true
        style: form
        explode: false
        schema:
          type: string
          example: "123456789"
      - name: mode
        in: query
        description: Mode for contact information retrieval (0=standard, 1=enhanced)
        required: false
        style: form
        explode: false
        schema:
          type: string
          enum:
          - "0"
          - "1"
          default: "0"
          example: "0"
      responses:
        "200":
          description: Success - Returns person's contact information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person'
              example:
                uin: "123456789"
                FirstName: John
                LastName: Doe
                PreferredName: Johnny
                MailingAddress:
                  Type: MA
                  Street1: 123 Main St
                  City: Urbana
                  StateAbbr: IL
                  StateName: Illinois
                  ZipCode: "61801"
                  County: Champaign
                  Phone:
                    AreaCode: "217"
                    Number: 333-1234
                PermAddress:
                  Type: PR
                  Street1: 456 Oak Ave
                  City: Chicago
                  StateAbbr: IL
                  StateName: Illinois
                  ZipCode: "60601"
                  County: Cook
                  Phone:
                    AreaCode: "312"
                    Number: 555-6789
                EmergencyContacts:
                - Priority: "1"
                  RelationShip:
                    Code: PAR
                    Name: Parent
                  FirstName: Jane
                  LastName: Doe
                  Address:
                    Type: PR
                    Street1: 456 Oak Ave
                    City: Chicago
                    StateAbbr: IL
                    StateName: Illinois
                    ZipCode: "60601"
                    County: Cook
                    Phone:
                      AreaCode: "312"
                      Number: 555-6789
        "400":
          description: Bad request - Missing required parameters or invalid external
            token
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: missing
                  type:
                    type: string
                    example: header
                  args:
                    type: array
                    items:
                      type: string
                    example:
                    - external auth token
        "401":
          description: Unauthorized - Invalid or missing authentication token
        "403":
          description: Forbidden - Insufficient permissions or invalid external token
        "404":
          description: Not found - Person with specified UIN not found
        "500":
          description: Internal server error
  /api/person/giescourses:
    get:
      tags:
      - Client
      summary: Get registered courses for GIES students
      description: "Returns a list of registered courses for GIES (Gies College of
        Business) students. \nThis endpoint provides course information including
        term, subject, number, section, \ntitle, and instructor details.\n\n**Authentication:**
        Requires both RokwireAuth and ExternalAuth tokens\n**Note:** This endpoint
        is specifically for GIES students and may return different \ncourse information
        compared to the general student courses endpoint.\n\n**Auth:** Requires valid
        first-party service account token and external authorization token\n"
      security:
      - bearerAuth: []
      parameters:
      - name: id
        in: query
        description: User ID (UIN) of the GIES student
        required: true
        style: form
        explode: false
        schema:
          type: string
          example: "123456789"
      responses:
        "200":
          description: Success - Returns list of GIES courses
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GiesCourse'
              example:
              - term: 2024-FA
                subject: BADM
                number: "310"
                section: A
                title: Principles of Marketing
                instructor: Dr. Smith
              - term: 2024-FA
                subject: BADM
                number: "320"
                section: B
                title: Business Statistics
                instructor: Dr. Johnson
              - term: 2024-FA
                subject: FIN
                number: "300"
                section: C
                title: Financial Management
                instructor: Dr. Williams
        "400":
          description: Bad request - Missing required parameters or invalid external
            token
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: invalid
                  type:
                    type: string
                    example: query_param
                  args:
                    type: array
                    items:
                      type: string
                    example:
                    - id
        "401":
          description: Unauthorized - Invalid or missing authentication token
        "403":
          description: Forbidden - Insufficient permissions or invalid external token
        "404":
          description: Not found - Student with specified UIN not found or no courses
            available
        "500":
          description: Internal server error
  /api/person/studentcourses:
    get:
      tags:
      - Client
      summary: Get registered courses for a student
      description: "Returns a comprehensive list of registered courses for a student
        including detailed course information, \nsection details, meeting times, locations,
        and building information. This endpoint provides the most \ncomplete course
        data compared to other course endpoints.\n\n**Authentication:** Requires both
        RokwireAuth and ExternalAuth tokens\n**Location Enhancement:** Automatically
        enriches course data with building location information\n**ADA Support:**
        Optional ADA-only building filtering for accessibility considerations\n\n**Auth:**
        Requires valid first-party service account token and external authorization
        token\n"
      security:
      - bearerAuth: []
      parameters:
      - name: id
        in: query
        description: User ID (UIN) of the student
        required: true
        style: form
        explode: false
        schema:
          type: string
          example: "123456789"
      - name: termid
        in: query
        description: Term ID for the academic term (e.g., "120258" for Fall 2025).
          If not provided, defaults to the current term.
        required: false
        style: form
        explode: false
        schema:
          type: string
          example: "120258"
      - name: lat
        in: query
        description: Latitude coordinate for location-based building information (optional)
        required: false
        style: form
        explode: false
        schema:
          type: number
          format: float
          example: 40.1095
      - name: long
        in: query
        description: Longitude coordinate for location-based building information
          (optional)
        required: false
        style: form
        explode: false
        schema:
          type: number
          format: float
          example: -88.2272
      - name: adaOnly
        in: query
        description: Filter buildings to show only ADA-compliant entrances (optional)
        required: false
        style: form
        explode: false
        schema:
          type: boolean
          default: false
          example: false
      responses:
        "200":
          description: Success - Returns list of student courses with building information
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Course'
              example:
              - coursetitle: Introduction to Computer Science
                courseshortname: CS 101
                coursenumber: CS 101
                instructionmethod: In Person
                coursesection:
                  days: MWF
                  meeting_dates_or_range: Aug 26 - Dec 13
                  room: "1001"
                  buildingname: Siebel Center for Computer Science
                  buildingid: siebel
                  instructiontype: Lecture
                  instructor: Dr. Smith
                  start_time: "09:00"
                  endtime: "09:50"
                  building:
                    ID: siebel
                    Name: Siebel Center for Computer Science
                    Number: "201"
                    FullAddress: 201 N Goodwin Ave, Urbana, IL 61801
                    Address1: 201 N Goodwin Ave
                    Address2: ""
                    City: Urbana
                    State: IL
                    ZipCode: "61801"
                    ImageURL: https://example.com/siebel.jpg
                    MailCode: MC-258
                    Latitude: 40.1135
                    Longitude: -88.2244
                    Floors:
                    - "1"
                    - "2"
                    - "3"
                    - "4"
                    Entrances:
                    - ID: 9bd26229-f95e-4b83-bcd3-34ee91f75b5b
                      Name: Main Entrance
                      ADACompliant: true
                      Available: true
                      ImageURL: https://example.com/entrance1.jpg
                      Latitude: 40.1135
                      Longitude: -88.2244
                    - ID: entrance2
                      Name: Side Entrance
                      ADACompliant: false
                      Available: true
                      ImageURL: https://example.com/entrance2.jpg
                      Latitude: 40.1136
                      Longitude: -88.2245
                    Features:
                    - Key: ADA_ENTRANCE
                      Value:
                        Name: ADA Entrance
                        Floors:
                        - "01"
                    - Key: RR-ALLGENDER
                      Value:
                        Name: All Gender Restroom
                        Floors:
                        - "02"
                  courseReferenceNumber: "12345"
                  course_section: A
              - coursetitle: Calculus I
                courseshortname: MATH 221
                coursenumber: MATH 221
                instructionmethod: In Person
                coursesection:
                  days: TR
                  meeting_dates_or_range: Aug 26 - Dec 13
                  room: "314"
                  buildingname: Altgeld Hall
                  buildingid: altgeld
                  instructiontype: Lecture
                  instructor: Dr. Johnson
                  start_time: "14:00"
                  endtime: "15:20"
                  building:
                    ID: altgeld
                    Name: Altgeld Hall
                    Number: "1409"
                    FullAddress: 1409 W Green St, Urbana, IL 61801
                    Address1: 1409 W Green St
                    Address2: ""
                    City: Urbana
                    State: IL
                    ZipCode: "61801"
                    ImageURL: https://example.com/altgeld.jpg
                    MailCode: MC-382
                    Latitude: 40.1095
                    Longitude: -88.2272
                    Floors:
                    - "1"
                    - "2"
                    - "3"
                    Entrances:
                    - ID: 9bd26229-f95e-4b83-bcd3-34ee91f75b5b
                      Name: Main Entrance
                      ADACompliant: true
                      Available: true
                      ImageURL: https://example.com/entrance1.jpg
                      Latitude: 40.1135
                      Longitude: -88.2244
                    - ID: entrance2
                      Name: Side Entrance
                      ADACompliant: false
                      Available: true
                      ImageURL: https://example.com/entrance2.jpg
                      Latitude: 40.1136
                      Longitude: -88.2245
                    Features:
                    - Key: ADA_ENTRANCE
                      Value:
                        Name: ADA Entrance
                        Floors:
                        - "01"
                    - Key: RR-ALLGENDER
                      Value:
                        Name: All Gender Restroom
                        Floors:
                        - "02"
                  courseReferenceNumber: "67890"
                  course_section: B
   

# --- truncated at 32 KB (98 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-illinois-urbana-champaign/refs/heads/main/openapi/university-of-illinois-urbana-champaign-rokwire-gateway.yaml