# GitLab Storage moves API

**Canonical:** https://apis.io/apis/gitlab/gitlab-storage-moves-api/  
**Provider:** GitLab — https://apis.io/providers/gitlab/  
**Base URL:** https://gitlab.com/api/v4  
**Documentation:** https://docs.gitlab.com/api/rest/

GitLab Storage moves API is one of 189 APIs that [GitLab](https://apis.io/providers/gitlab/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification. This API exposes 16 JSON Schema definitions. Tagged areas include Storage moves. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, an API reference, rate-limit docs, an AsyncAPI specification, and 16 JSON Schemas.

Use this API to schedule and track [repository storage moves](https://docs.gitlab.com/administration/operations/moving_repositories/) for groups, projects, and snippets. Project moves cover wiki and design repositories, and group moves cover [group wikis](https://docs.gitlab.com/user/project/wiki/group/). Moving repositories can help you [migrate to Gitaly Cluster (Praefect)](https://docs.gitlab.com/administration/gitaly/praefect/#migrate-to-gitaly-cluster-praefect). To ensure data integrity, GitLab places the group, project, or snippet in a temporary read-only state for the duration of the move. During this time, users receive this message if they try to push new commits: ```plaintext The repository is temporarily read-only. Please try again later. ``` This API requires you to [authenticate yourself](https://docs.gitlab.com/api/rest/authentication/) as an administrator. ## States As GitLab processes a storage move, it transitions through different states. Values of `state` are: - `initial`: The record has been created, but the background job has not yet been scheduled. - `scheduled`: The background job has been scheduled. - `started`: The repositories are being copied to the destination storage. - `replicated`: The repositories have been moved. - `failed`: The repositories failed to copy, or the checksums did not match. - `finished`: The repositories have been moved, and the repositories on the source storage have been deleted. - `cleanup failed`: The repositories have been moved, but the repositories on the source storage could not be deleted.

## Operations (18)

| Method | Path | Summary |
|---|---|---|
| GET | `/api/v4/group_repository_storage_moves` | List all group repository storage moves |
| POST | `/api/v4/group_repository_storage_moves` | Create group repository storage moves for a storage shard |
| GET | `/api/v4/group_repository_storage_moves/{repository_storage_move_id}` | Retrieve a group repository storage move |
| GET | `/api/v4/groups/{id}/repository_storage_moves` | List all repository storage moves for a group |
| POST | `/api/v4/groups/{id}/repository_storage_moves` | Create a group repository storage move |
| GET | `/api/v4/groups/{id}/repository_storage_moves/{repository_storage_move_id}` | Retrieve a repository storage move for a group |
| GET | `/api/v4/snippet_repository_storage_moves` | List all snippet repository storage moves |
| POST | `/api/v4/snippet_repository_storage_moves` | Schedule repository storage moves for all snippets on a storage shard |
| GET | `/api/v4/snippet_repository_storage_moves/{repository_storage_move_id}` | Retrieve a snippet repository storage move |
| GET | `/api/v4/snippets/{id}/repository_storage_moves` | List all repository storage moves for a snippet |
| POST | `/api/v4/snippets/{id}/repository_storage_moves` | Schedule a repository storage move for a snippet |
| GET | `/api/v4/snippets/{id}/repository_storage_moves/{repository_storage_move_id}` | Retrieve a repository storage move for a snippet |
| GET | `/api/v4/project_repository_storage_moves` | List all project repository storage moves |
| POST | `/api/v4/project_repository_storage_moves` | Create repository storage moves for all projects on a storage shard |
| GET | `/api/v4/project_repository_storage_moves/{repository_storage_move_id}` | Retrieve a project repository storage move |
| GET | `/api/v4/projects/{id}/repository_storage_moves` | List all repository storage moves for a project |
| POST | `/api/v4/projects/{id}/repository_storage_moves` | Create a repository storage move for a project |
| GET | `/api/v4/projects/{id}/repository_storage_moves/{repository_storage_move_id}` | Retrieve a repository storage move for a project |

## Machine-readable artifacts (65)

- **OpenAPI** — https://artifacts.apis.io/gitlab/openapi/gitlab-storage-moves-api-openapi.yml
- **Documentation** — https://docs.gitlab.com/api/openapi/
- **Documentation** — https://docs.gitlab.com/api/issues/
- **Authentication** — https://docs.gitlab.com/api/rest/authentication/
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-put-api-v4-application-settings-request-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-geo-node-status-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-geo-site-status-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-application-setting-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-post-api-v4-geo-status-request-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-put-api-v4-projects-id-request-schema.json
- **Documentation** — https://docs.gitlab.com/api/merge_requests/
- **Documentation** — https://docs.gitlab.com/api/pipelines/
- **Documentation** — https://docs.gitlab.com/api/jobs/
- **Documentation** — https://docs.gitlab.com/api/runners/
- **Documentation** — https://docs.gitlab.com/api/users/
- **Documentation** — https://docs.gitlab.com/api/repositories/
- **Documentation** — https://docs.gitlab.com/api/commits/
- **Documentation** — https://docs.gitlab.com/api/branches/
- **Documentation** — https://docs.gitlab.com/api/tags/
- **Documentation** — https://docs.gitlab.com/api/releases/
- **Documentation** — https://docs.gitlab.com/api/environments/
- **Documentation** — https://docs.gitlab.com/api/deployments/
- **Documentation** — https://docs.gitlab.com/api/pipeline_schedules/
- **Documentation** — https://docs.gitlab.com/api/labels/
- **Documentation** — https://docs.gitlab.com/api/milestones/
- **Documentation** — https://docs.gitlab.com/api/notes/
- **Documentation** — https://docs.gitlab.com/api/snippets/
- **Documentation** — https://docs.gitlab.com/api/packages/
- **Documentation** — https://docs.gitlab.com/api/container_registry/
- **Documentation** — https://docs.gitlab.com/api/vulnerabilities/
- **Documentation** — https://docs.gitlab.com/api/deploy_keys/
- **Documentation** — https://docs.gitlab.com/api/protected_branches/
- **Documentation** — https://docs.gitlab.com/api/wikis/
- **Documentation** — https://docs.gitlab.com/api/events/
- **Documentation** — https://docs.gitlab.com/api/search/
- **Documentation** — https://docs.gitlab.com/api/namespaces/
- **Documentation** — https://docs.gitlab.com/api/groups/
- **Documentation** — https://docs.gitlab.com/api/projects/
- **Documentation** — https://docs.gitlab.com/api/applications/
- **Documentation** — https://docs.gitlab.com/api/avatar/
- …and 25 more, listed in full on the page.

## Other GitLab APIs (12)

- [GitLab Orbit gRPC API](https://apis.io/apis/gitlab/gitlab-orbit-api/)
- [GitLab GraphQL API](https://apis.io/apis/gitlab/gitlab-graphql-api/)
- [GitLab Applications API](https://apis.io/apis/gitlab/gitlab-applications-api/)
- [GitLab Authorization API](https://apis.io/apis/gitlab/gitlab-authorization-api/)
- [GitLab Broadcast Messages API](https://apis.io/apis/gitlab/gitlab-broadcast-messages-api/)
- [GitLab Groups API](https://apis.io/apis/gitlab/gitlab-groups-api/)
- [GitLab Metadata API](https://apis.io/apis/gitlab/gitlab-metadata-api/)
- [GitLab Project Webhooks API](https://apis.io/apis/gitlab/gitlab-project-webhooks-api/)
- [GitLab Projects API](https://apis.io/apis/gitlab/gitlab-projects-api/)
- [GitLab Tokens API](https://apis.io/apis/gitlab/gitlab-tokens-api/)
- [GitLab User Info API](https://apis.io/apis/gitlab/gitlab-user-info-api/)
- [GitLab Webhook Configuration API](https://apis.io/apis/gitlab/gitlab-webhook-configuration-api/)

## Tags

Storage moves

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/gitlab/gitlab-storage-moves-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/gitlab/.
