├── README.md ├── bus.md ├── classes.md ├── dining.md ├── garage.md └── images.md /README.md: -------------------------------------------------------------------------------- 1 | # OSU API Reference 2 | 3 | ## Purpose 4 | This reference is intended to be used for developers who would like to access the OSU APIs for information such as: 5 | - Bus Arrival Times and Current Locations 6 | - Locations of all dining halls, their menus, and all nutritional information 7 | - Garage locations and their current statuses 8 | - OSU's Image Of the Day 9 | - Class searches (replaced course catalog university-wide in 2016) 10 | 11 | These APIs should be much more dependable than programmatically scraping OSU's public-facing websites or tracking values by hand. 12 | 13 | ## Collection Methodology 14 | All of the APIs listed here are used by the official Ohio State University iOS App, "Ohio State". This app was used in conjunction with the HTTPS proxy capabilities of [Charles](http://charlesproxy.com) to discover and document all APIs. 15 | 16 | ## Actual Usage 17 | All API endpoints as listed in this repository can be accessed using a secure HTTPS connection, and the **GET** HTTP verb. 18 | 19 | ## Disclaimer 20 | I am not associated with the developers of the OSU App, and am not working with the backend services team to provide this API to the public. My goal for this project was to merely document the already-existing API and make it easier for students to get information about university services, and build better ways of analyzing and visualizing this data. 21 | -------------------------------------------------------------------------------- /bus.md: -------------------------------------------------------------------------------- 1 | # Bus API Specification for CABS busses 2 | 3 | ## API Endpoint 4 | The API endpoint as of April 19, 2016 is https://content.osu.edu/v2/bus/routes/ 5 | 6 | ## Bus Lines 7 | Each bus line has a particular code, as specified below: 8 | - Medical Center - MC 9 | - Campus Loop North - CLN 10 | - Buckeye Village - BV 11 | - Campus Loop South - CLS 12 | - East Residential - ER 13 | - North Express - NE 14 | 15 | ## Retrieving stop information 16 | 17 | #### Query 18 | Information about all stops for a given line is given by appending the line code to the endpoint. For example: 19 | ``` 20 | https://content.osu.edu/v2/bus/routes/CLN 21 | ``` 22 | gives all information about stops on the CLN route. 23 | 24 | #### Sample Response 25 | _Ellipses mark possible repetition_ 26 | ```json 27 | { 28 | "data": { 29 | "patterns": [ 30 | { 31 | "direction": "Circular", 32 | "encodedPolyline": "a}csFtkyyN?KE{@KiAK{@K_@Px@JdAHdA@jA?f@CrAChAAv@Ad@A`@?N@HBFDBJ@x@D~AJ|DJJCJIFKBS@WVmO?OAKCKEGKCYAcACkBC}@Em@?q@Fk@LMAMQI]Oe@e@oA_@{@Qc@Qg@KYESG[Ea@C]A[?S?c@?_@?o@Am@Am@?}@KsBe@wC{@wDcAeF]}AWmAMmAGcBXgKv@ab@R}Z", 33 | "id": "314", 34 | "length": 9077 35 | }, 36 | { 37 | "direction": "Circular", 38 | "encodedPolyline": "i_csFdysyNVCn@INCH?FDDH@N?R?rAFrAF|@Fr@L`BFnA@j@Kt@OdAIl@En@C`A@|AD`ADb@FRHJJDbAKbAOvBQl@Q^AhFo@`BQJ?FJ?dBGbH?|AAhA@ZHFJ@~ADL@LJDLBXAd@AnA@f@Bh@Fb@L|@T~ARdB@p@?j@A^CPGHsAb@w@PaCD_BBc@A{@@}@@aAJe@Di@H[Ha@NsAf@wAh@qBp@_C\\{BNaD@eBMmCg@mB_@o@SsAg@aA[iB[[GMEIKIOCOAS?]@{A?U?QESIQIKGGKGOCgBKe@EEBEFCJ?PArAC|ABMMnHI|EEvBErBCxAIpB?vBEnBAt@An@EzAAp@Al@@f@Bh@@\\Db@Hl@Nv@h@fCt@lDj@nC^dBLbAHfAB|A@fA@jA?r@?n@?l@@ZHl@Hf@HZPh@Pd@Pb@LVN^LZRh@Pr@Nx@Hh@Dj@Bh@@j@", 39 | "id": "429", 40 | "length": 15160 41 | }, 42 | ... 43 | ], 44 | "stops": [ 45 | { 46 | "id": "10", 47 | "latitude": 40.002248658569, 48 | "longitude": -83.038192391396, 49 | "name": "BEVIS HALL" 50 | }, 51 | { 52 | "id": "11", 53 | "latitude": 40.002302078763, 54 | "longitude": -83.039825856686, 55 | "name": "CARMACK CORNER" 56 | }, 57 | ... 58 | ] 59 | }, 60 | "lastModified": "2016-04-19T21:24:00.555Z", 61 | "status": "success" 62 | } 63 | ``` 64 | 65 | 66 | ## Retrieving vehicle information 67 | 68 | #### Query 69 | Information about all busses on a given line is given by appending the line code and the string '/vehicles' to the endpoint. For example: 70 | ``` 71 | https://content.osu.edu/v2/bus/routes/CLN/vehicles 72 | ``` 73 | gives all information about busses on the CLN route. 74 | 75 | #### Sample Response 76 | ```json 77 | { 78 | "data": { 79 | "vehicles": [ 80 | { 81 | "delayed": false, 82 | "destination": "NORTH CAMPUS", 83 | "distance": 5029, 84 | "heading": 67, 85 | "id": "1105", 86 | "latitude": 40.00395209102307, 87 | "longitude": -83.03058171676378, 88 | "patternId": "314", 89 | "routeCode": "CLN", 90 | "speed": 51, 91 | "updated": "2016-04-19T21:27:28.000Z" 92 | }, 93 | { 94 | "delayed": false, 95 | "destination": "WEST CAMPUS", 96 | "distance": 2100, 97 | "heading": 170, 98 | "id": "1102", 99 | "latitude": 39.99607742041872, 100 | "longitude": -83.01480182848479, 101 | "patternId": "429", 102 | "routeCode": "CLN", 103 | "speed": 25, 104 | "updated": "2016-04-19T21:27:09.000Z" 105 | }, 106 | { 107 | "delayed": false, 108 | "destination": "SOUTH CAMPUS", 109 | "distance": 1862, 110 | "heading": 172, 111 | "id": "1103", 112 | "latitude": 40.002720749169065, 113 | "longitude": -83.0107431244432, 114 | "patternId": "430", 115 | "routeCode": "CLN", 116 | "speed": 10, 117 | "updated": "2016-04-19T21:27:22.000Z" 118 | } 119 | ] 120 | }, 121 | "lastModified": "2016-04-19T21:27:30.705Z", 122 | "status": "success" 123 | } 124 | ``` 125 | 126 | ## Retrieving basic line information 127 | 128 | #### Query 129 | Information about all lines is given by querying the endpoint. For example: 130 | ``` 131 | https://content.osu.edu/v2/bus/routes 132 | ``` 133 | 134 | #### Sample Response 135 | ```json 136 | { 137 | "data": { 138 | "routes": [ 139 | { 140 | "code": "BV", 141 | "color": "#006600", 142 | "name": "BUCKEYE VILLAGE" 143 | }, 144 | { 145 | "code": "CLS", 146 | "color": "#cc0000", 147 | "name": "CAMPUS LOOP SOUTH" 148 | }, 149 | { 150 | "code": "ER", 151 | "color": "#0033cc", 152 | "name": "EAST RESIDENTIAL" 153 | }, 154 | { 155 | "code": "MC", 156 | "color": "#ff66cc", 157 | "name": "MEDICAL CENTER " 158 | }, 159 | { 160 | "code": "CLN", 161 | "color": "#999999", 162 | "name": "CAMPUS LOOP NORTH" 163 | }, 164 | { 165 | "code": "NE", 166 | "color": "#ff6600", 167 | "name": "NORTH EXPRESS" 168 | } 169 | ] 170 | }, 171 | "lastModified": "2016-04-15T05:04:00.373Z", 172 | "status": "success" 173 | } 174 | ``` 175 | -------------------------------------------------------------------------------- /classes.md: -------------------------------------------------------------------------------- 1 | # Class API Specification 2 | 3 | ## API Endpoint 4 | The API endpoint as of April 19, 2016 is https://content.osu.edu/v2/classes/ 5 | 6 | ## Searching for Classes 7 | 8 | #### Query 9 | Searches for classes can be requested by appending the word 'search', and specifying the search query as a URL-encoded parameter labeled as 'q'. For example: 10 | ``` 11 | https://content.osu.edu/v2/classes/search?q=Software 12 | ``` 13 | searches for all classes associated with the term "Software" 14 | 15 | The app advertises that is possible to query classes using: 16 | - Academic Program 17 | - Building 18 | - Campus 19 | - Course Title 20 | - Description 21 | - Instructor 22 | - Subject 23 | 24 | #### Sample Response 25 | _Ellipses mark possible repetition_ 26 | ```json 27 | { 28 | "data": { 29 | "activeFilters": [], 30 | "activeSort": "", 31 | "courses": [ 32 | { 33 | "course": { 34 | "academicCareer": "Graduate", 35 | "academicGroup": "Engineering", 36 | "academicOrg": "D1435", 37 | "allowMultiEnroll": "N", 38 | "campus": "Columbus", 39 | "campusCode": "COL", 40 | "catalogNumber": "5022", 41 | "cipCode": "14.0901", 42 | "component": "Lecture", 43 | "courseAttributes": [], 44 | "courseId": "155986", 45 | "description": "Intellectual foundations of software engineering; design-by-contract principles; mathematical modeling of software functionality; component-based software from client perspective; layered data representation. Previous programming experience in any language required.\r\nPrereq: At least one term of Calculus. Not open to students with credit for 2221, 2231, 4221, 321, or 502. Not open to students enrolled in a CSE or CIS major.", 46 | "effectiveDate": "2013-08-20", 47 | "effectiveStatus": "A", 48 | "equivalentId": "S1807", 49 | "grading": "Graded", 50 | "maxUnits": 3, 51 | "minUnits": 3, 52 | "offeringNumber": "3", 53 | "primaryComponent": "LEC", 54 | "repeatUnitsLimit": 3, 55 | "shortDescription": "SW 1: Components", 56 | "subject": "CSE", 57 | "subjectDesc": "Computer Science & Engineering", 58 | "term": "Spring 2016", 59 | "title": "Software I: Software Components" 60 | }, 61 | "sections": [ 62 | { 63 | "_parent": "155986-3-1162", 64 | "academicGroup": "ENG", 65 | "academicOrg": "D1435", 66 | "associatedClass": "10", 67 | "attributes": [], 68 | "autoEnrollSection1": "0011", 69 | "autoEnrollSection2": null, 70 | "autoEnrollWaitlist": true, 71 | "campus": "Columbus", 72 | "cancelDate": null, 73 | "career": "GRAD", 74 | "catalogNumber": "5022", 75 | "classNumber": "9745", 76 | "combinedSection": "Closed", 77 | "component": "Lecture", 78 | "consent": false, 79 | "courseDescription": "Intellectual foundations of software engineering; design-by-contract principles; mathematical modeling of software functionality; component-based software from client perspective; layered data representation. Previous programming experience in any language required.\r\nPrereq: At least one term of Calculus. Not open to students with credit for 2221, 2231, 4221, 321, or 502. Not open to students enrolled in a CSE or CIS major.", 80 | "courseId": "155986", 81 | "courseOfferingNumber": 3, 82 | "courseTitle": "Software I: Software Components", 83 | "description": "SW 1: Components", 84 | "endDate": "2016-04-25", 85 | "enrollmentStatus": "Closed", 86 | "enrollmentTotal": 2, 87 | "equivalentCourseId": null, 88 | "holidaySchedule": "OSUSIS", 89 | "instructionMode": "In Person", 90 | "location": "CS-COLMBUS", 91 | "meetingDays": "", 92 | "meetings": [ 93 | { 94 | "buildingCode": "279", 95 | "buildingDescription": "Dreese Lab 357", 96 | "buildingDescriptionShort": "DL 357", 97 | "endDate": "2016-04-25", 98 | "endTime": "8:55 am", 99 | "facilityCapacity": 45, 100 | "facilityDescription": "Dreese Laboratories", 101 | "facilityDescriptionShort": "Dreese Lab", 102 | "facilityGroup": false, 103 | "facilityId": "DL0357", 104 | "facilityType": "1B", 105 | "friday": false, 106 | "instructors": [ 107 | { 108 | "displayName": "Jeremy John Morris", 109 | "email": "morris.343@osu.edu", 110 | "role": "PI" 111 | } 112 | ], 113 | "meetingNumber": 1, 114 | "monday": false, 115 | "room": "357", 116 | "saturday": false, 117 | "standingMeetingPattern": null, 118 | "startDate": "2016-01-11", 119 | "startTime": "8:00 am", 120 | "sunday": false, 121 | "thursday": true, 122 | "tuesday": true, 123 | "wednesday": false 124 | } 125 | ], 126 | "minimumEnrollment": 0, 127 | "primaryInstructorSection": "0010", 128 | "secAcademicGroup": "ENG", 129 | "secCampus": "COL", 130 | "secCatalogNumber": "5022", 131 | "section": "0010", 132 | "sessionCode": "1", 133 | "sessionDescription": "Regular Academic Term", 134 | "startDate": "2016-01-11", 135 | "status": "A", 136 | "subject": "CSE", 137 | "subjectDesc": "Computer Science & Engineering", 138 | "term": "Spring 2016", 139 | "termCode": "1162", 140 | "type": "E", 141 | "waitlistCapacity": 999, 142 | "waitlistTotal": 0 143 | },... 144 | ] 145 | }, 146 | { 147 | "course": { 148 | "academicCareer": "Undergraduate", 149 | "academicGroup": "Engineering", 150 | "academicOrg": "D1435", 151 | "allowMultiEnroll": "N", 152 | "campus": "Columbus", 153 | "campusCode": "COL", 154 | "catalogNumber": "2221", 155 | "cipCode": "14.0901", 156 | "component": "Lecture", 157 | "courseAttributes": [ 158 | { 159 | "description": "NWK LMA MNS MRN Course Fee $50", 160 | "name": "CRSF", 161 | "value": "CFR50" 162 | }, 163 | { 164 | "description": "EM test administered by department of instruction", 165 | "name": "EXAM", 166 | "value": "DEPT" 167 | } 168 | ], 169 | "courseId": "150505", 170 | "description": "Intellectual foundations of software engineering; design-by-contract principles; mathematical modeling of software functionality; component-based software from client perspective; layered data representation.\r\nPrereq: 1211 (203) or 1212 or 1221 (205) or 1222 (202) or 1223 (201) or 204 or EnGraph 167 or Engr 1221, or 1281.01H, or 1281.02H, or CSE Placement Level A. Concur: Math 1151 or 1161.01 or 1161.02. Not open to students with credit for 4221, 321, 502, or 5022. This course is available for EM credit.", 171 | "effectiveDate": "2016-01-10", 172 | "effectiveStatus": "A", 173 | "equivalentId": {}, 174 | "grading": "Graded", 175 | "maxUnits": 4, 176 | "minUnits": 4, 177 | "offeringNumber": "1", 178 | "primaryComponent": "LEC", 179 | "repeatUnitsLimit": 4, 180 | "shortDescription": "SW 1: Components", 181 | "subject": "CSE", 182 | "subjectDesc": "Computer Science & Engineering", 183 | "term": "Summer 2016", 184 | "title": "Software I: Software Components" 185 | }, 186 | "sections": [ 187 | { 188 | "_parent": "150505-1-1164", 189 | "academicGroup": "ENG", 190 | "academicOrg": "D1435", 191 | "associatedClass": "10", 192 | "attributes": [ 193 | { 194 | "description": "NWK LMA MNS MRN Course Fee $50", 195 | "name": "CRSF", 196 | "value": "CFR50" 197 | }, 198 | { 199 | "description": "EM test administered by department of instruction", 200 | "name": "EXAM", 201 | "value": "DEPT" 202 | } 203 | ], 204 | "autoEnrollSection1": "0011", 205 | "autoEnrollSection2": null, 206 | "autoEnrollWaitlist": true, 207 | "campus": "Columbus", 208 | "cancelDate": null, 209 | "career": "UGRD", 210 | "catalogNumber": "2221", 211 | "classNumber": "1242", 212 | "combinedSection": "Closed", 213 | "component": "Lecture", 214 | "consent": false, 215 | "courseDescription": "Intellectual foundations of software engineering; design-by-contract principles; mathematical modeling of software functionality; component-based software from client perspective; layered data representation.\r\nPrereq: 1211 (203) or 1212 or 1221 (205) or 1222 (202) or 1223 (201) or 204 or EnGraph 167 or Engr 1221, or 1281.01H, or 1281.02H, or CSE Placement Level A. Concur: Math 1151 or 1161.01 or 1161.02. Not open to students with credit for 4221, 321, 502, or 5022. This course is available for EM credit.", 216 | "courseId": "150505", 217 | "courseOfferingNumber": 1, 218 | "courseTitle": "Software I: Software Components", 219 | "description": "SW 1: Components", 220 | "endDate": "2016-07-29", 221 | "enrollmentStatus": "Open", 222 | "enrollmentTotal": 38, 223 | "equivalentCourseId": null, 224 | "holidaySchedule": "OSUSIS", 225 | "instructionMode": "In Person", 226 | "location": "CS-COLMBUS", 227 | "meetingDays": "", 228 | "meetings": [ 229 | { 230 | "buildingCode": "279", 231 | "buildingDescription": "Dreese Lab 357", 232 | "buildingDescriptionShort": "DL 357", 233 | "endDate": "2016-07-29", 234 | "endTime": "10:05 am", 235 | "facilityCapacity": 45, 236 | "facilityDescription": "Dreese Laboratories", 237 | "facilityDescriptionShort": "Dreese Lab", 238 | "facilityGroup": false, 239 | "facilityId": "DL0357", 240 | "facilityType": "1B", 241 | "friday": true, 242 | "instructors": [ 243 | { 244 | "displayName": "Diego Sebastian Zaccai", 245 | "email": "zaccai.1@osu.edu", 246 | "role": "PI" 247 | } 248 | ], 249 | "meetingNumber": 1, 250 | "monday": true, 251 | "room": "357", 252 | "saturday": false, 253 | "standingMeetingPattern": null, 254 | "startDate": "2016-05-11", 255 | "startTime": "9:10 am", 256 | "sunday": false, 257 | "thursday": true, 258 | "tuesday": true, 259 | "wednesday": true 260 | } 261 | ], 262 | "minimumEnrollment": 0, 263 | "primaryInstructorSection": "0010", 264 | "secAcademicGroup": "ENG", 265 | "secCampus": "COL", 266 | "secCatalogNumber": "2221", 267 | "section": "0010", 268 | "sessionCode": "1S", 269 | "sessionDescription": "Summer Term", 270 | "startDate": "2016-05-11", 271 | "status": "A", 272 | "subject": "CSE", 273 | "subjectDesc": "Computer Science & Engineering", 274 | "term": "Summer 2016", 275 | "termCode": "1164", 276 | "type": "E", 277 | "waitlistCapacity": 999, 278 | "waitlistTotal": 1 279 | }, ... 280 | ] 281 | }, ... 282 | ] 283 | "currentItemCount": 200, 284 | "filters": [ 285 | { 286 | "items": [ 287 | { 288 | "count": 188, 289 | "link": "?q=Software&p=1&term=1162", 290 | "removeLink": "?q=Software&p=1", 291 | "selected": false, 292 | "term": "1162", 293 | "title": "Spring 2016" 294 | }, 295 | { 296 | "count": 37, 297 | "link": "?q=Software&p=1&term=1164", 298 | "removeLink": "?q=Software&p=1", 299 | "selected": false, 300 | "term": "1164", 301 | "title": "Summer 2016" 302 | }, 303 | { 304 | "count": 218, 305 | "link": "?q=Software&p=1&term=1168", 306 | "removeLink": "?q=Software&p=1", 307 | "selected": false, 308 | "term": "1168", 309 | "title": "Autumn 2016" 310 | } 311 | ], 312 | "slug": "term", 313 | "title": "Term" 314 | }, 315 | { 316 | "items": [ 317 | { 318 | "count": 410, 319 | "link": "?q=Software&p=1&campus=COL", 320 | "removeLink": "?q=Software&p=1", 321 | "selected": false, 322 | "term": "COL", 323 | "title": "Columbus" 324 | }, 325 | { 326 | "count": 7, 327 | "link": "?q=Software&p=1&campus=LMA", 328 | "removeLink": "?q=Software&p=1", 329 | "selected": false, 330 | "term": "LMA", 331 | "title": "Lima" 332 | },... 333 | ], 334 | "slug": "campus", 335 | "title": "Campus" 336 | }, 337 | { 338 | "items": [ 339 | { 340 | "count": 213, 341 | "link": "?q=Software&p=1&subject=CSE", 342 | "removeLink": "?q=Software&p=1", 343 | "selected": false, 344 | "term": "CSE", 345 | "title": "Computer Science & Engineering" 346 | }, 347 | { 348 | "count": 45, 349 | "link": "?q=Software&p=1&subject=BUSMGT", 350 | "removeLink": "?q=Software&p=1", 351 | "selected": false, 352 | "term": "BUSMGT", 353 | "title": "Business Admin: Management Sci" 354 | }, ... 355 | ], 356 | "slug": "subject", 357 | "title": "Subject" 358 | }, 359 | { 360 | "items": [ 361 | { 362 | "count": 0, 363 | "link": "?q=Software&p=1&academic-career=DENT", 364 | "removeLink": "?q=Software&p=1", 365 | "selected": false, 366 | "term": "DENT", 367 | "title": "Dentistry" 368 | }, 369 | { 370 | "count": 114, 371 | "link": "?q=Software&p=1&academic-career=GRAD", 372 | "removeLink": "?q=Software&p=1", 373 | "selected": false, 374 | "term": "GRAD", 375 | "title": "Graduate" 376 | }, ... 377 | ], 378 | "slug": "academic-career", 379 | "title": "Academic Career" 380 | }, 381 | { 382 | "items": [ 383 | { 384 | "count": 24, 385 | "link": "?q=Software&p=1&academic-program=AGR", 386 | "removeLink": "?q=Software&p=1", 387 | "selected": false, 388 | "term": "AGR", 389 | "title": "Food, Agric & Environ Science" 390 | }, 391 | { 392 | "count": 68, 393 | "link": "?q=Software&p=1&academic-program=ASC", 394 | "removeLink": "?q=Software&p=1", 395 | "selected": false, 396 | "term": "ASC", 397 | "title": "Arts and Sciences" 398 | }, ... 399 | ], 400 | "slug": "academic-program", 401 | "title": "Academic Program" 402 | }, 403 | { 404 | "items": [ 405 | { 406 | "count": 0, 407 | "link": "?q=Software&p=1&component=CLN", 408 | "removeLink": "?q=Software&p=1", 409 | "selected": false, 410 | "term": "CLN", 411 | "title": "Clinical" 412 | }, 413 | { 414 | "count": 0, 415 | "link": "?q=Software&p=1&component=FLD", 416 | "removeLink": "?q=Software&p=1", 417 | "selected": false, 418 | "term": "FLD", 419 | "title": "Field Experience" 420 | }, ... 421 | ], 422 | "slug": "component", 423 | "title": "Component" 424 | }, 425 | { 426 | "items": [ 427 | { 428 | "count": 54, 429 | "link": "?q=Software&p=1&class-attribute=EM%20test%20administered%20by%20department%20of%20instruction", 430 | "removeLink": "?q=Software&p=1", 431 | "selected": false, 432 | "term": "EM test administered by department of instruction", 433 | "title": "EM test administered by department of instruction" 434 | }, 435 | { 436 | "count": 48, 437 | "link": "?q=Software&p=1&class-attribute=NWK%20LMA%20MNS%20MRN%20Course%20Fee%20%2450", 438 | "removeLink": "?q=Software&p=1", 439 | "selected": false, 440 | "term": "NWK LMA MNS MRN Course Fee $50", 441 | "title": "NWK LMA MNS MRN Course Fee $50" 442 | }, ... 443 | ], 444 | "slug": "class-attribute", 445 | "title": "Class Attribute" 446 | }, 447 | { 448 | "items": [ 449 | { 450 | "count": 84, 451 | "link": "?q=Software&p=1&catalog-number=1xxx", 452 | "removeLink": "?q=Software&p=1", 453 | "selected": false, 454 | "term": "1xxx", 455 | "title": "1xxx" 456 | }, 457 | { 458 | "count": 142, 459 | "link": "?q=Software&p=1&catalog-number=2xxx", 460 | "removeLink": "?q=Software&p=1", 461 | "selected": false, 462 | "term": "2xxx", 463 | "title": "2xxx" 464 | }, ... 465 | ], 466 | "slug": "catalog-number", 467 | "title": "Catalog Number" 468 | }, 469 | { 470 | "items": [ 471 | { 472 | "count": 360, 473 | "link": "?q=Software&p=1&evening=Daytime", 474 | "removeLink": "?q=Software&p=1", 475 | "selected": false, 476 | "term": "Daytime", 477 | "title": "Daytime" 478 | }, 479 | { 480 | "count": 76, 481 | "link": "?q=Software&p=1&evening=Evening", 482 | "removeLink": "?q=Software&p=1", 483 | "selected": false, 484 | "term": "Evening", 485 | "title": "Evening" 486 | } 487 | ], 488 | "slug": "evening", 489 | "title": "Evening" 490 | }, 491 | { 492 | "items": [ 493 | { 494 | "count": 421, 495 | "link": "?q=Software&p=1&instruction-mode=P", 496 | "removeLink": "?q=Software&p=1", 497 | "selected": false, 498 | "term": "P", 499 | "title": "In Person" 500 | }, 501 | { 502 | "count": 13, 503 | "link": "?q=Software&p=1&instruction-mode=DL", 504 | "removeLink": "?q=Software&p=1", 505 | "selected": false, 506 | "term": "DL", 507 | "title": "Distance Learning" 508 | }, ... 509 | ], 510 | "slug": "instruction-mode", 511 | "title": "Instruction Mode" 512 | } 513 | ] 514 | } 515 | "nextPageLink": "?q=Software&p=2", 516 | "page": 1, 517 | "prevPageLink": null, 518 | "refineQueryTemplate": "q=_QUERY_&p=1", 519 | "searchTimeMillis": 80, 520 | "sort": [ 521 | { 522 | "direction": "desc", 523 | "key": "", 524 | "link": "?q=Software&p=1&sort=", 525 | "title": "Relevance", 526 | "type": "amount" 527 | }, 528 | { 529 | "direction": "asc", 530 | "key": "subject", 531 | "link": "?q=Software&p=1&sort=subject", 532 | "title": "Subject", 533 | "type": "alpha" 534 | }, 535 | { 536 | "direction": "desc", 537 | "key": "-subject", 538 | "link": "?q=Software&p=1&sort=-subject", 539 | "title": "Subject", 540 | "type": "alpha" 541 | }, 542 | { 543 | "direction": "asc", 544 | "key": "catalogNumber", 545 | "link": "?q=Software&p=1&sort=catalogNumber", 546 | "title": "Catalog Number", 547 | "type": "numeric" 548 | }, 549 | { 550 | "direction": "desc", 551 | "key": "-catalogNumber", 552 | "link": "?q=Software&p=1&sort=-catalogNumber", 553 | "title": "Catalog Number", 554 | "type": "numeric" 555 | } 556 | ], 557 | "totalItems": 443, 558 | "totalPages": 3 559 | } 560 | } 561 | ``` 562 | -------------------------------------------------------------------------------- /dining.md: -------------------------------------------------------------------------------- 1 | # Dining API Specification 2 | 3 | ## API Endpoint 4 | The API endpoint as of April 19, 2016 is https://content.osu.edu/v2/api/v1/dining 5 | 6 | ## Retrieving Location Information 7 | 8 | #### Query 9 | List of dining locations and information can be requested by appending the path '/locations/menus' to the endpoint. For example: 10 | ``` 11 | https://content.osu.edu/v2/api/v1/dining/locations/menus 12 | ``` 13 | 14 | Note, by querying the URL: 15 | ``` 16 | https://content.osu.edu/v2/api/v1/dining/locations 17 | ``` 18 | A similar response is given, except that the menu information is not included for each location. 19 | 20 | #### Sample Response 21 | _Ellipses mark possible repetition_ 22 | ```json 23 | { 24 | "data": { 25 | "locationsMenus": [ 26 | { 27 | "address1": "1858 Neil Ave Mall", 28 | "address2": "", 29 | "campusBuildingID": "050", 30 | "city": "Columbus", 31 | "cuisines": [ 32 | { 33 | "cuisineType": "Deli-Style Sandwiches" 34 | }, 35 | { 36 | "cuisineType": "Salad" 37 | }, 38 | { 39 | "cuisineType": "Specialty Coffees" 40 | }, 41 | { 42 | "cuisineType": "Yogurt/Fruit" 43 | } 44 | ], 45 | "diningStyle": "Cafe/Grab 'n Go", 46 | "iconUrl": "https://dining.osu.edu/NetNutritionimages/coffee.gif", 47 | "id": 101, 48 | "itemHash": "6433907e1dc8cc97fe2be2f0a92dbd3f", 49 | "locationMenu": [ 50 | { 51 | "isDaySpecificMenu": false, 52 | "menuDate": null, 53 | "sections": [ 54 | { 55 | "menuSectionName": "Daily Menu", 56 | "order": 1, 57 | "sectionID": 101 58 | } 59 | ] 60 | } 61 | ], 62 | "locationName": "Berry Cafe", 63 | "photoUrl": null, 64 | "state": "OH", 65 | "summary": "Drag your tired body down to the first floor of the Thompson Library. Grab a fresh sandwich and chips, or a fruit parfait and a cookie, or just go straight for the caffeine with our TBC Mocha. All you need to help you succeed", 66 | "thumbnailUrl": null, 67 | "zip": "43210" 68 | }, 69 | { 70 | "address1": "1900 Cannon Drive", 71 | "address2": "", 72 | "campusBuildingID": "272", 73 | "city": "Columbus", 74 | "cuisines": [], 75 | "diningStyle": null, 76 | "iconUrl": "https://dining.osu.edu/NetNutritionimages/salad.gif", 77 | "id": 127, 78 | "itemHash": "7051482eacbe55e412afd1c9668bbee7", 79 | "locationMenu": [ 80 | { 81 | "isDaySpecificMenu": false, 82 | "menuDate": null, 83 | "sections": [ 84 | { 85 | "menuSectionName": "Daily Menu", 86 | "order": 1, 87 | "sectionID": 157 88 | } 89 | ] 90 | } 91 | ], 92 | "locationName": "Morrill C-Store", 93 | "photoUrl": null, 94 | "state": "OH", 95 | "summary": "On any given day at Morrill C-Store, you can make your own MOCO Fusion bowl, salad, or wrap, and purchase an assortment of quick, pick-up selections.", 96 | "thumbnailUrl": null, 97 | "zip": "43210" 98 | },... 99 | ] 100 | }, 101 | "lastModified": "2016-04-19T14:53:06.467Z", 102 | "status": "success" 103 | } 104 | ``` 105 | 106 | ## Retrieving Foods for each Location 107 | 108 | #### Query 109 | List of dining locations and information can be requested by appending the path '/full/menu/section' and the **sectionID** number given by locationMenu field for each location in the location request listed above. For example: 110 | ``` 111 | https://content.osu.edu/v2/api/v1/dining/full/menu/section/101 112 | ``` 113 | Lists the menu for the "Daily Menu" at the Berry Cafe. 114 | 115 | #### Sample Result 116 | _Ellipses mark possible repetition_ 117 | ```json 118 | { 119 | "data": { 120 | "fullMenu": [ 121 | { 122 | "course": "Limited Time Offer", 123 | "id": 107, 124 | "itemHash": "676c01c17b71bd93cf3b610a760c58b4", 125 | "name": "Fruit Tart", 126 | "nutrition": [ 127 | { 128 | "displayQuantity": true, 129 | "name": "Calories", 130 | "percentOfGoal": 14, 131 | "quantity": 282, 132 | "sortOrder": 1, 133 | "unitOfMeasure": "" 134 | }, 135 | { 136 | "displayQuantity": true, 137 | "name": "Total Fat", 138 | "percentOfGoal": 17, 139 | "quantity": 11, 140 | "sortOrder": 3, 141 | "unitOfMeasure": "Gram" 142 | }, 143 | { 144 | "displayQuantity": true, 145 | "name": "Saturated Fat", 146 | "percentOfGoal": 28, 147 | "quantity": 6, 148 | "sortOrder": 4, 149 | "unitOfMeasure": "Gram" 150 | }, 151 | { 152 | "displayQuantity": true, 153 | "name": "Trans Fat", 154 | "percentOfGoal": 3, 155 | "quantity": 0, 156 | "sortOrder": 5, 157 | "unitOfMeasure": "Gram" 158 | }, 159 | { 160 | "displayQuantity": true, 161 | "name": "Cholesterol", 162 | "percentOfGoal": 22, 163 | "quantity": 66, 164 | "sortOrder": 6, 165 | "unitOfMeasure": "mg" 166 | }, 167 | { 168 | "displayQuantity": true, 169 | "name": "Sodium", 170 | "percentOfGoal": 5, 171 | "quantity": 110, 172 | "sortOrder": 7, 173 | "unitOfMeasure": "mg" 174 | }, 175 | { 176 | "displayQuantity": true, 177 | "name": "Total Carbohydrate", 178 | "percentOfGoal": 13, 179 | "quantity": 40, 180 | "sortOrder": 8, 181 | "unitOfMeasure": "Gram" 182 | }, 183 | { 184 | "displayQuantity": true, 185 | "name": "Dietary Fiber", 186 | "percentOfGoal": 9, 187 | "quantity": 2, 188 | "sortOrder": 9, 189 | "unitOfMeasure": "Gram" 190 | }, 191 | { 192 | "displayQuantity": true, 193 | "name": "Sugars", 194 | "percentOfGoal": 0, 195 | "quantity": 18.5, 196 | "sortOrder": 10, 197 | "unitOfMeasure": "Gram" 198 | }, 199 | { 200 | "displayQuantity": true, 201 | "name": "Protein", 202 | "percentOfGoal": 11, 203 | "quantity": 5.5, 204 | "sortOrder": 11, 205 | "unitOfMeasure": "Gram" 206 | }, 207 | { 208 | "displayQuantity": false, 209 | "name": "Vitamin A", 210 | "percentOfGoal": 3, 211 | "quantity": 0, 212 | "sortOrder": 12, 213 | "unitOfMeasure": "" 214 | }, 215 | { 216 | "displayQuantity": false, 217 | "name": "Vitamin C", 218 | "percentOfGoal": 15, 219 | "quantity": 0, 220 | "sortOrder": 13, 221 | "unitOfMeasure": "" 222 | }, 223 | { 224 | "displayQuantity": false, 225 | "name": "Calcium", 226 | "percentOfGoal": 7, 227 | "quantity": 0, 228 | "sortOrder": 14, 229 | "unitOfMeasure": "" 230 | }, 231 | { 232 | "displayQuantity": false, 233 | "name": "Iron", 234 | "percentOfGoal": 12, 235 | "quantity": 0, 236 | "sortOrder": 15, 237 | "unitOfMeasure": "" 238 | } 239 | ], 240 | "portionSize": "Each", 241 | "price": 0, 242 | "sortOrder": 1, 243 | "traits": [ 244 | { 245 | "category": "Allergen", 246 | "name": "Dairy" 247 | }, 248 | { 249 | "category": "Allergen", 250 | "name": "Eggs" 251 | }, 252 | { 253 | "category": "Allergen", 254 | "name": "Gluten" 255 | }, 256 | { 257 | "category": "Allergen", 258 | "name": "Soy" 259 | }, 260 | { 261 | "category": "Requirement", 262 | "name": "Vegetarian" 263 | }, 264 | { 265 | "category": "Allergen", 266 | "name": "Wheat" 267 | } 268 | ] 269 | },... 270 | ] 271 | }, 272 | "lastModified": "2016-04-19T08:02:59.360Z", 273 | "status": "success" 274 | } 275 | ``` 276 | _Note: These responses are **very** large, so take care when requesting and parsing this data_ 277 | -------------------------------------------------------------------------------- /garage.md: -------------------------------------------------------------------------------- 1 | # Garage API Specification 2 | 3 | ## API Endpoint 4 | The API endpoint as of April 19, 2016 is https://content.osu.edu/v2/parking/garages/ 5 | 6 | ## Retrieving garage information 7 | 8 | #### Query 9 | Information about all garages can be requested by appending the word 'availability' to the endpoint. For example: 10 | ``` 11 | https://content.osu.edu/v2/parking/garages/availability 12 | ``` 13 | 14 | #### Sample Response 15 | _Ellipses mark possible repetition_ 16 | ```json 17 | { 18 | "data": { 19 | "garages": [ 20 | { 21 | "capacity": 644, 22 | "count": 267, 23 | "currentAccess": [ 24 | "keycard", 25 | "visitor" 26 | ], 27 | "lastUpdated": "2016-04-19T21:35:34.000Z", 28 | "link": "http://www.campusparc.com/osu/garages/11th-avenue", 29 | "name": "11th Avenue", 30 | "osuBuildingNumber": "352", 31 | "percentage": 41 32 | }, 33 | { 34 | "capacity": 284, 35 | "count": 41, 36 | "currentAccess": [ 37 | "keycard", 38 | "visitor" 39 | ], 40 | "lastUpdated": "2016-04-19T21:35:34.000Z", 41 | "link": "http://www.campusparc.com/osu/garages/west-lane", 42 | "name": "West Lane Avenue", 43 | "osuBuildingNumber": "892", 44 | "percentage": 14 45 | }, 46 | ... 47 | ], 48 | "itemHash": "406067b15e20c172d73aae974dd20e78" 49 | }, 50 | "lastModified": "2016-04-19T21:37:09.375Z", 51 | "status": "success" 52 | } 53 | ``` 54 | -------------------------------------------------------------------------------- /images.md: -------------------------------------------------------------------------------- 1 | # Image API Specification 2 | 3 | ## API Endpoint 4 | The API endpoint as of April 19, 2016 is https://content.osu.edu/v2/ohio/ 5 | 6 | ## Retrieving All Images 7 | 8 | #### Query 9 | List of all approved images can be requested by appending the word 'images' to the endpoint. For example: 10 | ``` 11 | https://content.osu.edu/v2/ohio/images 12 | ``` 13 | 14 | #### Sample Response 15 | _Ellipses mark possible repetition_ 16 | ```json 17 | { 18 | "data": { 19 | "images": [ 20 | { 21 | "author": "Gabriela Avila", 22 | "description": "April 16, 2016 at the Global Star Party held at the Ohio State Planetarium.", 23 | "id": 55806, 24 | "link": "https://s3.amazonaws.com/ohiotd/images/000/055/806/featured/_MG_2840.jpg?1460858935", 25 | "publishedDate": "2016-04-19T11:50:42.253Z", 26 | "title": "Rooftop of Smith Lab at Sunset" 27 | }, 28 | { 29 | "author": "Kristen Schoeff", 30 | "description": "Spring game O-H-I-O while checking out the OSUMB's practice field.", 31 | "id": 55808, 32 | "link": "https://s3.amazonaws.com/ohiotd/images/000/055/808/featured/Spring_Game_2016_OHIO.jpg?1460984242", 33 | "publishedDate": "2016-04-19T11:49:51.858Z", 34 | "title": "Future TBDBITL'ers" 35 | }, 36 | { 37 | "author": "Rebecca Kemper", 38 | "description": "Urban Affairs Association (UAA) 2016 Conference San Diego, California", 39 | "id": 55736, 40 | "link": "https://s3.amazonaws.com/ohiotd/images/000/055/736/featured/image.jpeg?1458364931", 41 | "publishedDate": "2016-03-21T17:29:56.626Z", 42 | "title": "City & Regional Planning Researchers / Alumni " 43 | }, 44 | ... 45 | ] 46 | }, 47 | "lastModified": "2016-04-19T12:00:15.890Z", 48 | "status": "success" 49 | } 50 | ``` 51 | 52 | ## Retrieving Images of the day 53 | 54 | #### Query 55 | List of all images of the day can be requested by querying the endpoint: 56 | ``` 57 | https://content.osu.edu/v2/image-of-the-day/images 58 | ``` 59 | 60 | #### Sample Response 61 | _Ellipses mark possible repetition_ 62 | ```json 63 | { 64 | "data": { 65 | "images": [ 66 | { 67 | "author": "", 68 | "id": 1215944, 69 | "link": "https://s3.amazonaws.com/ohiotd/images/000/055/801/featured/blob?1460748009", 70 | "publishedDate": "2016-04-18T20:00:00.000Z", 71 | "title": "Look up" 72 | }, 73 | { 74 | "author": "", 75 | "id": 1214047, 76 | "link": "https://s3.amazonaws.com/ohiotd/images/000/055/713/featured/blob?1457655908", 77 | "publishedDate": "2016-04-17T20:00:00.000Z", 78 | "title": "The Greatest Place on Earth" 79 | }, 80 | { 81 | "author": "", 82 | "id": 1212095, 83 | "link": "https://s3.amazonaws.com/ohiotd/images/000/055/723/featured/blob?1458091074", 84 | "publishedDate": "2016-04-16T20:00:00.000Z", 85 | "title": "An early spring sign on campus" 86 | }, ... 87 | ] 88 | }, 89 | "lastModified": "2016-04-19T01:00:31.432Z", 90 | "status": "success" 91 | } 92 | _ Note: All linked images are actually in the JPEG format, even though that is not specified in the URL _ 93 | --------------------------------------------------------------------------------