Version 2.1.1792967583 · latest Download OpenAPI Markdown

Certificates

Uploaded or automatically issued HTTPS certificates. They can be bound to sites; a certificate in use by a site cannot be deleted or disabled.

certsCertificatesAuthentication: User (some parameters admin only)14 endpoints

List certificates

GET/api/v2/certs
Authentication: User (some parameters admin only)

Query parameters

FieldTypeRequiredDescription
pageinteger— Page number, starting from 1
Default 1
page_sizeinteger— Items per page
Default 20
sortstring— Sort fields, comma-separated; prefix `-` for descending, e.g. `-created_at,id`
tenant_idinteger— Admin only: filter by tenant. Ignored for tenant credentials, which only see their own tenant's data
namestring— Name contains.
domainstring— SAN contains (part of a domain or IP).
scopestring— site = site certificate; ip = platform IP certificate; panel = panel certificate (used by the controller's HTTPS listener).
Values ["site","ip","panel"]
enabledboolean— Whether enabled
expire_daysinteger— Only list certificates expiring within N days (including expired ones).
idinteger— Exact certificate ID match.
idsstring— Comma-separated certificate IDs (at most 200); matches any of them. Combined with id as an intersection.
desstring— Remark contains.
typestring— Certificate type.
Values ["custom","lets","zerossl","zerossl_api"]
dns_api_idinteger— Certificates using this DNS API credential.
domainsstring— Comma-separated domains or IPs; matches certificates whose SAN contains any of them (exact match).
issue_statestring— ACME issuance state (uploaded certificates have none).
Values ["pending","running","issued","failed"]
kindstring— domain = SAN contains a domain; ip = SAN is all IPs.
Values ["domain","ip"]

Create certificate

POST/api/v2/certs
Authentication: User (some parameters admin only)

Query parameters

FieldTypeRequiredDescription
tenant_idinteger— Admin only: filter by tenant. Ignored for tenant credentials, which only see their own tenant's data

Request body application/json

FieldTypeRequiredDescription
acmeCertAcmeSummary— Issuance state summary (carried by certificate GET and list). Present only for issued certificates (type=lets/zerossl/zerossl_api); uploaded certificates (custom) do not have this field. See GET /certs/{id}/acme for the full state (challenge type, ARI window, etc.).
certstring— Certificate chain PEM (leaf first, intermediates completed, root excluded); no private key (export it only via POST /certs/{id}/private-key).
desstring— Description
enabledboolean— Whether enabled
keystring— Private key PEM (PKCS#1/PKCS#8/SEC1, must not be encrypted); omit when replacing the certificate to verify against the existing key.
namestringRequired Name
scopestring— Certificate scope: site = site certificate; ip = platform IP certificate; panel = panel certificate.
Values ["site","ip","panel"]
typestring— custom = uploaded; lets/zerossl = issued via ACME; zerossl_api = issued via the paid ZeroSSL REST API.

Get ACME issuance states in batch

GET/api/v2/certs/acme-states
Authentication: User (some parameters admin only)

Query parameters

FieldTypeRequiredDescription
idsstringRequired Certificate IDs, comma-separated, at most 200.

Batch-create ACME certificates

POST/api/v2/certs/batch
Authentication: User (some parameters admin only)

Query parameters

FieldTypeRequiredDescription
tenant_idinteger— Admin only: filter by tenant. Ignored for tenant credentials, which only see their own tenant's data

Request body application/json

FieldTypeRequiredDescription
acme_account_idinteger— Account to issue with (same as acme.acme_account_id in POST /certs); if omitted, the tenant's enabled account for the type is used first, then the platform's.
auto_renewboolean— Defaults to true if omitted.
desstring— Description
dns_api_idinteger— DNS API credential used for DNS-01 validation (for ACME certificates).
itemsCertAcme[]Required Issuance states.
typestring— custom = uploaded; lets/zerossl = issued via ACME; zerossl_api = issued via the paid ZeroSSL REST API.

Batch reissue or renew ACME certificates

POST/api/v2/certs/batch-issue
Authentication: User (some parameters admin only)

Request body application/json

FieldTypeRequiredDescription
idsinteger[]Required Certificate IDs.

List IPs eligible for ZeroSSL certificates

GET/api/v2/certs/zerossl-ips
Authentication: User (some parameters admin only)

Query parameters

FieldTypeRequiredDescription
tenant_idinteger— Admin only: filter by tenant. Ignored for tenant credentials, which only see their own tenant's data

Get certificate

GET/api/v2/certs/{id}
Authentication: User (some parameters admin only)

Update certificate

PUT/api/v2/certs/{id}
Authentication: User (some parameters admin only)

Request body application/json

FieldTypeRequiredDescription
acmeCertAcmeSummary— Issuance state summary (carried by certificate GET and list). Present only for issued certificates (type=lets/zerossl/zerossl_api); uploaded certificates (custom) do not have this field. See GET /certs/{id}/acme for the full state (challenge type, ARI window, etc.).
certstring— Certificate chain PEM (leaf first, intermediates completed, root excluded); no private key (export it only via POST /certs/{id}/private-key).
desstring— Description
enabledboolean— Whether enabled
keystring— Private key PEM (PKCS#1/PKCS#8/SEC1, must not be encrypted); omit when replacing the certificate to verify against the existing key.
namestringRequired Name
scopestring— Certificate scope: site = site certificate; ip = platform IP certificate; panel = panel certificate.
Values ["site","ip","panel"]
typestring— custom = uploaded; lets/zerossl = issued via ACME; zerossl_api = issued via the paid ZeroSSL REST API.

Delete certificate

DELETE/api/v2/certs/{id}
Authentication: User (some parameters admin only)

Get certificate ACME issuance status

GET/api/v2/certs/{id}/acme
Authentication: User (some parameters admin only)

Update certificate auto-renewal switch

PUT/api/v2/certs/{id}/acme
Authentication: User (some parameters admin only)

Request body application/json

FieldTypeRequiredDescription
auto_renewbooleanRequired Defaults to true if omitted.

Bind certificate to sites

POST/api/v2/certs/{id}/bind
Authentication: User (some parameters admin only)

Request body application/json

FieldTypeRequiredDescription
site_idsinteger[]Required Sites using this certificate.

Reissue ACME certificate

POST/api/v2/certs/{id}/issue
Authentication: User (some parameters admin only)

Export certificate private key

POST/api/v2/certs/{id}/private-key
Authentication: User (some parameters admin only)

Request body application/json

FieldTypeRequiredDescription
passwordstring— Current login password.
totp_codestring— Current 6-digit TOTP code; the account must have TOTP enabled.

Certificates object

FieldTypeRequiredDescription
acmeCertAcmeSummary— Issuance state summary (carried by certificate GET and list). Present only for issued certificates (type=lets/zerossl/zerossl_api); uploaded certificates (custom) do not have this field. See GET /certs/{id}/acme for the full state (challenge type, ARI window, etc.).
read-only
acme_account_idinteger— Account to issue with (same as acme.acme_account_id in POST /certs); if omitted, the tenant's enabled account for the type is used first, then the platform's.
ari_endstring— End of the renewal window suggested by the CA via ARI.
ari_startstring— Renewal window suggested by the CA via ARI; null = none given by the CA, renew cert.acme.renew_before_days days before expiry.
auto_renewboolean— Defaults to true if omitted.
certstring— Certificate chain PEM (leaf first, intermediates completed, root excluded); no private key (export it only via POST /certs/{id}/private-key).
read-only
cert_idinteger— Certificate ID.
challengestring— Validation method: http-01, dns-01, or http-file (ZeroSSL file validation for zerossl_api).
Values ["http-01","dns-01","http-file"]
created_atstring— Created at
read-only
desstring— Description
dns_api_idinteger— DNS API credential used for DNS-01 validation (for ACME certificates).
enabledboolean— Whether enabled
err_timesinteger— Number of failures in the current round.
failedinteger— Number of failed items.
fingerprintstring— SHA-256 fingerprint of the leaf certificate (lowercase hex).
read-only
idinteger— Record ID
read-only
idsinteger[]Required Certificate IDs.
issued_atstring— Time of the last successful issuance.
issuerstring— Certificate issuer.
read-only
itemsCertAcme[]— Issuance states.
keystring— Private key PEM (PKCS#1/PKCS#8/SEC1, must not be encrypted); omit when replacing the certificate to verify against the existing key.
last_errorstring— Last error
namestring— Name
namesstring[]— SANs (domains, wildcard domains or IPs); falls back to CN when there is no SAN.
read-only
next_try_atstring— After a renewal ends in failure, the earliest time the renewal scan will retry.
not_afterstring— Certificate expiry time.
read-only
not_beforestring— Time the certificate becomes valid.
read-only
ocspboolean— The leaf certificate carries an OCSP URL (nodes can staple).
read-only
okinteger— Number of items queued for issuance.
passwordstring— Current login password.
renewingboolean— The current round is a renewal (the old certificate stays in use on failure).
scopestring— Certificate scope: site = site certificate; ip = platform IP certificate; panel = panel certificate.
Values ["site","ip","panel"]
site_idsinteger[]— Sites using this certificate.
read-only
statestring— pending = queued or waiting to retry; running = issuing; issued = issued; failed = retries exhausted (alert sent).
Values ["pending","running","issued","failed"]
tenant_idinteger— Owning tenant; null = platform IP certificate.
read-only
totp_codestring— Current 6-digit TOTP code; the account must have TOTP enabled.
typestring— custom = uploaded; lets/zerossl = issued via ACME; zerossl_api = issued via the paid ZeroSSL REST API.
updated_atstring— Updated at
read-only
versioninteger— Certificate content version; incremented on each replacement.
read-only
zerossl_order_idstring— Current ZeroSSL order ID of a zerossl_api certificate; empty = no order yet.
zerossl_order_statestring— ZeroSSL order status (draft, pending_validation, issued, cancelled, etc.); empty = no order yet.