# GitLab Project import API

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

GitLab Project import 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 Project import. 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 [import repositories from external sources](https://docs.gitlab.com/user/import/) and to [migrate a project](https://docs.gitlab.com/user/project/settings/import_export/) between GitLab instances. If you first migrate the parent group structure with the [group import and export API](https://docs.gitlab.com/api/group_import_export/), you can preserve relationships that span the group, such as connections between project issues and group epics. After an import, use the [project-level CI/CD variables API](https://docs.gitlab.com/api/project_level_variables/) to restore CI/CD variables. You must still migrate your [container registry](https://docs.gitlab.com/user/packages/container_registry/) over a series of Docker pulls and pushes, and re-run any CI/CD pipelines to retrieve build artifacts. The project relations export endpoints are used by the destination instance during [group migration by direct transfer](https://docs.gitlab.com/user/group/import/) to migrate a project structure, and you don't usually need to call them yourself. In this context, a relation is an exportable item such as a merge request, including any related items such as a label. > [!note] > User contribution mapping is not supported when you import projects to a > [personal namespace](https://docs.gitlab.com/user/namespace/#types-of-namespaces). All > contributions are assigned to the personal namespace owner and cannot be reassigned.

## Operations (20)

| Method | Path | Summary |
|---|---|---|
| POST | `/api/v4/projects/import/authorize` | Workhorse authorize the project import upload |
| POST | `/api/v4/projects/import` | Import a project from a local archive |
| GET | `/api/v4/projects/{id}/import` | Retrieve the status of a project import |
| POST | `/api/v4/projects/{id}/import/git` | Import a project from a Git URL |
| POST | `/api/v4/projects/remote-import` | Import a project from a remote archive |
| POST | `/api/v4/projects/import-relation/authorize` | Authorize project relation import |
| POST | `/api/v4/projects/import-relation` | Import project resources |
| GET | `/api/v4/projects/{id}/relation-imports` | Retrieve the status of a project resource import |
| POST | `/api/v4/projects/remote-import-s3` | Import a project from an AWS S3 bucket |
| GET | `/api/v4/projects/{id}/export` | Retrieve the status of a project export |
| POST | `/api/v4/projects/{id}/export` | Export a project |
| GET | `/api/v4/projects/{id}/export/download` | Download a project export |
| POST | `/api/v4/projects/{id}/export_relations` | Schedule a relations export for a project |
| GET | `/api/v4/projects/{id}/export_relations/download` | Download a relations export for a project |
| GET | `/api/v4/projects/{id}/export_relations/status` | Retrieve the status of an relations export for a project |
| POST | `/api/v4/projects/{id}/github/webhooks` | Receive a GitHub webhook delivery for an OAuth-connected repository |
| POST | `/api/v4/import/github` | Import a repository from GitHub |
| POST | `/api/v4/import/github/cancel` | Cancel a GitHub project import |
| POST | `/api/v4/import/bitbucket_server` | Import repository from Bitbucket Server |
| POST | `/api/v4/import/bitbucket` | Import repository from Bitbucket Cloud |

## Machine-readable artifacts (65)

- **OpenAPI** — https://artifacts.apis.io/gitlab/openapi/gitlab-project-import-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

Project import

---

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