V3 to V4 version
Since GitLab 9.0, API V4 is the preferred version to be used.
V3 will remain working until at least GitLab 9.3. The V3 API documentation is still available.
Below are the changes made between V3 and V4.
8.17
- Removed
/projects/:search(use:/projects?search=x) !8877 -
iidfilter has been removed fromprojects/:id/issues!8967 -
projects/:id/merge_requests?iid[]=x&iid[]=yarray filter has been renamed toiids!8793 - Endpoints under
projects/merge_request/:idhave been removed (use:projects/merge_requests/:id) !8793 - Project snippets do not return deprecated field
expires_at!8723 - Endpoints under
projects/:id/keyshave been removed (useprojects/:id/deploy_keys) !8716
9.0
- Status 409 returned for POST
project/:id/memberswhen a member already exists !9093 - Moved
DELETE /projects/:id/startoPOST /projects/:id/unstar!9328 - Removed the following deprecated Templates endpoints (these are still accessible with
/templatesprefix) !8853/licences/licences/:key/gitignores/gitlab_ci_ymls/dockerfiles/gitignores/:key/gitlab_ci_ymls/:key/dockerfiles/:key
- Moved
/projects/fork/:idto/projects/:id/fork!8940 - Moved
DELETE /todostoPOST /todos/mark_as_doneandDELETE /todos/:todo_idtoPOST /todos/:todo_id/mark_as_done!9410 - Project filters are no longer available as
GET /projects/foo, but asGET /projects?foo=trueinstead !8962-
GET /projects/visible&GET /projects/allare consolidated intoGET /projectsand can be used with or without authorization -
GET /projects/ownedmoved toGET /projects?owned=true -
GET /projects/starredmoved toGET /projects?starred=true
-
-
GET /projectsreturns all projects visible to current user, even if the user is not a member !9674- To get projects the user is a member of, use
/projects?membership=true
- To get projects the user is a member of, use
- Return pagination headers for all endpoints that return an array !8606
- Added
POST /environments/:environment_id/stopto stop an environment !8808 - Removed
DELETE projects/:id/deploy_keys/:key_id/disable. UseDELETE projects/:id/deploy_keys/:key_idinstead !9366 - Moved
PUT /users/:id/(block|unblock)toPOST /users/:id/(block|unblock)!9371 - Make subscription API more RESTful. Use
post ":project_id/:subscribable_type/:subscribable_id/subscribe"to subscribe andpost ":project_id/:subscribable_type/:subscribable_id/unsubscribe"to unsubscribe from a resource. !9325 - Labels filter on
projects/:id/issuesand/issuesnow matches only issues containing all labels (i.e.: Logical AND, not OR) !8849 - Renamed param
branch_nametobranchon the following endpoints !8936- POST
:id/repository/branches - POST
:id/repository/commits - POST/PUT/DELETE
:id/repository/files
- POST
- Renamed
merge when build succeedsto mergewhen pipeline succeeds parameterson the following endpoints: !9335- PUT
projects/:id/merge_requests/:merge_request_id/merge - POST
projects/:id/merge_requests/:merge_request_id/cancel_merge_when_pipeline_succeeds - POST
projects - POST
projects/user/:user_id - PUT
projects/:id
- PUT
- Renamed
branch_nametobranchon DELETEid/repository/branches/:branchresponse !8936 - Remove
publicparam from create and edit actions of projects !8736 - Remove
subscribedfield from responses returning list of issues or merge requests. Fetch individual issues or merge requests to obtain the value ofsubscribed!9661 - Use
visibilityas string parameter everywhere !9337 - Notes do not return deprecated field
upvoteanddownvote!9384 - Return HTTP status code
400for all validation errors when creating or updating a member instead of sometimes422error. !9523 - Remove
GET /groups/owned. UseGET /groups?owned=trueinstead !9505 - Return 202 with JSON body on async removals on V4 API (DELETE
/projects/:id/repository/merged_branchesand DELETE/projects/:id) !9449 -
projects/:id/milestones?iid[]=x&iid[]=yarray filter has been renamed toiids!9096 - Return basic info about pipeline in
GET /projects/:id/pipelines!8875 - Renamed all
buildreferences tojob!9463 - Drop GET '/projects/:id/repository/commits/:sha/jobs' !9463
- Rename Build Triggers to be Pipeline Triggers API !9713
-
POST /projects/:id/trigger/buildstoPOST /projects/:id/trigger/pipeline - Require description when creating a new trigger
POST /projects/:id/triggers
-
- Simplify project payload exposed on Environment endpoints !9675
- API uses merge request
IIDs (internal ID, as in the web UI) rather thanIDs. This affects the merge requests, award emoji, todos, and time tracking APIs. !9530 - API uses issue
IIDs (internal ID, as in the web UI) rather thanIDs. This affects the issues, award emoji, todos, and time tracking APIs. !9530 - Change initial page from
0to1onGET projects/:id/repository/commits(like on the rest of the API) !9679 - Return correct
Linkheader data forGET projects/:id/repository/commits!9679 - Update endpoints for repository files !9637
- Moved
/projects/:id/repository/files?file_path=:file_pathto/projects/:id/repository/files/:file_path(:file_pathshould be URL-encoded) -
/projects/:id/repository/blobs/:shanow returns JSON attributes for the blob identified by:sha, instead of finding the commit identified by:shaand returning the raw content of the blob in that commit identified by the required?filepath=:filepath - Moved
/projects/:id/repository/commits/:sha/blob?file_path=:file_pathand/projects/:id/repository/blobs/:sha?file_path=:file_pathto/projects/:id/repository/files/:file_path/raw?ref=:sha -
/projects/:id/repository/treeparameterref_namehas been renamed toreffor consistency
- Moved