Use the REST API to view, add, and remove issue dependencies.
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 /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by
You can use the REST API to list the dependencies an issue is blocked by.
This endpoint supports the following custom media types. For more information, see Media types.
application/vnd.github.raw+json: Returns the raw Markdown body. Response will include body. This is the default if you do not pass any specific media type.
application/vnd.github.text+json: Returns a text only representation of the Markdown body. Response will include body_text.
application/vnd.github.html+json: Returns HTML rendered from the body's Markdown. Response will include body_html.
application/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body_text, and body_html.
accept (string)application/vnd.github+json is recommended.owner (string) (required)
The account owner of the repository. The name is not case sensitive.
repo (string) (required)
The name of the repository without the .git extension. The name is not case sensitive.
issue_number (integer) (required)
The number that identifies the issue.
per_page (integer)
The number of results per page (max 100). For more information, see "Using pagination in the REST API."
Default: 30
page (integer)
The page number of the results to fetch. For more information, see "Using pagination in the REST API."
Default: 1
200 - OK
301 - Moved permanently
404 - Resource not found
410 - Gone
Request:
curl -L \
-X GET \
https://api.github.com/repos/OWNER/REPO/issues/ISSUE_NUMBER/dependencies/blocked_by
Response schema (Status: 200):
Array of Issue:
id: required, integer, format: int64node_id: required, stringurl: required, string, format: urirepository_url: required, string, format: urilabels_url: required, stringcomments_url: required, string, format: urievents_url: required, string, format: urihtml_url: required, string, format: urinumber: required, integerstate: required, stringstate_reason: string or null, enum: completed, reopened, not_planned, duplicate, nulltitle: required, stringbody: string or nulluser: required, any of:
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: stringlabels: required, array of items:
id: integer, format: int64node_id: stringurl: string, format: uriname: stringdescription: string or nullcolor: string or nulldefault: booleanarchived_by: all of:
assignees: array of Simple User (see above)milestone: required, any of:
url: required, string, format: urihtml_url: required, string, format: urilabels_url: required, string, format: uriid: required, integernode_id: required, stringnumber: required, integerstate: required, string, enum: open, closed, default: "open"title: required, stringdescription: required, string or nullcreator: required, any of:
open_issues: required, integerclosed_issues: required, integercreated_at: required, string, format: date-timeupdated_at: required, string, format: date-timeclosed_at: required, string or null, format: date-timedue_on: required, string or null, format: date-timelocked: required, booleanactive_lock_reason: string or nullcomments: required, integerpull_request: object:
merged_at: string or null, format: date-timediff_url: required, string or null, format: urihtml_url: required, string or null, format: uripatch_url: required, string or null, format: uriurl: required, string or null, format: uriclosed_at: required, string or null, format: date-timecreated_at: required, string, format: date-timeupdated_at: required, string, format: date-timedraft: booleanclosed_by: any of:
body_html: stringbody_text: stringtimeline_url: string, format: uritype: Issue Type:
id: required, integernode_id: required, stringname: required, stringdescription: required, string or nullcolor: string or null, enum: gray, blue, green, yellow, orange, red, pink, purple, nullcreated_at: string, format: date-timeupdated_at: string, format: date-timeis_enabled: booleanrepository: Repository:
id: required, integer, format: int64node_id: required, stringname: required, stringfull_name: required, stringlicense: required, any of:
key: required, stringname: required, stringurl: required, string or null, format: urispdx_id: required, string or nullnode_id: required, stringhtml_url: string, format: uriforks: required, integerpermissions: object:
admin: required, booleanpull: required, booleantriage: booleanpush: required, booleanmaintain: booleanowner: required, Simple User (see above)private: required, boolean, default: falsehtml_url: required, string, format: uridescription: required, string or nullfork: required, booleanurl: required, string, format: uriarchive_url: required, stringassignees_url: required, stringblobs_url: required, stringbranches_url: required, stringcollaborators_url: required, stringcomments_url: required, stringcommits_url: required, stringcompare_url: required, stringcontents_url: required, stringcontributors_url: required, string, format: urideployments_url: required, string, format: uridownloads_url: required, string, format: urievents_url: required, string, format: uriforks_url: required, string, format: urigit_commits_url: required, stringgit_refs_url: required, stringgit_tags_url: required, stringgit_url: required, stringissue_comment_url: required, stringissue_events_url: required, stringissues_url: required, stringkeys_url: required, stringlabels_url: required, stringlanguages_url: required, string, format: urimerges_url: required, string, format: urimilestones_url: required, stringnotifications_url: required, stringpulls_url: required, stringreleases_url: required, stringssh_url: required, stringstargazers_url: required, string, format: uristatuses_url: required, stringsubscribers_url: required, string, format: urisubscription_url: required, string, format: uritags_url: required, string, format: uriteams_url: required, string, format: uritrees_url: required, stringclone_url: required, stringmirror_url: required, string or null, format: urihooks_url: required, string, format: urisvn_url: required, string, format: urihomepage: required, string or null, format: urilanguage: required, string or nullforks_count: required, integerstargazers_count: required, integerwatchers_count: required, integersize: required, integerdefault_branch: required, stringopen_issues_count: required, integeris_template: boolean, default: falsetopics: array of stringhas_issues: required, boolean, default: truehas_projects: required, boolean, default: truehas_wiki: required, boolean, default: truehas_pages: required, booleanhas_discussions: boolean, default: falsehas_pull_requests: boolean, default: truepull_request_creation_policy: string, enum: all, collaborators_onlyarchived: required, boolean, default: falsedisabled: required, booleanvisibility: string, default: "public"pushed_at: required, string or null, format: date-timecreated_at: required, string or null, format: date-timeupdated_at: required, string or null, format: date-timeallow_rebase_merge: boolean, default: truetemp_clone_token: stringallow_squash_merge: boolean, default: trueallow_auto_merge: boolean, default: falsedelete_branch_on_merge: boolean, default: falseallow_update_branch: boolean, default: falsesquash_merge_commit_title: string, enum: PR_TITLE, COMMIT_OR_PR_TITLEsquash_merge_commit_message: string, enum: PR_BODY, COMMIT_MESSAGES, BLANKmerge_commit_title: string, enum: PR_TITLE, MERGE_MESSAGEmerge_commit_message: string, enum: PR_BODY, PR_TITLE, BLANKallow_merge_commit: boolean, default: trueallow_forking: booleanweb_commit_signoff_required: boolean, default: falseopen_issues: required, integerwatchers: required, integerstarred_at: stringanonymous_access_enabled: booleancode_search_index_status: object:
lexical_search_ok: booleanlexical_commit_sha: stringperformed_via_github_app: any of:
id: required, integerslug: stringnode_id: required, stringclient_id: stringowner: required, one of:
description: string or nullhtml_url: required, string, format: uriwebsite_url: string or null, format: uriid: required, integernode_id: required, stringname: required, stringslug: required, stringcreated_at: required, string or null, format: date-timeupdated_at: required, string or null, format: date-timeavatar_url: required, string, format: uriname: required, stringdescription: required, string or nullexternal_url: required, string, format: urihtml_url: required, string, format: uricreated_at: required, string, format: date-timeupdated_at: required, string, format: date-timepermissions: required, object, additional properties: string:
issues: stringchecks: stringmetadata: stringcontents: stringdeployments: stringevents: required, array of stringinstallations_count: integerauthor_association: string, enum: COLLABORATOR, CONTRIBUTOR, FIRST_TIMER, FIRST_TIME_CONTRIBUTOR, MANNEQUIN, MEMBER, NONE, OWNERreactions: Reaction Rollup:
url: required, string, format: uritotal_count: required, integer+1: required, integer-1: required, integerlaugh: required, integerconfused: required, integerheart: required, integerhooray: required, integereyes: required, integerrocket: required, integersub_issues_summary: Sub-issues Summary:
total: required, integercompleted: required, integerpercent_completed: required, integerparent_issue_url: string or null, format: uripinned_comment: any of:
id: required, integer, format: int64node_id: required, stringurl: required, string, format: uribody: stringbody_text: stringbody_html: stringhtml_url: required, string, format: uriuser: required, any of:
created_at: required, string, format: date-timeupdated_at: required, string, format: date-timeissue_url: required, string, format: uriauthor_association: string, enum: COLLABORATOR, CONTRIBUTOR, FIRST_TIMER, FIRST_TIME_CONTRIBUTOR, MANNEQUIN, MEMBER, NONE, OWNERperformed_via_github_app: any of:
reactions: Reaction Rollup (see above)pin: any of:
pinned_at: required, string, format: date-timepinned_by: required, any of:
minimized: any of:
reason: required, string or nullissue_dependencies_summary: Issue Dependencies Summary:
blocked_by: required, integerblocking: required, integertotal_blocked_by: required, integertotal_blocking: required, integerissue_field_values: array of Issue Field Value:
issue_field_id: required, integer, format: int64issue_field_name: stringnode_id: required, stringdata_type: required, string, enum: text, single_select, multi_select, number, datevalue: required, any of:
single_select_option: object or null:
id: required, integer, format: int64name: required, stringcolor: required, stringmulti_select_options: array of objects or null:
id: required, integer, format: int64name: required, stringcolor: required, stringPOST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by
You can use the REST API to add a 'blocked by' relationship to an issue.
Creating content too quickly using this endpoint may result in secondary rate limiting.
For more information, see Rate limits for the API
and Best practices for using the REST API.
This endpoint supports the following custom media types. For more information, see Media types.
application/vnd.github.raw+json: Returns the raw Markdown body. Response will include body. This is the default if you do not pass any specific media type.
application/vnd.github.text+json: Returns a text only representation of the Markdown body. Response will include body_text.
application/vnd.github.html+json: Returns HTML rendered from the body's Markdown. Response will include body_html.
application/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body_text, and body_html.
accept (string)application/vnd.github+json is recommended.owner (string) (required)
The account owner of the repository. The name is not case sensitive.
repo (string) (required)
The name of the repository without the .git extension. The name is not case sensitive.
issue_number (integer) (required)
The number that identifies the issue.
issue_id (integer) (required)201 - Created
301 - Moved permanently
403 - Forbidden
404 - Resource not found
410 - Gone
422 - Validation failed, or the endpoint has been spammed.
Request:
curl -L \
-X POST \
https://api.github.com/repos/OWNER/REPO/issues/ISSUE_NUMBER/dependencies/blocked_by \
-d '{
"issue_id": 1
}'
Response schema (Status: 201):
id: required, integer, format: int64node_id: required, stringurl: required, string, format: urirepository_url: required, string, format: urilabels_url: required, stringcomments_url: required, string, format: urievents_url: required, string, format: urihtml_url: required, string, format: urinumber: required, integerstate: required, stringstate_reason: string or null, enum: completed, reopened, not_planned, duplicate, nulltitle: required, stringbody: string or nulluser: required, any of:
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: stringlabels: required, array of items:
id: integer, format: int64node_id: stringurl: string, format: uriname: stringdescription: string or nullcolor: string or nulldefault: booleanarchived_by: all of:
assignees: array of Simple User (see above)milestone: required, any of:
url: required, string, format: urihtml_url: required, string, format: urilabels_url: required, string, format: uriid: required, integernode_id: required, stringnumber: required, integerstate: required, string, enum: open, closed, default: "open"title: required, stringdescription: required, string or nullcreator: required, any of:
open_issues: required, integerclosed_issues: required, integercreated_at: required, string, format: date-timeupdated_at: required, string, format: date-timeclosed_at: required, string or null, format: date-timedue_on: required, string or null, format: date-timelocked: required, booleanactive_lock_reason: string or nullcomments: required, integerpull_request: object:
merged_at: string or null, format: date-timediff_url: required, string or null, format: urihtml_url: required, string or null, format: uripatch_url: required, string or null, format: uriurl: required, string or null, format: uriclosed_at: required, string or null, format: date-timecreated_at: required, string, format: date-timeupdated_at: required, string, format: date-timedraft: booleanclosed_by: any of:
body_html: stringbody_text: stringtimeline_url: string, format: uritype: Issue Type:
id: required, integernode_id: required, stringname: required, stringdescription: required, string or nullcolor: string or null, enum: gray, blue, green, yellow, orange, red, pink, purple, nullcreated_at: string, format: date-timeupdated_at: string, format: date-timeis_enabled: booleanrepository: Repository:
id: required, integer, format: int64node_id: required, stringname: required, stringfull_name: required, stringlicense: required, any of:
key: required, stringname: required, stringurl: required, string or null, format: urispdx_id: required, string or nullnode_id: required, stringhtml_url: string, format: uriforks: required, integerpermissions: object:
admin: required, booleanpull: required, booleantriage: booleanpush: required, booleanmaintain: booleanowner: required, Simple User (see above)private: required, boolean, default: falsehtml_url: required, string, format: uridescription: required, string or nullfork: required, booleanurl: required, string, format: uriarchive_url: required, stringassignees_url: required, stringblobs_url: required, stringbranches_url: required, stringcollaborators_url: required, stringcomments_url: required, stringcommits_url: required, stringcompare_url: required, stringcontents_url: required, stringcontributors_url: required, string, format: urideployments_url: required, string, format: uridownloads_url: required, string, format: urievents_url: required, string, format: uriforks_url: required, string, format: urigit_commits_url: required, stringgit_refs_url: required, stringgit_tags_url: required, stringgit_url: required, stringissue_comment_url: required, stringissue_events_url: required, stringissues_url: required, stringkeys_url: required, stringlabels_url: required, stringlanguages_url: required, string, format: urimerges_url: required, string, format: urimilestones_url: required, stringnotifications_url: required, stringpulls_url: required, stringreleases_url: required, stringssh_url: required, stringstargazers_url: required, string, format: uristatuses_url: required, stringsubscribers_url: required, string, format: urisubscription_url: required, string, format: uritags_url: required, string, format: uriteams_url: required, string, format: uritrees_url: required, stringclone_url: required, stringmirror_url: required, string or null, format: urihooks_url: required, string, format: urisvn_url: required, string, format: urihomepage: required, string or null, format: urilanguage: required, string or nullforks_count: required, integerstargazers_count: required, integerwatchers_count: required, integersize: required, integerdefault_branch: required, stringopen_issues_count: required, integeris_template: boolean, default: falsetopics: array of stringhas_issues: required, boolean, default: truehas_projects: required, boolean, default: truehas_wiki: required, boolean, default: truehas_pages: required, booleanhas_discussions: boolean, default: falsehas_pull_requests: boolean, default: truepull_request_creation_policy: string, enum: all, collaborators_onlyarchived: required, boolean, default: falsedisabled: required, booleanvisibility: string, default: "public"pushed_at: required, string or null, format: date-timecreated_at: required, string or null, format: date-timeupdated_at: required, string or null, format: date-timeallow_rebase_merge: boolean, default: truetemp_clone_token: stringallow_squash_merge: boolean, default: trueallow_auto_merge: boolean, default: falsedelete_branch_on_merge: boolean, default: falseallow_update_branch: boolean, default: falsesquash_merge_commit_title: string, enum: PR_TITLE, COMMIT_OR_PR_TITLEsquash_merge_commit_message: string, enum: PR_BODY, COMMIT_MESSAGES, BLANKmerge_commit_title: string, enum: PR_TITLE, MERGE_MESSAGEmerge_commit_message: string, enum: PR_BODY, PR_TITLE, BLANKallow_merge_commit: boolean, default: trueallow_forking: booleanweb_commit_signoff_required: boolean, default: falseopen_issues: required, integerwatchers: required, integerstarred_at: stringanonymous_access_enabled: booleancode_search_index_status: object:
lexical_search_ok: booleanlexical_commit_sha: stringperformed_via_github_app: any of:
id: required, integerslug: stringnode_id: required, stringclient_id: stringowner: required, one of:
description: string or nullhtml_url: required, string, format: uriwebsite_url: string or null, format: uriid: required, integernode_id: required, stringname: required, stringslug: required, stringcreated_at: required, string or null, format: date-timeupdated_at: required, string or null, format: date-timeavatar_url: required, string, format: uriname: required, stringdescription: required, string or nullexternal_url: required, string, format: urihtml_url: required, string, format: uricreated_at: required, string, format: date-timeupdated_at: required, string, format: date-timepermissions: required, object, additional properties: string:
issues: stringchecks: stringmetadata: stringcontents: stringdeployments: stringevents: required, array of stringinstallations_count: integerauthor_association: string, enum: COLLABORATOR, CONTRIBUTOR, FIRST_TIMER, FIRST_TIME_CONTRIBUTOR, MANNEQUIN, MEMBER, NONE, OWNERreactions: Reaction Rollup:
url: required, string, format: uritotal_count: required, integer+1: required, integer-1: required, integerlaugh: required, integerconfused: required, integerheart: required, integerhooray: required, integereyes: required, integerrocket: required, integersub_issues_summary: Sub-issues Summary:
total: required, integercompleted: required, integerpercent_completed: required, integerparent_issue_url: string or null, format: uripinned_comment: any of:
id: required, integer, format: int64node_id: required, stringurl: required, string, format: uribody: stringbody_text: stringbody_html: stringhtml_url: required, string, format: uriuser: required, any of:
created_at: required, string, format: date-timeupdated_at: required, string, format: date-timeissue_url: required, string, format: uriauthor_association: string, enum: COLLABORATOR, CONTRIBUTOR, FIRST_TIMER, FIRST_TIME_CONTRIBUTOR, MANNEQUIN, MEMBER, NONE, OWNERperformed_via_github_app: any of:
reactions: Reaction Rollup (see above)pin: any of:
pinned_at: required, string, format: date-timepinned_by: required, any of:
minimized: any of:
reason: required, string or nullissue_dependencies_summary: Issue Dependencies Summary:
blocked_by: required, integerblocking: required, integertotal_blocked_by: required, integertotal_blocking: required, integerissue_field_values: array of Issue Field Value:
issue_field_id: required, integer, format: int64issue_field_name: stringnode_id: required, stringdata_type: required, string, enum: text, single_select, multi_select, number, datevalue: required, any of:
single_select_option: object or null:
id: required, integer, format: int64name: required, stringcolor: required, stringmulti_select_options: array of objects or null:
id: required, integer, format: int64name: required, stringcolor: required, stringDELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}
You can use the REST API to remove a dependency that an issue is blocked by.
Removing content too quickly using this endpoint may result in secondary rate limiting.
For more information, see Rate limits for the API
and Best practices for using the REST API.
This endpoint supports the following custom media types. For more information, see Media types.
application/vnd.github.raw+json: Returns the raw Markdown body. Response will include body. This is the default if you do not pass a specific media type.
application/vnd.github.text+json: Returns a text only representation of the Markdown body. Response will include body_text.
application/vnd.github.html+json: Returns HTML rendered from the body's Markdown. Response will include body_html.
application/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body_text, and body_html.
accept (string)application/vnd.github+json is recommended.owner (string) (required)
The account owner of the repository. The name is not case sensitive.
repo (string) (required)
The name of the repository without the .git extension. The name is not case sensitive.
issue_number (integer) (required)
The number that identifies the issue.
issue_id (integer) (required)
The id of the blocking issue to remove as a dependency
200 - OK
301 - Moved permanently
400 - Bad Request
401 - Requires authentication
403 - Forbidden
404 - Resource not found
410 - Gone
Request:
curl -L \
-X DELETE \
https://api.github.com/repos/OWNER/REPO/issues/ISSUE_NUMBER/dependencies/blocked_by/ISSUE_ID
Response schema (Status: 200):
Same response schema as Add a dependency an issue is blocked by.
GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking
You can use the REST API to list the dependencies an issue is blocking.
This endpoint supports the following custom media types. For more information, see Media types.
application/vnd.github.raw+json: Returns the raw Markdown body. Response will include body. This is the default if you do not pass any specific media type.
application/vnd.github.text+json: Returns a text only representation of the Markdown body. Response will include body_text.
application/vnd.github.html+json: Returns HTML rendered from the body's Markdown. Response will include body_html.
application/vnd.github.full+json: Returns raw, text, and HTML representations. Response will include body, body_text, and body_html.
accept (string)application/vnd.github+json is recommended.owner (string) (required)
The account owner of the repository. The name is not case sensitive.
repo (string) (required)
The name of the repository without the .git extension. The name is not case sensitive.
issue_number (integer) (required)
The number that identifies the issue.
per_page (integer)
The number of results per page (max 100). For more information, see "Using pagination in the REST API."
Default: 30
page (integer)
The page number of the results to fetch. For more information, see "Using pagination in the REST API."
Default: 1
200 - OK
301 - Moved permanently
404 - Resource not found
410 - Gone
Request:
curl -L \
-X GET \
https://api.github.com/repos/OWNER/REPO/issues/ISSUE_NUMBER/dependencies/blocking
Response schema (Status: 200):
Same response schema as List dependencies an issue is blocked by.