Use the REST API to manage Projects
Note
Most endpoints use Authorization: Bearer <YOUR-TOKEN> and Accept: application/vnd.github+json headers, plus X-GitHub-Api-Version: 2026-03-10. Curl examples below omit these standard headers for brevity.
GET /orgs/{org}/projectsV2
List all projects owned by a specific organization accessible by the authenticated user.
accept (string)application/vnd.github+json is recommended.org (string) (required)
The organization name. The name is not case sensitive.
q (string)
Limit results to projects of the specified type.
before (string)
A cursor, as given in the Link header. If specified, the query only searches for results before this cursor. For more information, see "Using pagination in the REST API."
after (string)
A cursor, as given in the Link header. If specified, the query only searches for results after this cursor. For more information, see "Using pagination in the REST API."
per_page (integer)
The number of results per page (max 100). For more information, see "Using pagination in the REST API."
Default: 30
200 - OK
304 - Not modified
401 - Requires authentication
403 - Forbidden
Request:
curl -L \
-X GET \
https://api.github.com/orgs/ORG/projectsV2
Response schema (Status: 200):
Array of Projects v2 Project:
id: required, numbernode_id: required, stringowner: required, Simple User:
name: string or nullemail: string or nulllogin: required, stringid: required, integer, format: int64node_id: required, stringavatar_url: required, string, format: urigravatar_id: required, string or nullurl: required, string, format: urihtml_url: required, string, format: urifollowers_url: required, string, format: urifollowing_url: required, stringgists_url: required, stringstarred_url: required, stringsubscriptions_url: required, string, format: uriorganizations_url: required, string, format: urirepos_url: required, string, format: urievents_url: required, stringreceived_events_url: required, string, format: uritype: required, stringsite_admin: required, booleanstarred_at: stringuser_view_type: stringcreator: required, Simple User (see above)title: required, stringdescription: required, string or nullpublic: required, booleanclosed_at: required, string or null, format: date-timecreated_at: required, string, format: date-timeupdated_at: required, string, format: date-timenumber: required, integershort_description: required, string or nulldeleted_at: required, string or null, format: date-timedeleted_by: required, any of:
state: string, enum: open, closedlatest_status_update: any of:
id: required, numbernode_id: required, stringproject_node_id: stringcreator: Simple User (see above)created_at: required, string, format: date-timeupdated_at: required, string, format: date-timestatus: string or null, enum: INACTIVE, ON_TRACK, AT_RISK, OFF_TRACK, COMPLETE, nullstart_date: string, format: datetarget_date: string, format: datebody: string or nullis_template: booleanGET /orgs/{org}/projectsV2/{project_number}
Get a specific organization-owned project.
accept (string)application/vnd.github+json is recommended.project_number (integer) (required)
The project's number.
org (string) (required)
The organization name. The name is not case sensitive.
200 - OK
304 - Not modified
401 - Requires authentication
403 - Forbidden
Request:
curl -L \
-X GET \
https://api.github.com/orgs/ORG/projectsV2/PROJECT_NUMBER
Response schema (Status: 200):
id: required, numbernode_id: required, stringowner: required, Simple User:
name: string or nullemail: string or nulllogin: required, stringid: required, integer, format: int64node_id: required, stringavatar_url: required, string, format: urigravatar_id: required, string or nullurl: required, string, format: urihtml_url: required, string, format: urifollowers_url: required, string, format: urifollowing_url: required, stringgists_url: required, stringstarred_url: required, stringsubscriptions_url: required, string, format: uriorganizations_url: required, string, format: urirepos_url: required, string, format: urievents_url: required, stringreceived_events_url: required, string, format: uritype: required, stringsite_admin: required, booleanstarred_at: stringuser_view_type: stringcreator: required, Simple User (see above)title: required, stringdescription: required, string or nullpublic: required, booleanclosed_at: required, string or null, format: date-timecreated_at: required, string, format: date-timeupdated_at: required, string, format: date-timenumber: required, integershort_description: required, string or nulldeleted_at: required, string or null, format: date-timedeleted_by: required, any of:
state: string, enum: open, closedlatest_status_update: any of:
id: required, numbernode_id: required, stringproject_node_id: stringcreator: Simple User (see above)created_at: required, string, format: date-timeupdated_at: required, string, format: date-timestatus: string or null, enum: INACTIVE, ON_TRACK, AT_RISK, OFF_TRACK, COMPLETE, nullstart_date: string, format: datetarget_date: string, format: datebody: string or nullis_template: booleanGET /users/{username}/projectsV2
List all projects owned by a specific user accessible by the authenticated user.
accept (string)application/vnd.github+json is recommended.username (string) (required)
The handle for the GitHub user account.
q (string)
Limit results to projects of the specified type.
before (string)
A cursor, as given in the Link header. If specified, the query only searches for results before this cursor. For more information, see "Using pagination in the REST API."
after (string)
A cursor, as given in the Link header. If specified, the query only searches for results after this cursor. For more information, see "Using pagination in the REST API."
per_page (integer)
The number of results per page (max 100). For more information, see "Using pagination in the REST API."
Default: 30
200 - OK
304 - Not modified
401 - Requires authentication
403 - Forbidden
Request:
curl -L \
-X GET \
https://api.github.com/users/USERNAME/projectsV2
Response schema (Status: 200):
Same response schema as List projects for organization.
GET /users/{username}/projectsV2/{project_number}
Get a specific user-owned project.
accept (string)application/vnd.github+json is recommended.project_number (integer) (required)
The project's number.
username (string) (required)
The handle for the GitHub user account.
200 - OK
304 - Not modified
401 - Requires authentication
403 - Forbidden
Request:
curl -L \
-X GET \
https://api.github.com/users/USERNAME/projectsV2/PROJECT_NUMBER
Response schema (Status: 200):
Same response schema as Get project for organization.