Issues API

Every API call to issues must be authenticated.

If a user is not a member of a project and the project is private, aGETrequest on that project will result to a404status code.

Issues pagination

By default,GETrequests return 20 results at a time because the API results are paginated.

Read more onpagination.

List issues

Get all issues the authenticated user has access to. By default it returns only issues created by the current user. To get all issues, use parameterscope=all.

GET /issuesGET /issues?state=openedGET /issues?state=closedGET /issues?labels=fooGET /issues?labels=foo,barGET /issues?labels=foo,bar&state=openedGET /issues?milestone=1.0.0GET /issues?milestone=1.0.0&state=openedGET /issues?iids[]=42&iids[]=43GET /issues?author_id=5GET /issues?assignee_id=5GET /issues?my_reaction_emoji=star
Attribute Type Required Description
state string no Return all issues or just those that areopenedorclosed
labels string no Comma-separated list of label names, issues must have all labels to be returned.No+Labellists all issues with no labels
milestone string no The milestone title
scope string no Return issues for the given scope:created-by-me,assigned-to-meorall. Defaults tocreated-by-me(Introducedin GitLab 9.5)
author_id integer no Return issues created by the given userid. Combine withscope=allorscope=assigned-to-me.(Introducedin GitLab 9.5)
assignee_id integer no Return issues assigned to the given userid(Introducedin GitLab 9.5)
my_reaction_emoji string no Return issues reacted by the authenticated user by the givenemoji(Introducedin GitLab 10.0)
iids[] Array[integer] no Return only the issues having the giveniid
order_by string no Return issues ordered bycreated_atorupdated_atfields. Default iscreated_at
sort string no Return issues sorted inascordescorder. Default isdesc
search string no Search issues against theirtitleanddescription
created_after datetime no Return issues created on or after the given time
created_before datetime no Return issues created on or before the given time
updated_after datetime no Return issues updated on or after the given time
updated_before datetime no Return issues updated on or before the given time
curl--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/issues

Example response:

[{"state":"opened","description":"Ratione dolores corrupti mollitia soluta quia.","author":{"state":"active","id":18,"web_url":"https://gitlab.example.com/eileen.lowe","name":"Alexandra Bashirian","avatar_url":null,"username":"eileen.lowe"},"milestone":{"project_id":1,"description":"Ducimus nam enim ex consequatur cumque ratione.","state":"closed","due_date":null,"iid":2,"created_at":"2016-01-04T15:31:39.996Z","title":"v4.0","id":17,"updated_at":"2016-01-04T15:31:39.996Z"},"project_id":1,"assignees":[{"state":"active","id":1,"name":"Administrator","web_url":"https://gitlab.example.com/root","avatar_url":null,"username":"root"}],"assignee":{"state":"active","id":1,"name":"Administrator","web_url":"https://gitlab.example.com/root","avatar_url":null,"username":"root"},"updated_at":"2016-01-04T15:31:51.081Z","closed_at":null,"closed_by":null,"id":76,"title":"Consequatur vero maxime deserunt laboriosam est voluptas dolorem.","created_at":"2016-01-04T15:31:51.081Z","iid":6,"labels":[],"user_notes_count":1,"due_date":"2016-07-22","web_url":"http://example.com/example/example/issues/6","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"confidential":false,"discussion_locked":false}]

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

List group issues

Get a list of a group's issues.

GET /groups/:id/issuesGET /groups/:id/issues?state=openedGET /groups/:id/issues?state=closedGET /groups/:id/issues?labels=fooGET /groups/:id/issues?labels=foo,barGET /groups/:id/issues?labels=foo,bar&state=openedGET /groups/:id/issues?milestone=1.0.0GET /groups/:id/issues?milestone=1.0.0&state=openedGET /groups/:id/issues?iids[]=42&iids[]=43GET /groups/:id/issues?search=issue+title+or+descriptionGET /groups/:id/issues?author_id=5GET /groups/:id/issues?assignee_id=5GET /groups/:id/issues?my_reaction_emoji=star
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the groupowned by the authenticated user
state string no Return all issues or just those that areopenedorclosed
labels string no Comma-separated list of label names, issues must have all labels to be returned.No+Labellists all issues with no labels
iids[] Array[integer] no Return only the issues having the giveniid
milestone string no The milestone title
scope string no Return issues for the given scope:created-by-me,assigned-to-meorall(Introducedin GitLab 9.5)
author_id integer no Return issues created by the given userid(Introducedin GitLab 9.5)
assignee_id integer no Return issues assigned to the given userid(Introducedin GitLab 9.5)
my_reaction_emoji string no Return issues reacted by the authenticated user by the givenemoji(Introducedin GitLab 10.0)
order_by string no Return issues ordered bycreated_atorupdated_atfields. Default iscreated_at
sort string no Return issues sorted inascordescorder. Default isdesc
search string no Search group issues against theirtitleanddescription
created_after datetime no Return issues created on or after the given time
created_before datetime no Return issues created on or before the given time
updated_after datetime no Return issues updated on or after the given time
updated_before datetime no Return issues updated on or before the given time
curl--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/groups/4/issues

Example response:

[{"project_id":4,"milestone":{"due_date":null,"project_id":4,"state":"closed","description":"Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.","iid":3,"id":11,"title":"v3.0","created_at":"2016-01-04T15:31:39.788Z","updated_at":"2016-01-04T15:31:39.788Z"},"author":{"state":"active","web_url":"https://gitlab.example.com/root","avatar_url":null,"username":"root","id":1,"name":"Administrator"},"description":"Omnis vero earum sunt corporis dolor et placeat.","state":"closed","iid":1,"assignees":[{"avatar_url":null,"web_url":"https://gitlab.example.com/lennie","state":"active","username":"lennie","id":9,"name":"Dr. Luella Kovacek"}],"assignee":{"avatar_url":null,"web_url":"https://gitlab.example.com/lennie","state":"active","username":"lennie","id":9,"name":"Dr. Luella Kovacek"},"labels":[],"id":41,"title":"Ut commodi ullam eos dolores perferendis nihil sunt.","updated_at":"2016-01-04T15:31:46.176Z","created_at":"2016-01-04T15:31:46.176Z","closed_at":null,"closed_by":null,"user_notes_count":1,"due_date":null,"web_url":"http://example.com/example/example/issues/1","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"confidential":false,"discussion_locked":false}]

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

List project issues

Get a list of a project's issues.

GET /projects/:id/issuesGET /projects/:id/issues?state=openedGET /projects/:id/issues?state=closedGET /projects/:id/issues?labels=fooGET /projects/:id/issues?labels=foo,barGET /projects/:id/issues?labels=foo,bar&state=openedGET /projects/:id/issues?milestone=1.0.0GET /projects/:id/issues?milestone=1.0.0&state=openedGET /projects/:id/issues?iids[]=42&iids[]=43GET /projects/:id/issues?search=issue+title+or+descriptionGET /projects/:id/issues?author_id=5GET /projects/:id/issues?assignee_id=5GET /projects/:id/issues?my_reaction_emoji=star
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
iids[] Array[integer] no Return only the milestone having the giveniid
state string no Return all issues or just those that areopenedorclosed
labels string no Comma-separated list of label names, issues must have all labels to be returned.No+Labellists all issues with no labels
milestone string no The milestone title
scope string no Return issues for the given scope:created-by-me,assigned-to-meorall(Introducedin GitLab 9.5)
author_id integer no Return issues created by the given userid(Introducedin GitLab 9.5)
assignee_id integer no Return issues assigned to the given userid(Introducedin GitLab 9.5)
my_reaction_emoji string no Return issues reacted by the authenticated user by the givenemoji(Introducedin GitLab 10.0)
order_by string no Return issues ordered bycreated_atorupdated_atfields. Default iscreated_at
sort string no Return issues sorted inascordescorder. Default isdesc
search string no Search project issues against theirtitleanddescription
created_after datetime no Return issues created on or after the given time
created_before datetime no Return issues created on or before the given time
updated_after datetime no Return issues updated on or after the given time
updated_before datetime no Return issues updated on or before the given time
curl--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/4/issues

Example response:

[{"project_id":4,"milestone":{"due_date":null,"project_id":4,"state":"closed","description":"Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.","iid":3,"id":11,"title":"v3.0","created_at":"2016-01-04T15:31:39.788Z","updated_at":"2016-01-04T15:31:39.788Z"},"author":{"state":"active","web_url":"https://gitlab.example.com/root","avatar_url":null,"username":"root","id":1,"name":"Administrator"},"description":"Omnis vero earum sunt corporis dolor et placeat.","state":"closed","iid":1,"assignees":[{"avatar_url":null,"web_url":"https://gitlab.example.com/lennie","state":"active","username":"lennie","id":9,"name":"Dr. Luella Kovacek"}],"assignee":{"avatar_url":null,"web_url":"https://gitlab.example.com/lennie","state":"active","username":"lennie","id":9,"name":"Dr. Luella Kovacek"},"labels":[],"id":41,"title":"Ut commodi ullam eos dolores perferendis nihil sunt.","updated_at":"2016-01-04T15:31:46.176Z","created_at":"2016-01-04T15:31:46.176Z","closed_at":“2016 - 01 - 05 t15:31:46.176z”,"closed_by":{"state":"active","web_url":"https://gitlab.example.com/root","avatar_url":null,"username":"root","id":1,"name":"Administrator"},"user_notes_count":1,"due_date":"2016-07-22","web_url":"http://example.com/example/example/issues/1","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"confidential":false,"discussion_locked":false}]

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

Single issue

Get a single project issue.

GET /projects/:id/issues/:issue_iid
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/4/issues/41

Example response:

{"project_id":4,"milestone":{"due_date":null,"project_id":4,"state":"closed","description":"Rerum est voluptatem provident consequuntur molestias similique ipsum dolor.","iid":3,"id":11,"title":"v3.0","created_at":"2016-01-04T15:31:39.788Z","updated_at":"2016-01-04T15:31:39.788Z","closed_at":“2016 - 01 - 05 t15:31:46.176z”},"author":{"state":"active","web_url":"https://gitlab.example.com/root","avatar_url":null,"username":"root","id":1,"name":"Administrator"},"description":"Omnis vero earum sunt corporis dolor et placeat.","state":"closed","iid":1,"assignees":[{"avatar_url":null,"web_url":"https://gitlab.example.com/lennie","state":"active","username":"lennie","id":9,"name":"Dr. Luella Kovacek"}],"assignee":{"avatar_url":null,"web_url":"https://gitlab.example.com/lennie","state":"active","username":"lennie","id":9,"name":"Dr. Luella Kovacek"},"labels":[],"id":41,"title":"Ut commodi ullam eos dolores perferendis nihil sunt.","updated_at":"2016-01-04T15:31:46.176Z","created_at":"2016-01-04T15:31:46.176Z","closed_at":null,"closed_by":null,"subscribed":false,"user_notes_count":1,"due_date":null,"web_url":"http://example.com/example/example/issues/1","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"confidential":false,"discussion_locked":false,"_links":{"self":"http://example.com/api/v4/projects/1/issues/2","notes":"http://example.com/api/v4/projects/1/issues/2/notes","award_emoji":"http://example.com/api/v4/projects/1/issues/2/award_emoji","project":"http://example.com/api/v4/projects/1"}}

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

New issue

Creates a new project issue.

POST /projects/:id/issues
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
title string yes The title of an issue
description string no The description of an issue
confidential boolean no Set an issue to be confidential. Default isfalse.
assignee_ids Array[integer] no The ID of the users to assign issue
milestone_id integer no The ID of a milestone to assign issue
labels string no Comma-separated label names for an issue
created_at string no Date time string, ISO 8601 formatted, e.g.2016-03-11T03:45:40Z(requires admin or project owner rights)
due_date string no Date time string in the format YEAR-MONTH-DAY, e.g.2016-03-11
merge_request_to_resolve_discussions_of integer no 合并的IID请求解决所有issues. This will fill the issue with a default description and mark all discussions as resolved. When passing a description or title, these values will take precedence over the default values.
discussion_to_resolve string no 讨论解决的ID。这将填补in the issue with a default description and mark the discussion as resolved. Use in combination withmerge_request_to_resolve_discussions_of.
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/4/issues?title=Issues%20with%20auth&labels=bug

Example response:

{"project_id":4,"id":84,"created_at":"2016-01-07T12:44:33.959Z","iid":14,"title":"Issues with auth","state":"opened","assignees":[],"assignee":null,"labels":["bug"],"author":{"name":"Alexandra Bashirian","avatar_url":null,"state":"active","web_url":"https://gitlab.example.com/eileen.lowe","id":18,"username":"eileen.lowe"},"description":null,"updated_at":"2016-01-07T12:44:33.959Z","closed_at":null,"closed_by":null,"milestone":null,"subscribed":true,"user_notes_count":0,"due_date":null,"web_url":"http://example.com/example/example/issues/14","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"confidential":false,"discussion_locked":false,"_links":{"self":"http://example.com/api/v4/projects/1/issues/2","notes":"http://example.com/api/v4/projects/1/issues/2/notes","award_emoji":"http://example.com/api/v4/projects/1/issues/2/award_emoji","project":"http://example.com/api/v4/projects/1"}}

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

Edit issue

Updates an existing project issue. This call is also used to mark an issue as closed.

PUT /projects/:id/issues/:issue_iid
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
title string no The title of an issue
description string no The description of an issue
confidential boolean no Updates an issue to be confidential
assignee_ids Array[integer] no The ID of the user(s) to assign the issue to. Set to0or provide an empty value to unassign all assignees.
milestone_id integer no The ID of a milestone to assign the issue to. Set to0or provide an empty value to unassign a milestone.
labels string no Comma-separated label names for an issue. Set to an empty string to unassign all labels.
state_event string no The state event of an issue. Setcloseto close the issue andreopento reopen it
updated_at string no Date time string, ISO 8601 formatted, e.g.2016-03-11T03:45:40Z(requires admin or project owner rights)
due_date string no Date time string in the format YEAR-MONTH-DAY, e.g.2016-03-11
discussion_locked boolean no Flag indicating if the issue's discussion is locked. If the discussion is locked only project members can add or edit comments.
curl--requestPUT--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/4/issues/85?state_event=close

Example response:

{"created_at":"2016-01-07T12:46:01.410Z","author":{"name":"Alexandra Bashirian","avatar_url":null,"username":"eileen.lowe","id":18,"state":"active","web_url":"https://gitlab.example.com/eileen.lowe"},"state":"closed","title":"Issues with auth","project_id":4,"description":null,"updated_at":"2016-01-07T12:55:16.213Z","closed_at":"2016-01-08T12:55:16.213Z","closed_by":{"state":"active","web_url":"https://gitlab.example.com/root","avatar_url":null,"username":"root","id":1,"name":"Administrator"},"iid":15,"labels":["bug"],"id":85,"assignees":[],"assignee":null,"milestone":null,"subscribed":true,"user_notes_count":0,"due_date":"2016-07-22","web_url":"http://example.com/example/example/issues/15","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"confidential":false,"discussion_locked":false,"_links":{"self":"http://example.com/api/v4/projects/1/issues/2","notes":"http://example.com/api/v4/projects/1/issues/2/notes","award_emoji":"http://example.com/api/v4/projects/1/issues/2/award_emoji","project":"http://example.com/api/v4/projects/1"}}

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

Delete an issue

Only for admins and project owners. Soft deletes the issue in question.

DELETE /projects/:id/issues/:issue_iid
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestDELETE--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/4/issues/85

Move an issue

Moves an issue to a different project. If the target project equals the source project or the user has insufficient permissions to move an issue, error400together with an explaining error message is returned.

If a given label and/or milestone with the same name also exists in the target project, it will then be assigned to the issue that is being moved.

POST /projects/:id/issues/:issue_iid/move
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
to_project_id integer yes The ID of the new project
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"--data'{"to_project_id": 5}'https: //gitlab.example.com/api/v4/projects/4/issues/85/move

Example response:

{"id":92,"iid":11,"project_id":5,"title":"Sit voluptas tempora quisquam aut doloribus et.","description":"Repellat voluptas quibusdam voluptatem exercitationem.","state":"opened","created_at":"2016-04-05T21:41:45.652Z","updated_at":"2016-04-07T12:20:17.596Z","closed_at":null,"closed_by":null,"labels":[],"milestone":null,"assignees":[{"name":"Miss Monserrate Beier","username":"axel.block","id":12,"state":"active","avatar_url":"http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon","web_url":"https://gitlab.example.com/axel.block"}],"assignee":{"name":"Miss Monserrate Beier","username":"axel.block","id":12,"state":"active","avatar_url":"http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon","web_url":"https://gitlab.example.com/axel.block"},"author":{"name":"Kris Steuber","username":"solon.cremin","id":10,"state":"active","avatar_url":"http://www.gravatar.com/avatar/7a190fecbaa68212a4b68aeb6e3acd10?s=80&d=identicon","web_url":"https://gitlab.example.com/solon.cremin"},"due_date":null,"web_url":"http://example.com/example/example/issues/11","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"confidential":false,"discussion_locked":false,"_links":{"self":"http://example.com/api/v4/projects/1/issues/2","notes":"http://example.com/api/v4/projects/1/issues/2/notes","award_emoji":"http://example.com/api/v4/projects/1/issues/2/award_emoji","project":"http://example.com/api/v4/projects/1"}}

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

Subscribe to an issue

Subscribes the authenticated user to an issue to receive notifications. If the user is already subscribed to the issue, the status code304is returned.

POST /projects/:id/issues/:issue_iid/subscribe
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/subscribe

Example response:

{"id":92,"iid":11,"project_id":5,"title":"Sit voluptas tempora quisquam aut doloribus et.","description":"Repellat voluptas quibusdam voluptatem exercitationem.","state":"opened","created_at":"2016-04-05T21:41:45.652Z","updated_at":"2016-04-07T12:20:17.596Z","closed_at":null,"closed_by":null,"labels":[],"milestone":null,"assignees":[{"name":"Miss Monserrate Beier","username":"axel.block","id":12,"state":"active","avatar_url":"http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon","web_url":"https://gitlab.example.com/axel.block"}],"assignee":{"name":"Miss Monserrate Beier","username":"axel.block","id":12,"state":"active","avatar_url":"http://www.gravatar.com/avatar/46f6f7dc858ada7be1853f7fb96e81da?s=80&d=identicon","web_url":"https://gitlab.example.com/axel.block"},"author":{"name":"Kris Steuber","username":"solon.cremin","id":10,"state":"active","avatar_url":"http://www.gravatar.com/avatar/7a190fecbaa68212a4b68aeb6e3acd10?s=80&d=identicon","web_url":"https://gitlab.example.com/solon.cremin"},"due_date":null,"web_url":"http://example.com/example/example/issues/11","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"confidential":false,"discussion_locked":false,"_links":{"self":"http://example.com/api/v4/projects/1/issues/2","notes":"http://example.com/api/v4/projects/1/issues/2/notes","award_emoji":"http://example.com/api/v4/projects/1/issues/2/award_emoji","project":"http://example.com/api/v4/projects/1"}}

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

Unsubscribe from an issue

Unsubscribes the authenticated user from the issue to not receive notifications from it. If the user is not subscribed to the issue, the status code304is returned.

POST /projects/:id/issues/:issue_iid/unsubscribe
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/unsubscribe

Example response:

{"id":93,"iid":12,"project_id":5,"title":"Incidunt et rerum ea expedita iure quibusdam.","description":"Et cumque architecto sed aut ipsam.","state":"opened","created_at":"2016-04-05T21:41:45.217Z","updated_at":"2016-04-07T13:02:37.905Z","labels":[],"milestone":null,"assignee":{"name":"Edwardo Grady","username":"keyon","id":21,"state":"active","avatar_url":"http://www.gravatar.com/avatar/3e6f06a86cf27fa8b56f3f74f7615987?s=80&d=identicon","web_url":"https://gitlab.example.com/keyon"},"closed_at":null,"closed_by":null,"author":{"name":"Vivian Hermann","username":"orville","id":11,"state":"active","avatar_url":"http://www.gravatar.com/avatar/5224fd70153710e92fb8bcf79ac29d67?s=80&d=identicon","web_url":"https://gitlab.example.com/orville"},"subscribed":false,"due_date":null,"web_url":"http://example.com/example/example/issues/12","confidential":false,"discussion_locked":false}

Create a todo

Manually creates a todo for the current user on an issue. If there already exists a todo for the user on that issue, status code304is returned.

POST /projects/:id/issues/:issue_iid/todo
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/todo

Example response:

{"id":112,"project":{"id":5,"name":"Gitlab Ci","name_with_namespace":"Gitlab Org / Gitlab Ci","path":"gitlab-ci","path_with_namespace":"gitlab-org/gitlab-ci"},"author":{"name":"Administrator","username":"root","id":1,"state":"active","avatar_url":"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon","web_url":"https://gitlab.example.com/root"},"action_name":"marked","target_type":"Issue","target":{"id":93,"iid":10,"project_id":5,"title":"Vel voluptas atque dicta mollitia adipisci qui at.","description":"Tempora laboriosam sint magni sed voluptas similique.","state":"closed","created_at":"2016-06-17T07:47:39.486Z","updated_at":"2016-07-01T11:09:13.998Z","labels":[],"milestone":{"id":26,"iid":1,"project_id":5,"title":"v0.0","description":"Accusantium nostrum rerum quae quia quis nesciunt suscipit id.","state":"closed","created_at":"2016-06-17T07:47:33.832Z","updated_at":"2016-06-17T07:47:33.832Z","due_date":null},"assignees":[{"name":"Jarret O'Keefe","username":"francisca","id":14,"state":"active","avatar_url":"http://www.gravatar.com/avatar/a7fa515d53450023c83d62986d0658a8?s=80&d=identicon","web_url":"https://gitlab.example.com/francisca"}],"assignee":{"name":"Jarret O'Keefe","username":"francisca","id":14,"state":"active","avatar_url":"http://www.gravatar.com/avatar/a7fa515d53450023c83d62986d0658a8?s=80&d=identicon","web_url":"https://gitlab.example.com/francisca"},"author":{"name":"Maxie Medhurst","username":"craig_rutherford","id":12,"state":"active","avatar_url":"http://www.gravatar.com/avatar/a0d477b3ea21970ce6ffcbb817b0b435?s=80&d=identicon","web_url":"https://gitlab.example.com/craig_rutherford"},"subscribed":true,"user_notes_count":7,"upvotes":0,"downvotes":0,"due_date":null,"web_url":"http://example.com/example/example/issues/110","confidential":false,"discussion_locked":false},"target_url":"https://gitlab.example.com/gitlab-org/gitlab-ci/issues/10","body":"Vel voluptas atque dicta mollitia adipisci qui at.","state":"pending","created_at":"2016-07-01T11:09:13.992Z"}

Note:assigneecolumn is deprecated, now we show it as a single-sized array因此可to conform to the GitLab EE API.

Note: Theclosed_byattribute wasintroduced in GitLab 10.6. This value will only be present for issues which were closed after GitLab 10.6 and when the user account that closed the issue still exists.

Set a time estimate for an issue

Sets an estimated time of work for this issue.

POST /projects/:id/issues/:issue_iid/time_estimate
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
duration string yes The duration in human format. e.g: 3h30m
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/time_estimate?duration=3 h30m

Example response:

{"human_time_estimate":"3h 30m","human_total_time_spent":null,"time_estimate":12600,"total_time_spent":0}

Reset the time estimate for an issue

Resets the estimated time for this issue to 0 seconds.

POST /projects/:id/issues/:issue_iid/reset_time_estimate
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/reset_time_estimate

Example response:

{"human_time_estimate":null,"human_total_time_spent":null,"time_estimate":0,"total_time_spent":0}

Add spent time for an issue

Adds spent time for this issue

POST /projects/:id/issues/:issue_iid/add_spent_time
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
duration string yes The duration in human format. e.g: 3h30m
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/add_spent_time?duration=1h

Example response:

{"human_time_estimate":null,"human_total_time_spent":"1h","time_estimate":0,"total_time_spent":3600}

Reset spent time for an issue

Resets the total spent time for this issue to 0 seconds.

POST /projects/:id/issues/:issue_iid/reset_spent_time
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestPOST--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/reset_spent_time

Example response:

{"human_time_estimate":null,"human_total_time_spent":null,"time_estimate":0,"total_time_spent":0}

Get time tracking stats

GET /projects/:id/issues/:issue_iid/time_stats
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestGET--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/time_stats

Example response:

{"human_time_estimate":"2h","human_total_time_spent":"1h","time_estimate":7200,"total_time_spent":3600}

List merge requests that will close issue on merge

Get all the merge requests that will close issue when merged.

GET /projects/:id/issues/:issue_iid/closed_by
Attribute Type Required Description
id integer yes The ID of a project
issue_iid integer yes The internal ID of a project issue
curl--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/1/issues/11/closed_by

Example response:

[{"id":6471,"iid":6432,"project_id":1,"title":"add a test for cgi lexer options","description":"closes #11","state":"opened","created_at":"2017-04-06T18:33:34.168Z","updated_at":"2017-04-09T20:10:24.983Z","target_branch":"master","source_branch":"feature.custom-highlighting","upvotes":0,"downvotes":0,"author":{"name":"Administrator","username":"root","id":1,"state":"active","avatar_url":"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon","web_url":"https://gitlab.example.com/root"},"assignee":null,"source_project_id":1,"target_project_id":1,"closed_at":null,"closed_by":null,"labels":[],"work_in_progress":false,"milestone":null,"merge_when_pipeline_succeeds":false,"merge_status":"unchecked","sha":"5a62481d563af92b8e32d735f2fa63b94e806835","merge_commit_sha":null,"user_notes_count":1,"should_remove_source_branch":null,"force_remove_source_branch":false,"web_url":"https://gitlab.example.com/gitlab-org/gitlab-test/merge_requests/6432","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null}}]

Participants on issues

GET /projects/:id/issues/:issue_iid/participants
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestGET--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/participants

Example response:

[{"id":1,"name":"John Doe1","username":"user1","state":"active","avatar_url":"http://www.gravatar.com/avatar/c922747a93b40d1ea88262bf1aebee62?s=80&d=identicon","web_url":"http://localhost/user1"},{"id":5,"name":"John Doe5","username":"user5","state":"active","avatar_url":"http://www.gravatar.com/avatar/4aea8cf834ed91844a2da4ff7ae6b491?s=80&d=identicon","web_url":"http://localhost/user5"}]

Comments on issues

Comments are done via thenotesresource.

Get user agent details

Available only for admins.

GET /projects/:id/issues/:issue_iid/user_agent_detail
Attribute Type Required Description
id integer/string yes The ID orURL-encoded path of the projectowned by the authenticated user
issue_iid integer yes The internal ID of a project's issue
curl--requestGET--header"PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK"https: //gitlab.example.com/api/v4/projects/5/issues/93/user_agent_detail

Example response:

{"user_agent":"AppleWebKit/537.36","ip_address":"127.0.0.1","akismet_submitted":false}
Baidu
map