- Print
- DarkLight
CreateAccount (under organization)
- Print
- DarkLight
Availability
Early Access: July 1, 2026
Early Access is gated; contact the Backblaze Sales team for access.
Limited Availability: July 1, 2026
This API is available only to customers with access to the Backblaze Enterprise Web Console. For more information, contact the Backblaze Sales team.
Create a new account under an organization
An Account is the isolation boundary for storage, IAM, credentials, and lifecycle operations. A Billing Account is a separate billing and reporting entity with its own ID namespace. It determines where an Account's usage and charges roll up and uses the resource name format billingAccounts/{billingAccountId}.
Every Account must be assigned to a Billing Account, and multiple Accounts may share the same Billing Account. The selected Billing Account must belong to the same organization as the Account and cannot be changed at this time.
Authorization is eventually consistent. Immediately after a successful create response, follow-up operations may temporarily return 403 FORBIDDEN while authorization changes propagate. Retry transient authorization failures with exponential backoff.
Root principal
When an account is created, Backblaze automatically creates a root IAM principal. The root principal represents the ultimate owner of the account. No credentials are issued for the root principal at creation time; the root principal cannot be used for API access unless credentials are explicitly created later. This mirrors AWS account creation behavior.
Short-lived bearer token obtained from GET /orgs/v1/authorize. Sent as Authorization - Bearer .
The opaque identifier of the organization.
{
"displayName": "tenant-prod",
"billingAccount": "billingAccounts/456"
}Billing account reference. Must belong to the same organization as the new account.
The request succeeded.
{
"name": "accounts/912345678901",
"accountId": "912345678901",
"parent": "organizations/org-acme-prod",
"organization": "organizations/org-acme-prod",
"billingAccount": "billingAccounts/456",
"displayName": "tenant-prod",
"state": "ACTIVE",
"suspensionReasons": [],
"etag": "BwXk9a2J8p0=",
"createTime": "2026-02-03T21:10:00Z",
"updateTime": "2026-02-03T21:10:00Z",
"deleteTime": null,
"purgeTime": null
}Resource name in the form accounts/.
The numeric account identifier. Valid values match 9[0-4][0-9]{10}.
Parent resource name. May be an organization or an Organizational Unit.
The organization the account belongs to. Always populated, even if parent is an Organizational Unit.
Billing account reference, in the form billingAccounts/. Must belong to the same organization as the account. Cannot be changed after creation.
Account lifecycle state. An account is SUSPENDED while one or more suspension reasons are active.
Reasons the account is suspended. Values are unique and array order is unspecified.
The request was malformed or failed validation.
| HTTP Status | Code | Description |
|---|---|---|
| 400 | INVALID_ARGUMENT | One or more request parameters were invalid. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The request was not authenticated.
| HTTP Status | Code | Description |
|---|---|---|
| 401 | UNAUTHORIZED | Missing, expired, or invalid bearer token. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The caller is not authorized to perform this operation.
| HTTP Status | Code | Description |
|---|---|---|
| 403 | FORBIDDEN | The authenticated principal lacks permission for this action. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The request conflicted with the current state of the resource.
| HTTP Status | Code | Description |
|---|---|---|
| 409 | CONFLICT | etag mismatch, resource already exists, or precondition failed. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The request was rate-limited.
| HTTP Status | Code | Description |
|---|---|---|
| 429 | TOO_MANY_REQUESTS | Rate limit exceeded. Use exponential backoff. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.
The server encountered an unexpected condition.
| HTTP Status | Code | Description |
|---|---|---|
| 500 | INTERNAL | Unexpected server error. Include the requestId when contacting support. |
Opaque correlation identifier matching the Request-Id response header. Include in support requests.
Numeric error code.
Human-readable description of the error.
Reserved for structured, non-sensitive diagnostic information related to the error condition.