Appearance API
The appearance API allows you to maintain the appearance of GitLab as if
you’re using the GitLab UI at /admin/appearance
. The API requires
administrator privileges.
Get current appearance configuration
List the current appearance configuration of the GitLab instance.
GET /application/appearance
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/application/appearance"
Example response:
{
"title": "GitLab Test Instance",
"description": "gitlab-test.example.com",
"pwa_name": "GitLab PWA",
"pwa_short_name": "GitLab",
"pwa_description": "GitLab as PWA",
"pwa_icon": "/uploads/-/system/appearance/pwa_icon/1/pwa_logo.png",
"logo": "/uploads/-/system/appearance/logo/1/logo.png",
"header_logo": "/uploads/-/system/appearance/header_logo/1/header.png",
"favicon": "/uploads/-/system/appearance/favicon/1/favicon.png",
"member_guidelines": "Custom member guidelines",
"new_project_guidelines": "Please read the FAQs for help.",
"profile_image_guidelines": "Custom profile image guidelines",
"header_message": "",
"footer_message": "",
"message_background_color": "#e75e40",
"message_font_color": "#ffffff",
"email_header_and_footer_enabled": false
}
Change appearance configuration
Use an API call to modify GitLab instance appearance configuration.
PUT /application/appearance
Attribute | Type | Required | Description |
---|---|---|---|
title
| string | no | Instance title on the sign in / sign up page |
description
| string | no | Markdown text shown on the sign in / sign up page |
pwa_name
| string | no | Full name of the Progressive Web App. Used for the attribute name in manifest.json . Introduced in GitLab 15.8.
|
pwa_short_name
| string | no | Short name for Progressive Web App. Introduced in GitLab 15.8. |
pwa_description
| string | no | An explanation of what the Progressive Web App does. Used for the attribute description in manifest.json . Introduced in GitLab 15.8.
|
pwa_icon
| mixed | no | Icon used for Progressive Web App. See Change logo. Introduced in GitLab 15.8. |
logo
| mixed | no | Instance image used on the sign in / sign up page. See Change logo |
header_logo
| mixed | no | Instance image used for the main navigation bar |
favicon
| mixed | no | Instance favicon in .ico or .png format
|
member_guidelines
| string | no | Markdown text shown on the group or project member page for users with permission to change members |
new_project_guidelines
| string | no | Markdown text shown on the new project page |
profile_image_guidelines
| string | no | Markdown text shown on the profile page below Public Avatar |
header_message
| string | no | Message in the system header bar |
footer_message
| string | no | Message in the system footer bar |
message_background_color
| string | no | Background color for the system header / footer bar |
message_font_color
| string | no | Font color for the system header / footer bar |
email_header_and_footer_enabled
| boolean | no | Add header and footer to all outgoing emails if enabled |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/application/appearance?email_header_and_footer_enabled=true&header_message=test"
Example response:
{
"title": "GitLab Test Instance",
"description": "gitlab-test.example.com",
"pwa_name": "GitLab PWA",
"pwa_short_name": "GitLab",
"pwa_description": "GitLab as PWA",
"pwa_icon": "/uploads/-/system/appearance/pwa_icon/1/pwa_logo.png",
"logo": "/uploads/-/system/appearance/logo/1/logo.png",
"header_logo": "/uploads/-/system/appearance/header_logo/1/header.png",
"favicon": "/uploads/-/system/appearance/favicon/1/favicon.png",
"member_guidelines": "Custom member guidelines",
"new_project_guidelines": "Please read the FAQs for help.",
"profile_image_guidelines": "Custom profile image guidelines",
"header_message": "test",
"footer_message": "",
"message_background_color": "#e75e40",
"message_font_color": "#ffffff",
"email_header_and_footer_enabled": true
}
Change logo
Upload a logo to your GitLab instance.
To upload an avatar from your file system, use the --form
argument. This causes
cURL to post data using the header Content-Type: multipart/form-data
. The
file=
parameter must point to an image file on your file system and be
preceded by @
.
PUT /application/appearance
Attribute | Type | Required | Description |
---|---|---|---|
logo
| mixed | Yes | File to upload |
pwa_icon
| mixed | Yes | File to upload. Introduced in GitLab 15.8. |
Example request:
curl --location --request PUT "https://gitlab.example.com/api/v4/application/appearance?data=image/png" \
--header "Content-Type: multipart/form-data" \
--header "PRIVATE-TOKEN: <your_access_token>" \
--form "logo=@/path/to/logo.png"
Returned object:
{
"logo":"/uploads/-/system/appearance/logo/1/logo.png"
}