> For the complete documentation index, see [llms.txt](https://docs.imerit.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.imerit.net/sdk/sdk-documentation/organization-level-sdk-functions/create_storage.md).

# create\_storage

`imerit_ango.sdk.SDK.`

## create\_storage(storage\_data)

Integrate a cloud storage provider to your organization with the required credentials and configuration.

### Parameters

* **storage\_data:** Storage
  * A Storage object containing the following attributes:
  * **name:** string
    * The name of the storage instance.
  * **provider:** StorageProvider
    * The cloud storage provider. Options:
      * <kbd>StorageProvider.AWS</kbd>
      * <kbd>StorageProvider.GCP</kbd>
      * <kbd>StorageProvider.AZURE</kbd>
  * **public\_key:** string
    * The public access key for your cloud storage account. For Azure, this is the storage account name.
  * **private\_key:** string
    * The private access key for your cloud storage account. For Azure, this is the storage account key.
  * **region:** string, *default "eu-central-1"*
    * The geographical region where your storage is located. For Azure, use the storage account's Location value.
  * **credentials:** string
    * Additional credentials required for accessing the cloud storage.

{% hint style="warning" %}
For Azure storage integrations, the storage account must allow account key access. If *Allow storage account key access* is disabled in Azure, Ango Hub cannot use the account key to generate the temporary SAS URLs required to read, list, or write blobs.
{% endhint %}

```python
from imerit_ango.models.storage import Storage
from imerit_ango.models.enums import StorageProvider
```

Returns:

* **output:** dict
  * A dictionary containing the result of the operation.
  * Including a `status` field indicating whether the request was successful and a `data` field containing the response payload with updated resources produced by the operation.

<details open>

<summary><strong>How to verify in Ango Hub?</strong></summary>

After successfully executing the `create_storage` function, you can validate the changes directly in Ango Hub.

Navigate to: **Organization → Storages**

* Confirm that the newly created storage appears in the list.
* Ensure that the storage credentials have been configured correctly

{% hint style="info" %}
Changes made via the SDK are reflected in Ango Hub in near real-time. If updates are not immediately visible, please refresh the page.
{% endhint %}

</details>

### Example

{% tabs %}
{% tab title="python" %}

```python
import os
from dotenv import load_dotenv
from imerit_ango.sdk import SDK
from imerit_ango.models.storage import Storage
from imerit_ango.models.enums import StorageProvider

load_dotenv('variables.env')
api_key = os.getenv('API_KEY')

ango_sdk = SDK(api_key)

sdk_response = ango_sdk.create_storage(
    storage_data=Storage(
        name="My Storage",
        provider=StorageProvider.AWS,
        public_key='<YOUR PUBLIC KEY>',
        private_key='<YOUR PRIVATE KEY>',
        region='<YOUR REGION>',
        credentials='<YOUR CREDENTIALS>'
    )
)
```

{% endtab %}

{% tab title="curl" %}

```bash
curl -X POST "https://imeritapi.ango.ai/v2/storages/" \
  -H "Content-Type: application/json" \
  -H "apikey: $ANGO_API_KEY" \
  -d '{
    "credentials": "<YOUR CREDENTIALS>",
    "name": "My Storage",
    "privateKey": "<YOUR PRIVATE KEY>",
    "provider": "AWS",
    "publicKey": "<YOUR PUBLIC KEY>",
    "region": "<YOUR REGION>"
  }'
```

{% endtab %}
{% endtabs %}

<details>

<summary>Sample Output</summary>

```json
{
    "status": "success",
    "data": {
        "storage": {
            "id": "STORAGE_ID",
            "name": "My Storage",
            "provider": "AWS",
            "s3AccessType": "IAM_USER",
            "createdAt": "2026-01-01T00:00:00.000Z",
            "createdBy": "user@imerit.net",
            "publicKey": "<YOUR PUBLIC KEY>",
            "region": "<YOUR REGION>",
            "useAccelerateEndpoint": false,
            "organization": "ORGANIZATION_ID",
            "deleted": false,
            "_id": "STORAGE_ID"
        }
    }
}
```

</details>

{% hint style="info" %}
**See also**

[delete\_storage](/sdk/sdk-documentation/organization-level-sdk-functions/delete_storage.md), [get\_storages](/sdk/sdk-documentation/organization-level-sdk-functions/get_storages.md)
{% endhint %}
