Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/gitlab:gitlab-offline-transfers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: GitLab REST Offline transfers API
description: GitLab REST API used to interact with a GitLab installation.
termsOfService: https://handbook.gitlab.com/handbook/legal/api-terms/
version: '19.6'
license:
name: CC BY-SA 4.0
url: https://gitlab.com/gitlab-org/gitlab/-/blob/master/LICENSE
x-gitlab-description: The license applies to the OpenAPI specification document itself. For terms governing use of the GitLab API, see the termsOfService field.
servers:
- url: https://{hostname}
description: GitLab REST API
variables:
hostname:
default: gitlab.com
description: Your GitLab instance hostname
security:
- http: []
- oauth2: []
- apiKey: []
tags:
- name: Offline transfers
description: 'Use this API to start and track offline transfer exports and imports, which migrate data between
GitLab instances that cannot reach each other over a network.'
x-displayName: Offline transfers
paths:
/api/v4/offline_exports:
post:
operationId: postApiV4OfflineExports
summary: Start a new offline transfer export
description: Initiates a new offline transfer export. For more information, see https://docs.gitlab.com/user/group/import/offline_transfer_migrations/
tags:
- Offline transfers
responses:
'201':
description: Created
'400':
description: Bad Request
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/postApiV4OfflineExportsRequest'
get:
operationId: getApiV4OfflineExports
summary: List all offline transfer exports
description: Lists all offline transfer exports. For more information, see https://docs.gitlab.com/user/group/import/offline_transfer_migrations/
tags:
- Offline transfers
responses:
'200':
description: OK
'400':
description: Bad Request
parameters:
- name: page
required: false
description: Page number of results to retrieve.
schema:
type: integer
default: 1
in: query
example: 1
- name: per_page
required: false
description: Number of items to list per page.
schema:
type: integer
default: 20
in: query
example: 20
- name: sort
required: false
description: Sort results in ascending or descending order by creation date.
schema:
type: string
enum:
- asc
- desc
default: desc
in: query
- name: status
required: false
description: Return offline transfer exports with the specified status.
schema:
type:
- string
- 'null'
enum:
- created
- started
- finished
- failed
- null
in: query
/api/v4/offline_exports/{id}:
get:
operationId: getApiV4OfflineExportsId
summary: Get offline transfer export details
description: Retrieves details of an offline transfer export. For more information, see https://docs.gitlab.com/user/group/import/offline_transfer_migrations/
tags:
- Offline transfers
responses:
'200':
description: OK
'404':
description: Not Found
'400':
description: Bad Request
parameters:
- name: id
required: true
description: ID of the offline transfer export.
schema:
type: integer
in: path
/api/v4/offline_imports:
post:
operationId: postApiV4OfflineImports
summary: Start a new offline transfer import
description: Initiates a new offline transfer import from object storage. For more information, see https://docs.gitlab.com/user/group/import/offline_transfer_migrations/
tags:
- Offline transfers
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/APIEntitiesBulkImport'
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not found
'422':
description: Unprocessable entity
'429':
description: Too many requests
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/postApiV4OfflineImportsRequest'
components:
schemas:
APIEntitiesBulkImport:
type: object
properties:
id:
type: integer
format: int64
example: 1
status:
type: string
enum:
- created
- started
- finished
- timeout
- failed
example: finished
source_type:
type: string
example: gitlab
source_url:
type: string
example: https://source.gitlab.com/
created_at:
type: string
format: date-time
example: '2012-05-28T04:42:42-07:00'
updated_at:
type: string
format: date-time
example: '2012-05-28T04:42:42-07:00'
has_failures:
type: boolean
example: false
postApiV4OfflineImportsRequest:
type: object
properties:
bucket:
type:
- string
- 'null'
description: Name of the object storage bucket where export data is stored.
aws_s3_configuration:
type:
- object
- 'null'
description: AWS S3 object storage configuration. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
aws_access_key_id:
type:
- string
- 'null'
description: AWS S3 access key ID.
aws_secret_access_key:
type:
- string
- 'null'
description: AWS S3 secret access key.
region:
type:
- string
- 'null'
description: AWS S3 object storage region.
path_style:
type: boolean
description: If `true`, uses path-style URLs instead of virtual-hosted-style URLs.
default: false
required:
- aws_access_key_id
- aws_secret_access_key
- region
s3_compatible_configuration:
type:
- object
- 'null'
description: MinIO or other S3-compatible object storage configuration. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
aws_access_key_id:
type:
- string
- 'null'
description: S3-compatible access key ID.
aws_secret_access_key:
type:
- string
- 'null'
description: S3-compatible secret access key.
region:
type:
- string
- 'null'
description: S3-compatible object storage region.
endpoint:
type:
- string
- 'null'
description: Object storage location endpoint.
path_style:
type: boolean
description: If `true`, uses path-style URLs instead of virtual-hosted-style URLs.
default: true
required:
- aws_access_key_id
- aws_secret_access_key
- region
- endpoint
gcs_configuration:
type:
- object
- 'null'
description: Google Cloud Storage configuration using a service account JSON key. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
google_project:
type:
- string
- 'null'
description: Google Cloud project ID.
google_json_key_string:
type:
- string
- 'null'
description: Google Cloud service account JSON key contents.
required:
- google_project
- google_json_key_string
gcs_hmac_configuration:
type:
- object
- 'null'
description: Google Cloud Storage configuration using S3-interoperability HMAC keys. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
google_storage_access_key_id:
type:
- string
- 'null'
description: GCS HMAC access key ID.
google_storage_secret_access_key:
type:
- string
- 'null'
description: GCS HMAC secret.
region:
type:
- string
- 'null'
description: GCS bucket region.
path_style:
type: boolean
description: If `true`, uses path-style URLs instead of virtual-hosted-style URLs.
default: true
required:
- google_storage_access_key_id
- google_storage_secret_access_key
- region
gcs_adc_configuration:
type:
- object
- 'null'
description: Google Cloud Storage configuration using Application Default Credentials. Available on GitLab Self-Managed or GitLab Dedicated, and must be enabled by an administrator. Only administrators can use these credentials, and the bucket name must start with "gitlab-offline-transfer-". For more information, see https://docs.gitlab.com/administration/settings/import_and_export_settings/#allow-application-default-credentials-for-offline-transfer. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
google_project:
type:
- string
- 'null'
description: Google Cloud project ID.
required:
- google_project
export_prefix:
type:
- string
- 'null'
description: Prefix of the export within the bucket.
entities:
type:
- array
- 'null'
description: List of entities to import. Exactly one of `entities`, `import_all` must be provided.
items:
type: object
properties:
source_type:
type: string
enum:
- group_entity
- project_entity
description: Type of the entity to import.
minLength: 1
source_full_path:
type:
- string
- 'null'
description: Full path of the entity on the source instance.
destination_namespace:
type:
- string
- 'null'
description: Full path of the destination namespace.
destination_slug:
type:
- string
- 'null'
description: Destination slug for the imported entity.
required:
- source_type
- source_full_path
- destination_namespace
import_all:
type:
- object
- 'null'
description: Import every top-level group in the export, recreating the source instance structure. Exactly one of `entities`, `import_all` must be provided.
properties:
destination_namespace:
type:
- string
- 'null'
description: Full path of the destination namespace the source structure is recreated under. Use an empty string to recreate it at the instance root.
example: destination-group/subgroup
required:
- destination_namespace
required:
- bucket
- export_prefix
postApiV4OfflineExportsRequest:
type: object
properties:
bucket:
type:
- string
- 'null'
description: Name of the object storage bucket where export data is stored.
aws_s3_configuration:
type:
- object
- 'null'
description: AWS S3 object storage configuration. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
aws_access_key_id:
type:
- string
- 'null'
description: AWS S3 access key ID.
aws_secret_access_key:
type:
- string
- 'null'
description: AWS S3 secret access key.
region:
type:
- string
- 'null'
description: AWS S3 object storage region.
path_style:
type: boolean
description: If `true`, uses path-style URLs instead of virtual-hosted-style URLs.
default: false
required:
- aws_access_key_id
- aws_secret_access_key
- region
s3_compatible_configuration:
type:
- object
- 'null'
description: MinIO or other S3-compatible object storage configuration. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
aws_access_key_id:
type:
- string
- 'null'
description: S3-compatible access key ID.
aws_secret_access_key:
type:
- string
- 'null'
description: S3-compatible secret access key.
region:
type:
- string
- 'null'
description: S3-compatible object storage region.
endpoint:
type:
- string
- 'null'
description: Object storage location endpoint.
path_style:
type: boolean
description: If `true`, uses path-style URLs instead of virtual-hosted-style URLs.
default: true
required:
- aws_access_key_id
- aws_secret_access_key
- region
- endpoint
gcs_configuration:
type:
- object
- 'null'
description: Google Cloud Storage configuration using a service account JSON key. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
google_project:
type:
- string
- 'null'
description: Google Cloud project ID.
google_json_key_string:
type:
- string
- 'null'
description: Google Cloud service account JSON key contents.
required:
- google_project
- google_json_key_string
gcs_hmac_configuration:
type:
- object
- 'null'
description: Google Cloud Storage configuration using S3-interoperability HMAC keys. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
google_storage_access_key_id:
type:
- string
- 'null'
description: GCS HMAC access key ID.
google_storage_secret_access_key:
type:
- string
- 'null'
description: GCS HMAC secret.
region:
type:
- string
- 'null'
description: GCS bucket region.
path_style:
type: boolean
description: If `true`, uses path-style URLs instead of virtual-hosted-style URLs.
default: true
required:
- google_storage_access_key_id
- google_storage_secret_access_key
- region
gcs_adc_configuration:
type:
- object
- 'null'
description: Google Cloud Storage configuration using Application Default Credentials. Available on GitLab Self-Managed or GitLab Dedicated, and must be enabled by an administrator. Only administrators can use these credentials, and the bucket name must start with "gitlab-offline-transfer-". For more information, see https://docs.gitlab.com/administration/settings/import_and_export_settings/#allow-application-default-credentials-for-offline-transfer. Exactly one of `aws_s3_configuration`, `s3_compatible_configuration`, `gcs_configuration`, `gcs_hmac_configuration`, `gcs_adc_configuration` must be provided.
properties:
google_project:
type:
- string
- 'null'
description: Google Cloud project ID.
required:
- google_project
entities:
type:
- array
- 'null'
description: List of entities to export.
items:
type: object
properties:
full_path:
type:
- string
- 'null'
description: Relative path of the entity to export.
example: '''source/full/path'' not ''https://example.com/source/full/path'''
required:
- full_path
required:
- bucket
- entities
securitySchemes:
http:
type: http
scheme: bearer
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://gitlab.com/oauth/authorize
tokenUrl: https://gitlab.com/oauth/token
refreshUrl: https://gitlab.com/oauth/token
scopes:
api: Grants complete read/write access to the API, including all groups and projects, the container registry, the dependency proxy, and the package registry.
read_api: Grants read access to the API, including all groups and projects, the container registry, and the package registry.
read_user: Grants read-only access to your profile through the /user API endpoint, which includes username, public email, and full name. Also grants access to read-only API endpoints under /users.
create_runner: Grants create access to the runners.
manage_runner: Grants access to manage the runners.
k8s_proxy: Grants permission to perform Kubernetes API calls using the agent for Kubernetes.
self_rotate: Grants permission for token to rotate itself.
mcp: Grants read-write access to remote Model Context Protocol (MCP) server for tools execution.
mcp_orbit: Grants access to the Orbit Knowledge Graph MCP server for graph queries and schema retrieval.
apiKey:
type: apiKey
name: PRIVATE-TOKEN
in: header