GitLab Documentation

Wikis API

Introduced in GitLab 10.0.

Available only in APIv4.

List wiki pages

Get all wiki pages for a given project.

GET /projects/:id/wikis
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project
with_content boolean no Include pages' content
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/1/wikis?with_content=1

Example response:

[
  {
    "content" : "Here is an instruction how to deploy this project.",
    "format" : "markdown",
    "slug" : "deploy",
    "title" : "deploy"
  },
  {
    "content" : "Our development process is described here.",
    "format" : "markdown",
    "slug" : "development",
    "title" : "development"
  },{
    "content" : "*  [Deploy](deploy)\n*  [Development](development)",
    "format" : "markdown",
    "slug" : "home",
    "title" : "home"
  }
]

Get a wiki page

Get a wiki page for a given project.

GET /projects/:id/wikis/:slug
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project
slug string yes The slug (a unique string) of the wiki page
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/1/wikis/home

Example response:

[
  {
    "content" : "home page",
    "format" : "markdown",
    "slug" : "home",
    "title" : "home"
  }
]

Create a new wiki page

Creates a new wiki page for the given repository with the given title, slug, and content.

POST /projects/:id/wikis
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project
content string yes The content of the wiki page
title string yes The title of the wiki page
format string no The format of the wiki page. Available formats are: markdown (default), rdoc, and asciidoc
curl --data "format=rdoc&title=Hello&content=Hello world" --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/1/wikis"

Example response:

{ 
  "content" : "Hello world",
  "format" : "markdown",
  "slug" : "Hello",
  "title" : "Hello"
} 

Edit an existing wiki page

Updates an existing wiki page. At least one parameter is required to update the wiki page.

PUT /projects/:id/wikis/:slug
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project
content string yes if title is not provided The content of the wiki page
title string yes if content is not provided The title of the wiki page
format string no The format of the wiki page. Available formats are: markdown (default), rdoc, and asciidoc
slug string yes The slug (a unique string) of the wiki page
curl --request PUT --data "format=rdoc&content=documentation&title=Docs" --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/1/wikis/foo"

Example response:

{
  "content" : "documentation",
  "format" : "markdown",
  "slug" : "Docs",
  "title" : "Docs"
}

Delete a wiki page

Deletes a wiki page with a given slug.

DELETE /projects/:id/wikis/:slug
Attribute Type Required Description
id integer/string yes The ID or URL-encoded path of the project
slug string yes The slug (a unique string) of the wiki page
curl --request DELETE --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/1/wikis/foo"

On success the HTTP status code is 204 and no JSON response is expected.


Leave a comment below if you have any feedback on the documentation. For support and other inquires, see getting help.