REST API endpoints for GitHub Classroom
Use the REST API to interact with GitHub Classroom.
Closing down - Get an assignment
Warning
Closing down notice: This operation is closing down and will be removed on August 28, 2026. For more information, see the GitHub Classroom sunset notice.
Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment.
Fine-grained access tokens for "Closing down - Get an assignment"
This endpoint works with the following fine-grained token types:
The fine-grained token does not require any permissions.
This endpoint can be used without authentication if only public resources are requested.
Parameters for "Closing down - Get an assignment"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
assignment_id integer RequiredThe unique identifier of the classroom assignment. |
HTTP response status codes for "Closing down - Get an assignment"
| Status code | Description |
|---|---|
200 | OK |
404 | Resource not found |
410 | Gone |
Code samples for "Closing down - Get an assignment"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/assignments/ASSIGNMENT_IDResponse
Status: 200{
"id": "12,",
"public_repo": "false,",
"title": "Intro to Binaries",
"type": "individual",
"invite_link": "https://classroom.github.com/a/Lx7jiUgx",
"invitations_enabled": "true,",
"slug": "intro-to-binaries",
"students_are_repo_admins": false,
"feedback_pull_requests_enabled": true,
"max_teams": 0,
"max_members": 0,
"editor": "codespaces",
"accepted": 100,
"submitted": 40,
"passing": 10,
"language": "ruby",
"deadline": "2011-01-26T19:06:43Z",
"stater_code_repository": {
"id": 1296269,
"full_name": "octocat/Hello-World",
"html_url": "https://github.com/octocat/Hello-World",
"node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"private": false,
"default_branch": "main"
},
"classroom": {
"id": 1296269,
"name": "Programming Elixir",
"archived": "false,",
"url": "https://classroom.github.com/classrooms/1-programming-elixir"
}
}Closing down - List accepted assignments for an assignment
Warning
Closing down notice: This operation is closing down and will be removed on August 28, 2026. For more information, see the GitHub Classroom sunset notice.
Lists any assignment repositories that have been created by students accepting a GitHub Classroom assignment. Accepted assignments will only be returned if the current user is an administrator of the GitHub Classroom for the assignment.
Fine-grained access tokens for "Closing down - List accepted assignments for an assignment"
This endpoint works with the following fine-grained token types:
The fine-grained token does not require any permissions.
This endpoint can be used without authentication if only public resources are requested.
Parameters for "Closing down - List accepted assignments for an assignment"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
assignment_id integer RequiredThe unique identifier of the classroom assignment. |
| Name, Type, Description |
|---|
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
HTTP response status codes for "Closing down - List accepted assignments for an assignment"
| Status code | Description |
|---|---|
200 | OK |
410 | Gone |
Code samples for "Closing down - List accepted assignments for an assignment"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/assignments/ASSIGNMENT_ID/accepted_assignmentsResponse
Status: 200{
"id": "12,",
"submitted": "false,",
"passing": "false,",
"commit_count": 5,
"grade": "5/10",
"students": [
{
"id": 1,
"login": "octocat",
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"html_url": "https://github.com/octocat"
}
],
"repository": {
"id": 1296269,
"full_name": "octocat/Hello-World",
"html_url": "https://github.com/octocat/Hello-World",
"node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
"private": false,
"default_branch": "main"
},
"assignment": {
"id": "12,",
"public_repo": "false,",
"title": "Intro to Binaries",
"type": "individual",
"invite_link": "https://classroom.github.com/a/Lx7jiUgx",
"invitations_enabled": "true,",
"slug": "intro-to-binaries",
"students_are_repo_admins": false,
"feedback_pull_requests_enabled": true,
"max_teams": 0,
"max_members": 0,
"editor": "codespaces",
"accepted": 100,
"submitted": 40,
"passing": 10,
"language": "ruby",
"classroom": {
"id": 1296269,
"name": "Programming Elixir",
"archived": "false,",
"url": "https://classroom.github.com/classrooms/1-programming-elixir"
}
}
}Closing down - Get assignment grades
Warning
Closing down notice: This operation is closing down and will be removed on August 28, 2026. For more information, see the GitHub Classroom sunset notice.
Gets grades for a GitHub Classroom assignment. Grades will only be returned if the current user is an administrator of the GitHub Classroom for the assignment.
Fine-grained access tokens for "Closing down - Get assignment grades"
This endpoint works with the following fine-grained token types:
The fine-grained token does not require any permissions.
This endpoint can be used without authentication if only public resources are requested.
Parameters for "Closing down - Get assignment grades"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
assignment_id integer RequiredThe unique identifier of the classroom assignment. |
HTTP response status codes for "Closing down - Get assignment grades"
| Status code | Description |
|---|---|
200 | OK |
404 | Resource not found |
410 | Gone |
Code samples for "Closing down - Get assignment grades"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/assignments/ASSIGNMENT_ID/gradesResponse
Status: 200[
{
"assignment_name": "Introduction to Strings",
"assignment_url": "https://classroom.github.com/classrooms/1337/assignments/1337",
"starter_code_url": "",
"github_username": "octocat",
"roster_identifier": "octocat@github.com",
"student_repository_name": "intro-to-strings-1337-octocat",
"student_repository_url": "https://github.com/timeforschool/intro-to-strings-1337-octocat",
"submission_timestamp": "2018-11-12 01:02",
"points_awarded": 10,
"points_available": 15,
"group_name": "octocat-and-friends"
},
{
"assignment_name": "Introduction to Strings",
"assignment_url": "https://classroom.github.com/classrooms/1337/assignments/1337",
"starter_code_url": "",
"github_username": "monalisa",
"roster_identifier": "monalisa@github.com",
"student_repository_name": "intro-to-strings-1337-monalisa",
"student_repository_url": "https://github.com/timeforschool/intro-to-strings-1337-monalisa",
"submission_timestamp": "2018-11-12 01:11",
"points_awarded": 15,
"points_available": 15,
"group_name": "monalisa-and-friends"
}
]Closing down - List classrooms
Warning
Closing down notice: This operation is closing down and will be removed on August 28, 2026. For more information, see the GitHub Classroom sunset notice.
Lists GitHub Classroom classrooms for the current user. Classrooms will only be returned if the current user is an administrator of one or more GitHub Classrooms.
Fine-grained access tokens for "Closing down - List classrooms"
This endpoint works with the following fine-grained token types:
The fine-grained token does not require any permissions.
This endpoint can be used without authentication if only public resources are requested.
Parameters for "Closing down - List classrooms"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
HTTP response status codes for "Closing down - List classrooms"
| Status code | Description |
|---|---|
200 | OK |
410 | Gone |
Code samples for "Closing down - List classrooms"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/classroomsResponse
Status: 200{
"id": 1296269,
"name": "Programming Elixir",
"archived": "false,",
"url": "https://classroom.github.com/classrooms/1-programming-elixir"
}Closing down - Get a classroom
Warning
Closing down notice: This operation is closing down and will be removed on August 28, 2026. For more information, see the GitHub Classroom sunset notice.
Gets a GitHub Classroom classroom for the current user. Classroom will only be returned if the current user is an administrator of the GitHub Classroom.
Fine-grained access tokens for "Closing down - Get a classroom"
This endpoint works with the following fine-grained token types:
The fine-grained token does not require any permissions.
This endpoint can be used without authentication if only public resources are requested.
Parameters for "Closing down - Get a classroom"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
classroom_id integer RequiredThe unique identifier of the classroom. |
HTTP response status codes for "Closing down - Get a classroom"
| Status code | Description |
|---|---|
200 | OK |
404 | Resource not found |
410 | Gone |
Code samples for "Closing down - Get a classroom"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/classrooms/CLASSROOM_IDResponse
Status: 200{
"id": 1296269,
"name": "Programming Elixir",
"archived": "false,",
"organization": {
"id": 1,
"login": "programming-elixir",
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE=",
"html_url": "https://github.com/programming-elixir",
"name": "Learn how to build fault tolerant applications",
"avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4"
},
"url": "https://classroom.github.com/classrooms/1-programming-elixir"
}Closing down - List assignments for a classroom
Warning
Closing down notice: This operation is closing down and will be removed on August 28, 2026. For more information, see the GitHub Classroom sunset notice.
Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom.
Fine-grained access tokens for "Closing down - List assignments for a classroom"
This endpoint works with the following fine-grained token types:
The fine-grained token does not require any permissions.
This endpoint can be used without authentication if only public resources are requested.
Parameters for "Closing down - List assignments for a classroom"
| Name, Type, Description |
|---|
accept string Setting to |
| Name, Type, Description |
|---|
classroom_id integer RequiredThe unique identifier of the classroom. |
| Name, Type, Description |
|---|
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
HTTP response status codes for "Closing down - List assignments for a classroom"
| Status code | Description |
|---|---|
200 | OK |
410 | Gone |
Code samples for "Closing down - List assignments for a classroom"
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/classrooms/CLASSROOM_ID/assignmentsResponse
Status: 200{
"id": "12,",
"public_repo": "false,",
"title": "Intro to Binaries",
"type": "individual",
"invite_link": "https://classroom.github.com/a/Lx7jiUgx",
"invitations_enabled": "true,",
"slug": "intro-to-binaries",
"students_are_repo_admins": false,
"feedback_pull_requests_enabled": true,
"max_teams": 0,
"max_members": 0,
"editor": "codespaces",
"accepted": 100,
"submitted": 40,
"passing": 10,
"language": "ruby",
"deadline": "2020-01-11T11:59:22Z",
"classroom": {
"id": 1296269,
"name": "Programming Elixir",
"archived": "false,",
"url": "https://classroom.github.com/classrooms/1-programming-elixir"
}
}