Events API
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Use this API to review event activity. Events can include a wide range of actions including things like joining projects, commenting on issues, pushing changes to MRs, or closing epics.
For information about activity retention limits, see:
List all events
Lists all events for the currently authenticated user. Does not return events associated with epics.
Prerequisites:
- Your access token must have either the
read_user
orapi
scope.
GET /events
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
action | string | no | If defined, returns events with the specified action type. |
target_type | string | no | If defined, returns events with the specified target type. |
before | date (ISO 8601) | no | If defined, returns tokens created before the specified date. |
after | date (ISO 8601) | no | If defined, returns tokens created after the specified date. |
scope | string | no | Include all events across a user’s projects. |
sort | string | no | Direction to sort the results by creation date. Possible values: asc , desc . Default: desc . |
Example request:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/events?target_type=issue&action=created&after=2017-01-31&before=2017-03-01&scope=all"
Example response:
[
{
"id": 1,
"title":null,
"project_id":1,
"action_name":"opened",
"target_id":160,
"target_iid":53,
"target_type":"Issue",
"author_id":25,
"target_title":"Qui natus eos odio tempore et quaerat consequuntur ducimus cupiditate quis.",
"created_at":"2017-02-09T10:43:19.667Z",
"author":{
"name":"User 3",
"username":"user3",
"id":25,
"state":"active",
"avatar_url":"http://www.gravatar.com/avatar/97d6d9441ff85fdc730e02a6068d267b?s=80\u0026d=identicon",
"web_url":"https://gitlab.example.com/user3"
},
"author_username":"user3",
"imported":false,
"imported_from": "none"
},
{
"id": 2,
"title":null,
"project_id":1,
"action_name":"opened",
"target_id":159,
"target_iid":14,
"target_type":"Issue",
"author_id":21,
"target_title":"Nostrum enim non et sed optio illo deleniti non.",
"created_at":"2017-02-09T10:43:19.426Z",
"author":{
"name":"Test User",
"username":"ted",
"id":21,
"state":"active",
"avatar_url":"http://www.gravatar.com/avatar/80fb888c9a48b9a3f87477214acaa63f?s=80\u0026d=identicon",
"web_url":"https://gitlab.example.com/ted"
},
"author_username":"ted",
"imported":false,
"imported_from": "none"
}
]
Get contribution events for a user
Gets the contribution events for a specified user. Does not return events associated with epics.
Prerequisites:
- Your access token must have either the
read_user
orapi
scope.
GET /users/:id/events
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
id | integer | yes | ID or Username of a user. |
action | string | no | If defined, returns events with the specified action type. |
target_type | string | no | If defined, returns events with the specified target type. |
before | date (ISO 8601) | no | If defined, returns tokens created before the specified date. |
after | date (ISO 8601) | no | If defined, returns tokens created after the specified date. |
sort | string | no | Direction to sort the results by creation date. Possible values: asc , desc . Default: desc . |
page | integer | no | Returns the specified results page. Default: 1 . |
per_page | integer | no | Number of results per page. Default: 20 . |
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/users/:id/events"
Example response:
[
{
"id": 3,
"title": null,
"project_id": 15,
"action_name": "closed",
"target_id": 830,
"target_iid": 82,
"target_type": "Issue",
"author_id": 1,
"target_title": "Public project search field",
"author": {
"name": "Dmitriy Zaporozhets",
"username": "root",
"id": 1,
"state": "active",
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/fox_avatar.png",
"web_url": "http://localhost:3000/root"
},
"author_username": "root",
"imported": false,
"imported_from": "none"
},
{
"id": 4,
"title": null,
"project_id": 15,
"action_name": "pushed",
"target_id": null,
"target_iid": null,
"target_type": null,
"author_id": 1,
"author": {
"name": "Dmitriy Zaporozhets",
"username": "root",
"id": 1,
"state": "active",
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/fox_avatar.png",
"web_url": "http://localhost:3000/root"
},
"author_username": "john",
"imported": false,
"imported_from": "none",
"push_data": {
"commit_count": 1,
"action": "pushed",
"ref_type": "branch",
"commit_from": "50d4420237a9de7be1304607147aec22e4a14af7",
"commit_to": "c5feabde2d8cd023215af4d2ceeb7a64839fc428",
"ref": "main",
"commit_title": "Add simple search to projects in public area"
},
"target_title": null
},
{
"id": 5,
"title": null,
"project_id": 15,
"action_name": "closed",
"target_id": 840,
"target_iid": 11,
"target_type": "Issue",
"author_id": 1,
"target_title": "Finish & merge Code search PR",
"author": {
"name": "Dmitriy Zaporozhets",
"username": "root",
"id": 1,
"state": "active",
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/fox_avatar.png",
"web_url": "http://localhost:3000/root"
},
"author_username": "root",
"imported": false,
"imported_from": "none"
},
{
"id": 7,
"title": null,
"project_id": 15,
"action_name": "commented on",
"target_id": 1312,
"target_iid": 61,
"target_type": "Note",
"author_id": 1,
"target_title": null,
"created_at": "2015-12-04T10:33:58.089Z",
"note": {
"id": 1312,
"body": "What an awesome day!",
"attachment": null,
"author": {
"name": "Dmitriy Zaporozhets",
"username": "root",
"id": 1,
"state": "active",
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/fox_avatar.png",
"web_url": "http://localhost:3000/root"
},
"created_at": "2015-12-04T10:33:56.698Z",
"system": false,
"noteable_id": 377,
"noteable_type": "Issue"
},
"author": {
"name": "Dmitriy Zaporozhets",
"username": "root",
"id": 1,
"state": "active",
"avatar_url": "http://localhost:3000/uploads/user/avatar/1/fox_avatar.png",
"web_url": "http://localhost:3000/root"
},
"author_username": "root",
"imported": false,
"imported_from": "none"
}
]
List a project’s visible events
Lists all visible events for a specified project.
GET /projects/:project_id/events
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
project_id | integer/string | yes | ID or URL-encoded path of a project. |
action | string | no | If defined, returns events with the specified action type. |
target_type | string | no | If defined, returns events with the specified target type. |
before | date (ISO 8601) | no | If defined, returns tokens created before the specified date. |
after | date (ISO 8601) | no | If defined, returns tokens created after the specified date. |
sort | string | no | Direction to sort the results by creation date. Possible values: asc , desc . Default: desc . |
Example request:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/:project_id/events?target_type=issue&action=created&after=2017-01-31&before=2017-03-01"
Example response:
[
{
"id": 8,
"title":null,
"project_id":1,
"action_name":"opened",
"target_id":160,
"target_iid":160,
"target_type":"Issue",
"author_id":25,
"target_title":"Qui natus eos odio tempore et quaerat consequuntur ducimus cupiditate quis.",
"created_at":"2017-02-09T10:43:19.667Z",
"author":{
"name":"User 3",
"username":"user3",
"id":25,
"state":"active",
"avatar_url":"http://www.gravatar.com/avatar/97d6d9441ff85fdc730e02a6068d267b?s=80\u0026d=identicon",
"web_url":"https://gitlab.example.com/user3"
},
"author_username":"user3",
"imported":false,
"imported_from": "none"
},
{
"id": 9,
"title":null,
"project_id":1,
"action_name":"opened",
"target_id":159,
"target_iid":159,
"target_type":"Issue",
"author_id":21,
"target_title":"Nostrum enim non et sed optio illo deleniti non.",
"created_at":"2017-02-09T10:43:19.426Z",
"author":{
"name":"Test User",
"username":"ted",
"id":21,
"state":"active",
"avatar_url":"http://www.gravatar.com/avatar/80fb888c9a48b9a3f87477214acaa63f?s=80\u0026d=identicon",
"web_url":"https://gitlab.example.com/ted"
},
"author_username":"ted",
"imported":false,
"imported_from": "none"
},
{
"id": 10,
"title": null,
"project_id": 1,
"action_name": "commented on",
"target_id": 1312,
"target_iid": 1312,
"target_type": "Note",
"author_id": 1,
"data": null,
"target_title": null,
"created_at": "2015-12-04T10:33:58.089Z",
"note": {
"id": 1312,
"body": "What an awesome day!",
"attachment": null,
"author": {
"name": "Dmitriy Zaporozhets",
"username": "root",
"id": 1,
"state": "active",
"avatar_url": "https://gitlab.example.com/uploads/user/avatar/1/fox_avatar.png",
"web_url": "https://gitlab.example.com/root"
},
"created_at": "2015-12-04T10:33:56.698Z",
"system": false,
"noteable_id": 377,
"noteable_type": "Issue",
"noteable_iid": 377
},
"author": {
"name": "Dmitriy Zaporozhets",
"username": "root",
"id": 1,
"state": "active",
"avatar_url": "https://gitlab.example.com/uploads/user/avatar/1/fox_avatar.png",
"web_url": "https://gitlab.example.com/root"
},
"author_username": "root",
"imported": false,
"imported_from": "none"
}
]
Target type
You can filter the results to return events from a specific target type. Possible values are:
epic
1issue
merge_request
milestone
note
2project
snippet
user
Footnotes:
- You must enable the new look for epics. Some epic features like child items, linked items, start dates, due dates, and health statuses are not returned by the API.
- Some merge request notes may instead use the
DiscussionNote
type. This target type is not supported by the API.
Docs
Edit this page to fix an error or add an improvement in a merge request.
Create an issue to suggest an improvement to this page.
Product
Create an issue if there's something you don't like about this feature.
Propose functionality by submitting a feature request.
Feature availability and product trials
View pricing to see all GitLab tiers and features, or to upgrade.
Try GitLab for free with access to all features for 30 days.
Get help
If you didn't find what you were looking for, search the docs.
If you want help with something specific and could use community support, post on the GitLab forum.
For problems setting up or using this feature (depending on your GitLab subscription).
Request support