# Extension: Upload extension

Information note**LOCKED.**   
  
This API is extremely reliable and will not be broken unless absolutely necessary.

## Method

POST

## Path

/qrs/extension/upload?pwd={password}&privileges={appendPrivileges}

## Description

Upload an extension to the repository database. Optionally, provide a password for the file. Optionally, add privileges to the returned entities.

## Body

ZIP file

## Return value

```
[
    {
        "id": "251d0f59-dfa8-46c9-a1e0-e854f343d027",
        "createdDate": "2018-12-19T16:05:10.519Z",
        "modifiedDate": "2018-12-19T16:05:10.519Z",
        "modifiedByUserName": "INTERNAL\\sa_repository",
        "customProperties": [],
        "owner": {
            "id": "eca5d404-3490-4c4a-ae2a-fc435a1c05ba",
            "userId": "sa_repository",
            "userDirectory": "INTERNAL",
            "name": "sa_repository",
            "privileges": null
        },
        "name": "exttut-01-helloworld",
        "tags": [],
        "whiteList": {
            "id": "0106f312-d616-4a72-84a1-12d57bf25aef",
            "libraryType": 3,
            "privileges": null
        },
        "references": [
            {
                "id": "f3fad7c6-e740-49f6-a76d-dc64dd8e0aa8",
                "dataLocation": "%StaticContentRoot%\\Extensions\\exttut-01-helloworld\\exttut-01-helloworld.js",
                "logicalPath": "/extensions/exttut-01-helloworld/exttut-01-helloworld.js",
                "externalPath": "/extensions/exttut-01-helloworld/exttut-01-helloworld.js",
                "serveOptions": 7,
                "privileges": null
            },
            {
                "id": "5c654340-5e28-43af-82f6-db90e9aa2fa6",
                "dataLocation": "%StaticContentRoot%\\Extensions\\exttut-01-helloworld\\exttut-01-helloworld.qext",
                "logicalPath": "/extensions/exttut-01-helloworld/exttut-01-helloworld.qext",
                "externalPath": "/extensions/exttut-01-helloworld/exttut-01-helloworld.qext",
                "serveOptions": 7,
                "privileges": null
            }
        ],
        "privileges": null,
        "schemaPath": "Extension"
    }
]
```

## Optional parameters

* `{password}`: Password for the file.

* `{appendPrivileges}`: See [Adding privileges](https://help.qlik.com/en-US/sense-developer/May2026/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Adding-Privileges.htm).