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" }