2021-06-08 01:23:25 +05:30
---
stage: Manage
2023-07-09 08:55:56 +05:30
group: Import and Integrate
2022-11-25 23:54:43 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
2021-06-08 01:23:25 +05:30
---
2021-11-11 11:23:49 +05:30
# Group Relations Export API **(FREE)**
2021-06-08 01:23:25 +05:30
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59978) in GitLab 13.12.
With the Group Relations Export API, you can partially export group structure. This API is similar
to [group export ](group_import_export.md ),
but it exports each top-level relation (for example, milestones/boards/labels) as a separate file
2023-06-20 00:43:36 +05:30
instead of one archive. The group relations export API is primarily used in [group migration ](../user/group/import/index.md ).
2021-06-08 01:23:25 +05:30
## Schedule new export
Start a new group relations export:
```plaintext
POST /groups/:id/export_relations
```
| Attribute | Type | Required | Description |
| --------- | -------------- | -------- | ---------------------------------------- |
| `id` | integer/string | yes | ID of the group owned by the authenticated user. |
```shell
curl --request POST --header "PRIVATE-TOKEN: < your_access_token > " "https://gitlab.example.com/api/v4/groups/1/export_relations"
```
```json
{
"message": "202 Accepted"
}
```
## Export status
View the status of the relations export:
```plaintext
GET /groups/:id/export_relations/status
```
| Attribute | Type | Required | Description |
| --------- | -------------- | -------- | ---------------------------------------- |
| `id` | integer/string | yes | ID of the group owned by the authenticated user. |
```shell
2021-09-04 01:27:46 +05:30
curl --request GET --header "PRIVATE-TOKEN: < your_access_token > " \
"https://gitlab.example.com/api/v4/groups/1/export_relations/status"
2021-06-08 01:23:25 +05:30
```
The status can be one of the following:
- `0` : `started`
- `1` : `finished`
- `-1` : `failed`
- `0` - `started`
- `1` - `finished`
- `-1` - `failed`
```json
[
{
"relation": "badges",
"status": 1,
"error": null,
"updated_at": "2021-05-04T11:25:20.423Z"
},
{
"relation": "boards",
"status": 1,
"error": null,
"updated_at": "2021-05-04T11:25:20.085Z"
}
]
```
## Export download
Download the finished relations export:
```plaintext
GET /groups/:id/export_relations/download
```
| Attribute | Type | Required | Description |
| --------------- | -------------- | -------- | ---------------------------------------- |
| `id` | integer/string | yes | ID of the group owned by the authenticated user. |
| `relation` | string | yes | Name of the group top-level relation to download. |
```shell
2021-09-04 01:27:46 +05:30
curl --header "PRIVATE-TOKEN: < your_access_token > " --remote-header-name \
--remote-name "https://gitlab.example.com/api/v4/groups/1/export_relations/download?relation=labels"
2021-06-08 01:23:25 +05:30
```
```shell
ls labels.ndjson.gz
labels.ndjson.gz
```