---
title: "Import a project from a remote archive"
method: POST
path: "/api/v4/projects/remote-import"
tags: ["project_import"]
---

# Import a project from a remote archive

`POST /api/v4/projects/remote-import`

## Request

- Base URL: `https://gitlab.com`
- URL: `https://gitlab.com/api/v4/projects/remote-import`
- Auth: none declared

Imports a project from a remote archive.

## Request body `multipart/form-data`

- object
  - `url` string, required: The URL for the file.
  - `path` string, required: The new project path and name
  - `name` string: The name of the project to be imported. Defaults to the path of the project if not provided.
  - `namespace` string: (deprecated) The ID or path of the namespace to import the project to. Defaults to the current user's namespace.
  - `namespace_id` integer: The ID of the namespace that the project will be imported into. Defaults to the current user's namespace.
  - `namespace_path` string: The path of the namespace that the project will be imported into. Defaults to the current user's namespace.
  - `overwrite` boolean: If there is a project in the same namespace and with the same name overwrite it
  - `override_params[description]` string: The description of the project
  - `override_params[build_git_strategy]` 'fetch' | 'clone': The Git strategy. Defaults to `fetch`
  - `override_params[build_timeout]` integer: Build timeout
  - `override_params[auto_cancel_pending_pipelines]` 'disabled' | 'enabled': Auto-cancel pending pipelines
  - `override_params[ci_config_path]` string: The path to CI config file. Defaults to `.gitlab-ci.yml`
  - `override_params[service_desk_enabled]` boolean: Disable or enable the service desk
  - `override_params[issues_enabled]` boolean: Flag indication if the issue tracker is enabled
  - `override_params[merge_requests_enabled]` boolean: Flag indication if merge requests are enabled
  - `override_params[wiki_enabled]` boolean: Flag indication if the wiki is enabled
  - `override_params[jobs_enabled]` boolean: Flag indication if jobs are enabled
  - `override_params[snippets_enabled]` boolean: Flag indication if snippets are enabled
  - `override_params[issues_access_level]` 'disabled' | 'private' | 'enabled': Issues access level. One of `disabled`, `private` or `enabled`
  - `override_params[repository_access_level]` 'disabled' | 'private' | 'enabled': Repository access level. One of `disabled`, `private` or `enabled`
  - `override_params[merge_requests_access_level]` 'disabled' | 'private' | 'enabled': Merge requests access level. One of `disabled`, `private` or `enabled`
  - `override_params[forking_access_level]` 'disabled' | 'private' | 'enabled': Forks access level. One of `disabled`, `private` or `enabled`
  - `override_params[wiki_access_level]` 'disabled' | 'private' | 'enabled': Wiki access level. One of `disabled`, `private` or `enabled`
  - `override_params[builds_access_level]` 'disabled' | 'private' | 'enabled': Builds access level. One of `disabled`, `private` or `enabled`
  - `override_params[snippets_access_level]` 'disabled' | 'private' | 'enabled': Snippets access level. One of `disabled`, `private` or `enabled`
  - `override_params[package_registry_access_level]` 'disabled' | 'private' | 'enabled' | 'public': Controls visibility of the package registry. One of `disabled`, `private`, `enabled` or `public`. `private` will make the package registry accessible only to project members (reporter role and above). `enabled` will make the package registry accessible to everyone who has access to the project. `public` will make the package registry accessible to everyone. `disabled` will disable the package registry
  - `override_params[pages_access_level]` 'disabled' | 'private' | 'enabled' | 'public': Pages access level. One of `disabled`, `private`, `enabled` or `public`
  - `override_params[analytics_access_level]` 'disabled' | 'private' | 'enabled': Analytics access level. One of `disabled`, `private` or `enabled`
  - `override_params[container_registry_access_level]` 'disabled' | 'private' | 'enabled': Controls visibility of the container registry. One of `disabled`, `private` or `enabled`. `private` will make the container registry accessible only to project members (reporter role and above). `enabled` will make the container registry accessible to everyone who has access to the project. `disabled` will disable the container registry
  - `override_params[security_and_compliance_access_level]` 'disabled' | 'private' | 'enabled': Security and compliance access level. One of `disabled`, `private` or `enabled`
  - `override_params[releases_access_level]` 'disabled' | 'private' | 'enabled': Releases access level. One of `disabled`, `private` or `enabled`
  - `override_params[environments_access_level]` 'disabled' | 'private' | 'enabled': Environments access level. One of `disabled`, `private` or `enabled`
  - `override_params[feature_flags_access_level]` 'disabled' | 'private' | 'enabled': Feature flags access level. One of `disabled`, `private` or `enabled`
  - `override_params[infrastructure_access_level]` 'disabled' | 'private' | 'enabled': Infrastructure access level. One of `disabled`, `private` or `enabled`
  - `override_params[monitor_access_level]` 'disabled' | 'private' | 'enabled': Monitor access level. One of `disabled`, `private` or `enabled`
  - `override_params[model_experiments_access_level]` 'disabled' | 'private' | 'enabled': Model experiments access level. One of `disabled`, `private` or `enabled`
  - `override_params[model_registry_access_level]` 'disabled' | 'private' | 'enabled': Model registry access level. One of `disabled`, `private` or `enabled`
  - `override_params[emails_disabled]` boolean: Deprecated: Use emails_enabled instead.
  - `override_params[emails_enabled]` boolean: Enable email notifications
  - `override_params[show_default_award_emojis]` boolean: Show default award emojis
  - `override_params[show_diff_preview_in_email]` boolean: Include the code diff preview in merge request notification emails
  - `override_params[warn_about_potentially_unwanted_characters]` boolean: Warn about potentially unwanted characters
  - `override_params[enforce_auth_checks_on_uploads]` boolean: Enforce auth check on uploads
  - `override_params[shared_runners_enabled]` boolean: Flag indication if shared runners are enabled for that project
  - `override_params[group_runners_enabled]` boolean: Flag indication if group runners are enabled for that project
  - `override_params[resource_group_default_process_mode]` 'unordered' | 'oldest_first' | 'newest_first' | 'newest_ready_first': The process mode of the resource group
  - `override_params[resolve_outdated_diff_discussions]` boolean: Automatically resolve merge request diff threads on lines changed with a push
  - `override_params[remove_source_branch_after_merge]` boolean: Remove the source branch by default after merge
  - `override_params[packages_enabled]` boolean: Deprecated: Use :package_registry_access_level instead. Enable project packages feature
  - `override_params[container_registry_enabled]` boolean: Deprecated: Use :container_registry_access_level instead. Flag indication if the container registry is enabled for that project
  - `override_params[container_expiration_policy_attributes][cadence]` string: Container expiration policy cadence for recurring job
  - `override_params[container_expiration_policy_attributes][keep_n]` integer: Container expiration policy number of images to keep
  - `override_params[container_expiration_policy_attributes][older_than]` string: Container expiration policy remove images older than value
  - `override_params[container_expiration_policy_attributes][name_regex]` string: Container expiration policy regex for image removal
  - `override_params[container_expiration_policy_attributes][name_regex_keep]` string: Container expiration policy regex for image retention
  - `override_params[container_expiration_policy_attributes][enabled]` boolean: Flag indication if container expiration policy is enabled
  - `override_params[lfs_enabled]` boolean: Flag indication if Git LFS is enabled for that project
  - `override_params[visibility]` 'private' | 'internal' | 'public': The visibility of the project.
  - `override_params[public_builds]` boolean: Deprecated: Use public_jobs instead.
  - `override_params[public_jobs]` boolean: Perform public builds
  - `override_params[request_access_enabled]` boolean: Allow users to request member access
  - `override_params[only_allow_merge_if_pipeline_succeeds]` boolean: Only allow to merge if builds succeed
  - `override_params[allow_merge_on_skipped_pipeline]` boolean: Allow to merge if pipeline is skipped
  - `override_params[only_allow_merge_if_all_discussions_are_resolved]` boolean: Only allow to merge if all threads are resolved
  - `override_params[tag_list]` string[]: Deprecated: Use :topics instead
  - `override_params[topics]` string[]: The list of topics for a project
  - `override_params[avatar]` string, binary: Avatar image for project
  - `override_params[printing_merge_request_link_enabled]` boolean: Show link to create/view merge request when pushing from the command line
  - `override_params[merge_method]` 'ff' | 'rebase_merge' | 'merge': The merge method used when merging merge requests
  - `override_params[suggestion_commit_message]` string: The commit message used to apply merge request suggestions
  - `override_params[merge_commit_template]` string: Template used to create merge commit message
  - `override_params[squash_commit_template]` string: Template used to create squash commit message
  - `override_params[issue_branch_template]` string: Template used to create a branch from an issue
  - `override_params[auto_devops_enabled]` boolean: Flag indication if Auto DevOps is enabled
  - `override_params[auto_devops_deploy_strategy]` 'continuous' | 'manual' | 'timed_incremental': Auto Deploy strategy
  - `override_params[autoclose_referenced_issues]` boolean: Flag indication if referenced issues auto-closing is enabled
  - `override_params[repository_storage]` string: Which storage shard the repository is on. Available only to admins
  - `override_params[squash_option]` 'never' | 'always' | 'default_on' | 'default_off': Squash default for project. One of `never`, `always`, `default_on`, or `default_off`.
  - `override_params[mr_default_target_self]` boolean: Merge requests of this forked project targets itself by default
  - `override_params[mr_default_title_template]` string: Template used to generate the default merge request title. Maximum 100 characters.
  - `override_params[cicd_catalog_enabled]` boolean: Set whether the project is a CI/CD catalog project
  - `override_params[only_allow_merge_if_all_status_checks_passed]` boolean: Blocks merge requests from merging unless all status checks have passed
  - `override_params[approvals_before_merge]` integer: How many approvers should approve merge request by default
  - `override_params[mirror]` boolean: [Deprecated] Enables pull mirroring in a project
  - `override_params[mirror_trigger_builds]` boolean: [Deprecated] Pull mirroring triggers builds
  - `override_params[external_authorization_classification_label]` string: The classification label for the project
  - `override_params[requirements_access_level]` 'disabled' | 'private' | 'enabled': Requirements feature access level. One of `disabled`, `private` or `enabled`
  - `override_params[prevent_merge_without_jira_issue]` boolean: Require an associated issue from Jira
  - `override_params[auto_duo_code_review_enabled]` boolean: Enable automatic reviews by GitLab Duo on merge requests
  - `override_params[duo_remote_flows_enabled]` boolean: Enable GitLab Duo remote flows for this project
  - `override_params[duo_sast_fp_detection_enabled]` boolean: Enable GitLab Duo SAST false positive detection for this project
  - `override_params[duo_secret_detection_fp_enabled]` boolean: Enable GitLab Duo Secret Detection false positive detection for this project
  - `override_params[duo_dependency_bump_breaking_changes_enabled]` boolean: Turn on Agentic Breaking Change Resolution for this project
  - `override_params[duo_sast_vr_workflow_enabled]` boolean: Enable GitLab Duo SAST vulnerability resolution workflow for this project
  - `override_params[spp_repository_pipeline_access]` boolean: Grant read-only access to security policy configurations for enforcement in linked CI/CD projects
  - `override_params[merge_request_title_regex]` string: The regex the Merge Request must adhere to
  - `override_params[merge_request_title_regex_description]` string: The description for the regex the Merge Request must adhere to

## Response `201`

Import a project from a remote archive

- APIEntitiesProjectImportStatus: API_Entities_ProjectImportStatus model
  - `id` integer, required
  - `description` string, required
  - `name` string, required
  - `name_with_namespace` string, required
  - `path` string, required
  - `path_with_namespace` string, required
  - `created_at` string, date-time, required
  - `import_status` string, required
  - `import_type` string, required
  - `correlation_id` string, required
  - `failed_relations` APIEntitiesProjectImportFailedRelation[], required
    - `id` integer, required
    - `created_at` string, date-time, required
    - `exception_class` string, required
    - `source` string, required
    - `exception_message` string, required
    - `relation_name` string, required
    - `line_number` integer, required
  - `import_error` string, required
  - `stats` object, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `429`: Too many requests
- `503`: Service unavailable

---

[API](https://skmtc.dev/gitlab/apis/gitlab-api.md) - [All operations](https://skmtc.dev/gitlab/apis/gitlab-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gitlab/apis/gitlab-api/revisions/b234947ef3f2?raw)
