Data management API

  • Tier: Premium, Ultimate
  • Offering: GitLab Self-Managed
  • Status: Experiment

The availability of this feature is controlled by a feature flag. For more information, see the history.

Use the data management API to manage an instance’s data.

Prerequisites:

  • You must be an administrator.

Get information about a model

This endpoint is an experiment and might be changed or removed without notice.

GET /admin/data_management/:model_name

The :model_name parameter must be one of:

  • ci_job_artifact
  • ci_pipeline_artifact
  • ci_secure_file
  • container_repository
  • dependency_proxy_blob
  • dependency_proxy_manifest
  • design_management_repository
  • group_wiki_repository
  • lfs_object
  • merge_request_diff
  • packages_package_file
  • pages_deployment
  • project
  • projects_wiki_repository
  • snippet_repository
  • terraform_state_version
  • upload

Supported attributes:

AttributeTypeRequiredDescription
model_namestringYesThe name of the requested model. Must belong to the :model_name list above.
checksum_statestringNoSearch by checksum status. Allowed values: pending, started, succeeded, failed, disabled.
identifiersarrayNoFilter results with an array of unique identifiers of the requested model, which can be integers or base64 encoded strings.

If successful, returns 200 and information about the model. It includes the following response attributes:

AttributeTypeDescription
checksum_informationJSONGeo-specific checksum information, if available.
created_attimestampCreation timestamp, if available.
file_sizeintegerSize of the object, if available.
model_classstringClass name of the model.
record_identifierstring or integerUnique identifier of the record. Can be an integer or a base64 encoded string.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/data_management/project"

Example response:

[
  {
    "record_identifier": 1,
    "model_class": "Project",
    "created_at": "2025-02-05T11:27:10.173Z",
    "file_size": null,
    "checksum_information": {
      "checksum": "<object checksum>",
      "last_checksum": "2025-07-24T14:22:18.643Z",
      "checksum_state": 2,
      "checksum_retry_count": 0,
      "checksum_retry_at": null,
      "checksum_failure": null
    }
  },
  {
    "record_identifier": 2,
    "model_class": "Project",
    "created_at": "2025-02-05T11:27:14.402Z",
    "file_size": null,
    "checksum_information": {
      "checksum": "<object checksum>",
      "last_checksum": "2025-07-24T14:22:18.214Z",
      "checksum_state": 2,
      "checksum_retry_count": 0,
      "checksum_retry_at": null,
      "checksum_failure": null
    }
  }
]

Get information about a specific model record

GET /admin/data_management/:model_name/:id
AttributeTypeRequiredDescription
model_namestringYesThe name of the requested model. Must belong to the :model_name list above.
record_identifierstring or integerYesThe unique identifier of the requested model. Can be an integer or a base64 encoded string.

If successful, returns 200 and information about the specific model record. It includes the following response attributes:

AttributeTypeDescription
checksum_informationJSONGeo-specific checksum information, if available.
created_attimestampCreation timestamp, if available.
file_sizeintegerSize of the object, if available.
model_classstringClass name of the model.
record_identifierstring or integerUnique identifier of the record. Can be an integer or a base64 encoded string.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/admin/data_management/project/1"

Example response:

{
  "record_identifier": 1,
  "model_class": "Project",
  "created_at": "2025-02-05T11:27:10.173Z",
  "file_size": null,
  "checksum_information": {
    "checksum": "<object checksum>",
    "last_checksum": "2025-07-24T14:22:18.643Z",
    "checksum_state": 2,
    "checksum_retry_count": 0,
    "checksum_retry_at": null,
    "checksum_failure": null
  }
}

Recalculate the checksum of a specific model record

PUT /admin/data_management/:model_name/:record_identifier/checksum
AttributeTypeRequiredDescription
model_namestringYesThe name of the requested model. Must belong to the :model_name list above.
record_identifierstring or integerYesUnique identifier of the record. Can be an integer or a base64 encoded string (taken from the response of the GET query).

If successful, returns 200 and information about the specific model record. The checksum value is a representation of the queried model hashed with the md5 or sha256 algorithm.

Example response:

{
  "record_identifier": 1,
  "model_class": "Project",
  "created_at": "2025-02-05T11:27:10.173Z",
  "file_size": null,
  "checksum_information": {
    "checksum": "<sha256 or md5 string>",
    "last_checksum": "2025-07-24T14:22:18.643Z",
    "checksum_state": 2,
    "checksum_retry_count": 0,
    "checksum_retry_at": null,
    "checksum_failure": null
  }
}