{"id":23968967,"url":"https://github.com/joequery/ut-tyler-api","last_synced_at":"2026-05-14T18:31:08.687Z","repository":{"id":7356222,"uuid":"8680722","full_name":"joequery/ut-tyler-api","owner":"joequery","description":"JSON API for retrieving information from various UT Tyler web services.","archived":false,"fork":false,"pushed_at":"2013-05-26T23:53:28.000Z","size":160,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-24T14:48:04.220Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joequery.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-10T04:51:28.000Z","updated_at":"2021-01-20T01:41:52.000Z","dependencies_parsed_at":"2022-08-29T16:52:01.962Z","dependency_job_id":null,"html_url":"https://github.com/joequery/ut-tyler-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joequery/ut-tyler-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joequery%2Fut-tyler-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joequery%2Fut-tyler-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joequery%2Fut-tyler-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joequery%2Fut-tyler-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joequery","download_url":"https://codeload.github.com/joequery/ut-tyler-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joequery%2Fut-tyler-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33037778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-07T00:56:56.420Z","updated_at":"2026-05-14T18:31:08.672Z","avatar_url":"https://github.com/joequery.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"UT Tyler Student API\n====================\n\nThis API serves as a way to retrieve information about a University of Texas at\nTyler student. The API accesses [MyUTTyler][0] and [UT Tyler's Blackboard][1]\n\n[0]: http://my.uttyler.edu\n[1]: http://blackboard.uttyler.edu\n\nRequirements\n------------\n\n* Python 2.7\n* pip/virtualenv\n\nInstallation\n------------\n\n    $ git clone git://github.com/joequery/ut-tyler-api.git\n    $ cd ut-tyler-api\n    $ virtualenv env\n    $ . env/bin/activate\n    $ pip install -r requirements.txt\n    (env)$ python ut-api.py\n\nAPI version\n-----------\nThe most recent API version is 1.0\n\nIs this API hosted anywhere for me to use in my projects?\n---------------------------------------------------------\nNot yet, but I plan on hosting a version on my server very soon. \n\nEndpoints\n---------\n\n### Making API calls\n\nThe URL should be structured `http://localhost:5000/API_VERSION/endpoint`. So, for\nexample, `http://localhost:5000/1.0/grades`.\n\nAll requests should be of type **POST**.\n\n### Retrieving student grades\n\n* Endpoint: `/grades`\n* Expected data parameters:\n    + `username`: The UT Tyler patriot user name\n    + `password`: The UT Tyler patriot password\n* Responses:\n    + Student authentication failure\n        - Status code: 401\n        - JSON: `{\"error\": \"authenticationFailure\"}`\n    + Generic Server Error\n        - Status code: 500\n        - JSON: `{\"error\": \"serverError\"}`\n    + Successful grade retrieval\n        - Status code: 200\n        - JSON: \n\n                {'grades': \n                [\n                    [\n                        'ABSTRACT ALGEBRA I',\n                        [\n                            {\n                                'date': 'Mar 8, 2013 9:05 AM',\n                                'grade': '97.00 /100',\n                                'timestamp': 1362755100,\n                                'title': 'Test 1'\n                            },\n                            {\n                                'date': 'Mar 1, 2013 9:24 AM',\n                                'grade': '25.00 /25',\n                                'timestamp': 1362151440,\n                                'title': 'Homework 8'\n                            },\n                        ]\n                    ],\n                    [\n                        'COMPUTER SECURITY MGMT',\n                        [\n                            {\n                                'date': 'Mar 6, 2013 9:46 AM',\n                                'grade': '79.00 /110',\n                                'timestamp': 1362584760,\n                                'title': 'Midterm Exam'\n                            },\n                            {\n                                'date': 'Feb 25, 2013 10:42 AM',\n                                'grade': '78.00 /100',\n                                'timestamp': 1361810520,\n                                'title': 'First Project Individual Score'\n                            }\n                        ]\n                    ]\n                ]\n                }\n\n### Retrieving blackboard announcements\n\n* Endpoint: `/announcements`\n* Expected data parameters:\n    + `username`: The UT Tyler patriot user name\n    + `password`: The UT Tyler patriot password\n* Responses:\n    + Student authentication failure\n        - Status code: 401\n        - JSON: `{\"error\": \"authenticationFailure\"}`\n    + Generic Server Error\n        - Status code: 500\n        - JSON: `{\"error\": \"serverError\"}`\n    + Successful announcement retrieval\n        - Status code: 200\n        - JSON: \n\n                {\"announcements\": \n                    [\n                        {\n                            \"date\": \"Friday, March 8, 2013\", \n                            \"timestamp\": 1362722400, \n                            \"title\": \"Midterm Exam should be viewable now\", \n                            \"details\": \"You should be able to view your Midterm Exam now...\", \n                            \"course\": \"COSC 4361.001\"\n                        },\n                        {\n                            \"date\": \"Wednesday, March 6, 2013\", \n                            \"timestamp\": 1362549600, \n                            \"title\": \"Office Hours\", \n                            \"details\": \"Office hours on Thursday are cancelled.\", \n                            \"course\": \"MATH 3336.001\"\n                        }\n                    ]\n                }\n\n### Retrieving MyUTTyler info (schedule, TODO list, account summary)\n\n* Endpoint: `/myuttyler`\n* Expected data parameters:\n    + `username`: The UT Tyler patriot user name\n    + `password`: The UT Tyler patriot password\n* Responses:\n    + Student authentication failure\n        - Status code: 401\n        - JSON: `{\"error\": \"authenticationFailure\"}`\n    + Generic Server Error\n        - Status code: 500\n        - JSON: `{\"error\": \"serverError\"}`\n    + Successful myuttyler information retrieval\n        - Status code: 200\n        - JSON: \n\n                {'myuttyler': \n                    {'schedule': \n                        [\n                            [\n                                'Monday',\n                                [\n                                    {\n                                        'courseNum': 4361,\n                                        'location': 'Ratliff Building North 03038',\n                                        'startTime': {\n                                                         'hour': 9,\n                                                         'min': 50,\n                                                         'str': '9:50AM'\n                                                     },\n                                        'subject': 'COSC',\n                                        'time': '9:00AM-9:50AM'\n                                    },\n                                    {\n                                        'courseNum': 3336,\n                                        'location': 'Ratliff Building North 04025',\n                                        'startTime': {\n                                                          'hour': 10,\n                                                          'min': 50,\n                                                          'str': '10:50AM'\n                                                     },\n                                        'subject': 'MATH',\n                                        'time': '10:00AM-10:50AM'\n                                    },\n                                    {\n                                        'courseNum': 4336,\n                                        'location': 'Ratliff Building North 03039',\n                                        'startTime': {\n                                                         'hour': 12,\n                                                         'min': 50,\n                                                         'str': '12:50PM'\n                                                     },\n                                        'subject': 'COSC',\n                                        'time': '12:00PM-12:50PM'\n                                    }\n                                ]\n                            ],\n                            ... Tuesday, Wednesday, Thursday\n                            [\n                                'Friday',\n                                [\n                                    {\n                                        'courseNum': 3336,\n                                        'location': 'Ratliff Building North 04025',\n                                        'startTime': {\n                                                         'hour': 10,\n                                                         'min': 50,\n                                                         'str': '10:50AM'\n                                                     },\n                                        'subject': 'MATH',\n                                        'time': '10:00AM-10:50AM'\n                                    },\n                                ]\n                            ],\n                            [\n                                'TBA',\n                                [\n                                    {\n                                        'courseNum': 4229,\n                                        'date': 'TBA',\n                                        'startTime': {\n                                                         'hour': 0,\n                                                         'min': 0,\n                                                         'str': '12:00AM'\n                                                     },\n                                        'subject': 'MUAP',\n                                        'time': 'TBA'\n                                    }\n                                ]\n                            ]\n                        ],\n                    'summary': False,\n                    'todo': [\n                                \"TODO Item1\",\n                                \"TODO Item2\"\n                            ]\n                    }\n                }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoequery%2Fut-tyler-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoequery%2Fut-tyler-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoequery%2Fut-tyler-api/lists"}