---
title: "Create a managed storage credential"
method: POST
path: "/organizations/{id}/credentials"
tags: ["Managed Credentials"]
---

# Create a managed storage credential

`POST /organizations/{id}/credentials`

Registers cloud storage credentials (S3, GCS, Azure) encrypted at rest

## Path parameters

- `id` string, required

## Request body

- GithubComActiveloopaiDeeplakeApiInternalCredentialsCreateRequest
  - `base_path` string
  - `creds` object
  - `name` string
  - `storage_type` string

## Response `201`

Created

- GithubComActiveloopaiDeeplakeApiInternalCredentialsCreateResponse
  - `app_id` string
  - `id` string
  - `install_command` string
  - `service_account_email` string — ServiceAccountEmail is populated for gcs_federated creds. It is the per-credential GCP service account the api-server provisioned; the customer must grant this SA bucket access for the credential to work.
  - `state` 'draft' | 'sp_pending' | 'sp_verified' | 'access_pending' | 'unverified_saved' | 'verified'

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `409` — Duplicate name

---

[API](https://skmtc.net/deeplake/apis/deeplake-api.md) · [All operations](https://skmtc.net/deeplake/apis/deeplake-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/deeplake/deeplake-api/revisions/e16ed11d991c/schema)
