ACME accounts
CA accounts used for automatic issuance (Let's Encrypt, ZeroSSL). Registered with the CA on first issuance.
acme-accountsCertificatesAuthentication: User (some parameters admin only)5 endpointsList ACME accounts
GET
/api/v2/acme-accountsAuthentication: User (some parameters admin only)
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| page | integer | — | Page number, starting from 1 |
| page_size | integer | — | Items per page |
| sort | string | — | Sort fields, comma-separated; prefix `-` for descending, e.g. `-created_at,id` |
| tenant_id | integer | — | Admin only: filter by tenant. Ignored for tenant credentials, which only see their own tenant's data |
| ca | string | — | Only list accounts of this CA. |
Create ACME account
POST
/api/v2/acme-accountsAuthentication: User (some parameters admin only)
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| tenant_id | integer | — | Admin only: filter by tenant. Ignored for tenant credentials, which only see their own tenant's data |
Request body application/json
| Field | Type | Required | Description |
|---|---|---|---|
| api_key | string | — | Mask of the ZeroSSL REST API key (`****abcd`); empty = not set. The key is stored encrypted and never returned in plaintext. |
| ca | string | Required | CA that issues certificates: lets = Let's Encrypt; zerossl = ZeroSSL. |
| directory | string | — | ACME directory URL; empty = the CA's URL in the controller's acme.directories (the production URL by default). |
| eab_hmac | string | — | Masked (last 4 chars shown as `****abcd` when 16+ chars, otherwise `********`); plaintext is never returned. |
| eab_kid | string | — | EAB key ID (used by ZeroSSL). |
| string | — | ||
| enabled | boolean | — | Whether enabled |
| name | string | Required | Name |
| recheck | boolean | — | When true, re-check the stored API key; on success the account becomes usable again and certificates waiting on it are retried immediately. |
Get ACME account
GET
/api/v2/acme-accounts/{id}Authentication: User (some parameters admin only)
Update ACME account
PUT
/api/v2/acme-accounts/{id}Authentication: User (some parameters admin only)
Request body application/json
| Field | Type | Required | Description |
|---|---|---|---|
| api_key | string | — | Mask of the ZeroSSL REST API key (`****abcd`); empty = not set. The key is stored encrypted and never returned in plaintext. |
| ca | string | Required | CA that issues certificates: lets = Let's Encrypt; zerossl = ZeroSSL. |
| directory | string | — | ACME directory URL; empty = the CA's URL in the controller's acme.directories (the production URL by default). |
| eab_hmac | string | — | Masked (last 4 chars shown as `****abcd` when 16+ chars, otherwise `********`); plaintext is never returned. |
| eab_kid | string | — | EAB key ID (used by ZeroSSL). |
| string | — | ||
| enabled | boolean | — | Whether enabled |
| name | string | Required | Name |
| recheck | boolean | — | When true, re-check the stored API key; on success the account becomes usable again and certificates waiting on it are retried immediately. |
Delete ACME account
DELETE
/api/v2/acme-accounts/{id}Authentication: User (some parameters admin only)
ACME accounts object
| Field | Type | Required | Description |
|---|---|---|---|
| api_checked_at | string | — | Time the API key was last checked. |
| api_error | string | — | Last account-level error from checking the API key or issuing with it. |
| api_key | string | — | Mask of the ZeroSSL REST API key (`****abcd`); empty = not set. The key is stored encrypted and never returned in plaintext. |
| api_state | string | — | API key state: none = not set; ok = usable; blocked = account-level error (quota reached, unpaid, key rejected; retried after 6 hours or after a successful recheck); error = the key cannot be decrypted and must be re-entered. |
| ca | string | — | CA that issues certificates: lets = Let's Encrypt; zerossl = ZeroSSL. |
| created_at | string | — | Created at |
| directory | string | — | ACME directory URL; empty = the CA's URL in the controller's acme.directories (the production URL by default). |
| eab_hmac | string | — | Masked (last 4 chars shown as `****abcd` when 16+ chars, otherwise `********`); plaintext is never returned. |
| eab_kid | string | — | EAB key ID (used by ZeroSSL). |
| string | — | ||
| enabled | boolean | — | Whether enabled |
| id | integer | — | Record ID |
| last_error | string | — | Last error |
| name | string | — | Name |
| recheck | boolean | — | When true, re-check the stored API key; on success the account becomes usable again and certificates waiting on it are retried immediately. |
| status | string | — | new = not registered yet; registered = registered with the CA; error = registration failed (see last_error). |
| tenant_id | integer | — | Owning tenant; null = platform account. |
| updated_at | string | — | Updated at |