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 -
iid
filter has been removed fromprojects/:id/issues
!8967 -
projects/:id/merge_requests?iid[]=x&iid[]=y
array filter has been renamed toiids
!8793 - Endpoints under
projects/merge_request/:id
have been removed (use:projects/merge_requests/:id
) !8793 - Project snippets do not return deprecated field
expires_at
!8723 - Endpoints under
projects/:id/keys
have been removed (useprojects/:id/deploy_keys
) !8716
9.0
- Status 409 returned for POST
project/:id/members
when a member already exists !9093 - Moved
DELETE /projects/:id/star
toPOST /projects/:id/unstar
!9328 - Removed the following deprecated Templates endpoints (these are still accessible with
/templates
prefix) !8853/licences
/licences/:key
/gitignores
/gitlab_ci_ymls
/dockerfiles
/gitignores/:key
/gitlab_ci_ymls/:key
/dockerfiles/:key
- Moved
/projects/fork/:id
to/projects/:id/fork
!8940 - Moved
DELETE /todos
toPOST /todos/mark_as_done
andDELETE /todos/:todo_id
toPOST /todos/:todo_id/mark_as_done
!9410 - Project filters are no longer available as
GET /projects/foo
, but asGET /projects?foo=true
instead !8962-
GET /projects/visible
&GET /projects/all
are consolidated intoGET /projects
and can be used with or without authorization -
GET /projects/owned
moved toGET /projects?owned=true
-
GET /projects/starred
moved toGET /projects?starred=true
-
-
GET /projects
returns 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/stop
to stop an environment !8808 - Removed
DELETE projects/:id/deploy_keys/:key_id/disable
. UseDELETE projects/:id/deploy_keys/:key_id
instead !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/issues
and/issues
now matches only issues containing all labels (i.e.: Logical AND, not OR) !8849 - Renamed param
branch_name
tobranch
on the following endpoints !8936- POST
:id/repository/branches
- POST
:id/repository/commits
- POST/PUT/DELETE
:id/repository/files
- POST
- Renamed
merge when build succeeds
to mergewhen pipeline succeeds parameters
on 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_name
tobranch
on DELETEid/repository/branches/:branch
response !8936 - Remove
public
param from create and edit actions of projects !8736 - Remove
subscribed
field from responses returning list of issues or merge requests. Fetch individual issues or merge requests to obtain the value ofsubscribed
!9661 - Use
visibility
as string parameter everywhere !9337 - Notes do not return deprecated field
upvote
anddownvote
!9384 - Return HTTP status code
400
for all validation errors when creating or updating a member instead of sometimes422
error. !9523 - Remove
GET /groups/owned
. UseGET /groups?owned=true
instead !9505 - Return 202 with JSON body on async removals on V4 API (DELETE
/projects/:id/repository/merged_branches
and DELETE/projects/:id
) !9449 -
projects/:id/milestones?iid[]=x&iid[]=y
array filter has been renamed toiids
!9096 - Return basic info about pipeline in
GET /projects/:id/pipelines
!8875 - Renamed all
build
references tojob
!9463 - Drop GET '/projects/:id/repository/commits/:sha/jobs' !9463
- Rename Build Triggers to be Pipeline Triggers API !9713
-
POST /projects/:id/trigger/builds
toPOST /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
IID
s (internal ID, as in the web UI) rather thanID
s. This affects the merge requests, award emoji, todos, and time tracking APIs. !9530 - API uses issue
IID
s (internal ID, as in the web UI) rather thanID
s. This affects the issues, award emoji, todos, and time tracking APIs. !9530 - Change initial page from
0
to1
onGET projects/:id/repository/commits
(like on the rest of the API) !9679 - Return correct
Link
header data forGET projects/:id/repository/commits
!9679 - Update endpoints for repository files !9637
- Moved
/projects/:id/repository/files?file_path=:file_path
to/projects/:id/repository/files/:file_path
(:file_path
should be URL-encoded) -
/projects/:id/repository/blobs/:sha
now returns JSON attributes for the blob identified by:sha
, instead of finding the commit identified by:sha
and 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_path
and/projects/:id/repository/blobs/:sha?file_path=:file_path
to/projects/:id/repository/files/:file_path/raw?ref=:sha
-
/projects/:id/repository/tree
parameterref_name
has been renamed toref
for consistency
- Moved