MethodPathDescription
GET/v1/modulesList available modules
GET/v1/modules/{uid}Get a specific module
POST/v1/modulesUpload a new module (deprecated)
POST/v2/modulesUpload a new module
DELETE/v1/modules/{uid}Delete a module (deprecated)
DELETE/v2/modules/{uid}Delete a module

List modules

GET /v1/modules

List available modules, i.e. modules stored within the CCS.

Permissions

Permission nameRoles
view_cluster_modulesadmin
cluster_member
cluster_viewer
db_member
db_viewer

Request

Example HTTP request

GET /modules

Headers

KeyValueDescription
Host127.0.0.1:9443Domain name
Accept*/*Accepted media type

Response

Returns a JSON array of module objects.

Status codes

CodeDescription
200 OKNo error

Get module

GET /v1/modules/{string: uid}

Get specific available modules, i.e. modules stored within the CCS.

Permissions

Permission nameRoles
view_cluster_modulesadmin
cluster_member
cluster_viewer
db_member
db_viewer

Request

Example HTTP request

GET /modules/1

Headers

KeyValueDescription
Host127.0.0.1:9443Domain name
Accept*/*Accepted media type

URL parameters

FieldTypeDescription
uidintegerThe module’s unique ID.

Response

Returns a module object.

Status codes

CodeDescription
200 OKNo error
404 Not FoundModule does not exist.

Upload module v1

POST /v1/modules
Note:
POST /v1/modules is deprecated as of Redis Enterprise Software version 7.2. Use POST /v2/modules instead.

Uploads a new module to the cluster.

The request must contain a Redis module, bundled using RedisModule Packer. For modules in Redis Stack, download the module from the download center.

See Install a module on a cluster for more information.

Permissions

Permission nameRoles
update_clusteradmin

Request

Example HTTP request

POST /v1/modules

Headers

KeyValueDescription
HoststringDomain name
Accept*/*Accepted media type
Content-LengthintegerLength of the request body in octets
Expect100-continueRequires particular server behaviors
Content-Typemultipart/form-dataMedia type of request/response body

Response

Returns a status code. If an error occurs, the response body may include an error code and message with more details.

Error codes

The server may return a JSON object with error_code and message fields that provide additional information. The following are possible error_code values:

CodeDescription
no_moduleModule wasn’t provided or could not be found
invalid_moduleModule either corrupted or packaged files are wrong
module_existsModule already in system
min_redis_pack_versionModule isn’t supported yet in this Redis pack
unsupported_module_capabilitiesThe module does not support required capabilities
os_not_supportedThis module is not supported for this operating system
dependencies_not_supportedThis endpoint does not support dependencies, see v2

Status codes

CodeDescription
400 Bad RequestEither missing module file or an invalid module file.

Examples

cURL

$ curl -k -u "[username]:[password]" -X POST
       -F "module=@/tmp/rejson.Linux-ubuntu18.04-x86_64.2.0.8.zip"
       https://[host][:port]/v1/modules

Python

import requests

url = "https://[host][:port]/v1/modules"

files=[
    ('module',
        ('rejson.Linux-ubuntu18.04-x86_64.2.0.8.zip',
        open('/tmp/rejson.Linux-ubuntu18.04-x86_64.2.0.8.zip','rb'),
        'application/zip')
    )
]
auth=("[username]", "[password]")

response = requests.request("POST", url,
                            auth=auth, files=files, verify=False)

print(response.text)

Upload module v2

POST /v2/modules

Asynchronously uploads a new module to the cluster.

The request must contain a Redis module bundled using RedisModule Packer.

For modules in Redis Stack, download the module from the download center. See Install a module on a cluster for more information.

Permissions

Permission nameRoles
update_clusteradmin

Request

Example HTTP request

POST /v2/modules

Headers

KeyValueDescription
HoststringDomain name
Accept*/*Accepted media type
Content-LengthintegerLength of the request body in octets
Expect100-continueRequires particular server behaviors
Content-Typemultipart/form-data;Media type of request/response body

Response

Returns a module object with an additional action_uid field.

You can use the action_uid to track the progress of the module upload.

Example JSON body

{
   "action_uid":"dfc0152c-8449-4b1c-9184-480ea7cb526c",
   "author":"RedisLabs",
   "capabilities":[
      "types",
      "crdb",
      "failover_migrate",
      "persistence_aof",
      "persistence_rdb",
      "clustering",
      "backup_restore"
   ],
   "command_line_args":"Plugin gears_python CreateVenv 1",
   "config_command":"RG.CONFIGSET",
   "dependencies":{
      "gears_jvm":{
         "sha256":"b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
         "url":"http://example.com/redisgears_plugins/jvm_plugin/gears-jvm.linux-centos7-x64.0.1.0.tgz"
      },
      "gears_python":{
         "sha256":"22dca9cd75484cb15b8130db37f5284e22e3759002154361f72f6d2db46ee682",
         "url":"http://example.com/redisgears-python.linux-centos7-x64.1.2.1.tgz"
      }
   },
   "description":"Dynamic execution framework for your Redis data",
   "display_name":"RedisGears",
   "email":"user@example.com",
   "homepage":"http://redisgears.io",
   "is_bundled":false,
   "license":"Redis Source Available License Agreement",
   "min_redis_pack_version":"6.0.0",
   "min_redis_version":"6.0.0",
   "module_name":"rg",
   "semantic_version":"1.2.1",
   "sha256":"2935ea53611803c8acf0015253c5ae1cd81391bbacb23e14598841e1edd8d28b",
   "uid":"98f255d5d33704c8e4e97897fd92e32d",
   "version":10201
}

Error codes

The server may return a JSON object with error_code and message fields that provide additional information.

Possible error_code values include /v1/modules error codes and the following:

CodeDescription
invalid_dependency_dataProvided dependencies have an unexpected format

Status codes

CodeDescription
200 OKSuccess, scheduled module upload.
400 Bad RequestModule name or version does not exist.
404 Not FoundDependency not found.
500 Internal Server ErrorFailed to get dependency.

Delete module v1

DELETE /v1/modules/{string: uid}
Note:
DELETE /v1/modules is deprecated as of Redis Enterprise Software version 7.2. Use DELETE /v2/modules instead.

Delete a module.

Permissions

Permission nameRoles
update_clusteradmin

Request

Example HTTP request

DELETE /v1/modules/1

Headers

KeyValueDescription
Hostcnm.cluster.fqdnDomain name
Acceptapplication/jsonAccepted media type

URL parameters

FieldTypeDescription
uidintegerThe module’s unique ID.

Response

Returns a status code to indicate module deletion success or failure.

Error codes

CodeDescription
dependencies_not_supportedYou can use the following API endpoint to delete this module with its dependencies: /v2/modules/<uid>

Status codes

CodeDescription
200 OKSuccess, the module is deleted.
404 Not FoundAttempting to delete a nonexistent module.
406 Not AcceptableThe request is not acceptable.

Delete module v2

DELETE /v2/modules/{string: uid}

Delete a module.

Permissions

Permission nameRoles
update_clusteradmin

Request

Example HTTP request

DELETE /v2/modules/1

Headers

KeyValueDescription
Hostcnm.cluster.fqdnDomain name
Acceptapplication/jsonAccepted media type

URL parameters

FieldTypeDescription
uidintegerThe module’s unique ID.

Response

Returns a JSON object with an action_uid that allows you to track the progress of module deletion.

Status codes

CodeDescription
200 OKSuccess, scheduled module deletion.
404 Not FoundAttempting to delete a nonexistent module.