---
title: "Extensions"
description: "Extensions"
url: "https://www.contentstack.com/docs/developers/sdks/content-management-sdk/python/reference/extensions"
product: "Contentstack"
doc_type: "guide"
audience:
  - developers
  - admins
version: "current"
last_updated: "2026-09-21"
---

# Extensions

## Extensions

Extensions typically refer to additional functionalities, customizations, or integrations that developers can add to a content management system. Contentstack provides a variety of extensions to enhance your functionality such as [Dashboard Extensions](/docs/headless-cms/about-stack-dashboard), [Asset Sidebar Extensions](/docs/developer-hub/asset-sidebar-location), [Sidebar Extensions](/docs/developer-hub/about-ui-locations), [Experience Extensions](/docs/marketplace/difference-between-marketplace-apps-and-extensions).

## create

The create method adds a new extension in a particular stack of your Contentstack account.

```
extension = {
           tags: [
           'tag1',
           'tag2'
           ],
           data_type: 'text',
           title: 'Old Extension',
           src: "Enter either the source code (use 'srcdoc') or the external hosting link of the extension depending on the hosting method you selected.",
           multiple: false,
           config: {},
           type: 'field'
       }
import contentstack_management
client = contentstack_management.Client(authtoken='your_authtoken')
result = client.stack('api_key').extension("extension_uid").update(extension).json()
```

Data required to create a new extension

## delete

The Delete method removes an extension permanently from your stack.

```
client = contentstack_management.Client(authtoken='your_authtoken')
result = client.stack('api_key').extension('extension_uid').delete().json()
```

UID of the extension

## fetch

The fetch method retrieves information about the specified extension.

```
import contentstack_management
client = contentstack_management.Client(authtoken='your_authtoken')
result = client.stack('api_key').extension('extension_uid').fetch().json()
```

UID of the extension

## find

The find method retrieves the data about all extensions in the stack.

```
import contentstack_management
client = contentstack_management.Client(authtoken='your_authtoken')
result = client.stack("api_key").extension().find().json()
```

## update

The update method allows you to make changes in the existing extensions in the stack.

```
data = {
       "extension": {
           "tags": [
               "tag1",
               "tag2"
           ],
           "data_type": "text",
           "title": "Old Extension",
           "src": "Enter either the source code (use 'srcdoc') or the external hosting link of the extension depending on the hosting method you selected.",
           "multiple": false,
           "config": "{}",
           "type": "field"
       }
   }
import contentstack_management
client = contentstack_management.Client(authtoken='your_authtoken')
result = client.stack('api_key').extension("extension_uid").update(data).json()
```

The request body

## upload

The upload method is used to upload a new extension to your stack.

```
extension = {
       "file_name": "demo.html",
       "file_path": "/Users/sunil.lakshman/Downloads/demo.html",
       "data_type": 'text',
       "title": 'Old Extension',
       "multiple": False,
       "tags": {},
       "type": 'dashboard'
       }
import contentstack_management
client = contentstack_management.Client(authtoken='your_authtoken')
result = client.stack('api_key').extension().upload(extension).json()
```

The request body

## Extensions | Python Management SDK | Contentstack

Extensions let you build custom fields and widgets to tailor the Contentstack UI and behavior, in the Python Management SDK.