Account keys
Account keys are called ACME keys inside the API.
Fields
- contacts - Array of contact URIs.
- directory_id - Directory to which this key belongs.
- id - CertFu’s ID for the account key, eg:
acmk_sample123456. (Read-only) - jwk_thumbprint - JWK thumbprint of the public key. (Read-only)
- kid - ACME key id. (Read-only)
- name - Name of this key.
- object - Always
acme_key. (Read-only) - order_validations - Whether orders from this key are
challenged orauto_approvedd. - public_key - Public EC or RSA key in pem format.
- state -
valid,deactivated(via client), orrevoked(via UI/API). (Read-only) - used_on - Date of last use. (Read-only)
public_keys may not be reused. If the public_key is updated or state is deactivated or revoked, the old public key is added to a list of invalidated keys.
Required permissions
| API | Permission |
|---|---|
| List, Retrieve | read |
| Create, Update, Revoke | write |
List account keys
Query params
- directory_id - Filter by
directory_id. - state - Filter by
state. - Plus standard paging params.
- sort - Fields:
id(default),name.
- sort - Fields:
directory_id is required.
Request
GET /v1/acme_keys?directory_id=dir_sample123456
Response
On success, 200 with 0 or more account keys.
{
"collection": [
{
"contacts": [
"mailto:acme@example.com"
],
"directory_id": "dir_sample123456",
"id": "acmk_sample123456",
"jwk_thumbprint": "abcdefghij1234567890ABCDEFGHIJ1234567890abc",
"kid": "https://acme.certfu.com/v2/example-prod/accounts/acmk_sample123456",
"name": "host.example.com",
"object": "acme_key",
"order_validations": "challenge",
"public_key": "-----BEGIN PUBLIC KEY-----\n(sample)\n-----END PUBLIC KEY-----",
"state": "valid",
"used_on": "2026-01-01"
}
],
"more_results": false
}
Retrieve an account key
Request
GET /v1/acme_keys/acmk_sample123456
Response
On success, 200 with the account key.
{
"contacts": [
"mailto:acme@example.com"
],
"directory_id": "dir_sample123456",
"id": "acmk_sample123456",
"jwk_thumbprint": "abcdefghij1234567890ABCDEFGHIJ1234567890abc",
"kid": "https://acme.certfu.com/v2/example-prod/accounts/acmk_sample123456",
"name": "host.example.com",
"object": "acme_key",
"order_validations": "challenge",
"public_key": "-----BEGIN PUBLIC KEY-----\n(sample)\n-----END PUBLIC KEY-----",
"state": "valid",
"used_on": "2026-01-01"
}
Create an account key
Request
POST /v1/acme_keys
{
"acme_key": {
"contacts": [
"https://host2.example.com"
],
"directory_id": "dir_sample123456",
"name": "host2.example.com",
"public_key": "-----BEGIN PUBLIC KEY-----\n(sample)\n-----END PUBLIC KEY-----"
}
}
Response
On success, 201 with the new account key.
On error, 422 with standard error response.
{
"contacts": [
"https://host2.example.com"
],
"directory_id": "dir_sample123456",
"id": "acmk_sample123456",
"jwk_thumbprint": "abcdefghij1234567890ABCDEFGHIJ1234567890abc",
"kid": "https://acme.certfu.com/v2/example-prod/accounts/acmk_sample123456",
"name": "host2.example.com",
"object": "acme_key",
"order_validations": "challenge",
"public_key": "-----BEGIN PUBLIC KEY-----\n(sample)\n-----END PUBLIC KEY-----",
"state": "valid",
"used_on": null
}
Update an account key
Request
PUT /v1/acme_keys/acmk_sample123456
{
"acme_key": {
"order_validations": "auto_approve"
}
}
Response
On success, 200 with the updated account key.
On error, 422 with standard error response.
{
"contacts": [
"mailto:acme@example.com"
],
"directory_id": "dir_sample123456",
"id": "acmk_sample123456",
"jwk_thumbprint": "abcdefghij1234567890ABCDEFGHIJ1234567890abc",
"kid": "https://acme.certfu.com/v2/example-prod/accounts/acmk_sample123456",
"name": "host.example.com",
"object": "acme_key",
"order_validations": "auto_approve",
"public_key": "-----BEGIN PUBLIC KEY-----\n(sample)\n-----END PUBLIC KEY-----",
"state": "valid",
"used_on": "2026-01-01"
}
Revoke an account key
Request
DELETE /v1/acme_keys/acmk_sample123456
Response
On success, 200 with the updated account key.
{
"contacts": [
"mailto:acme@example.com"
],
"directory_id": "dir_sample123456",
"id": "acmk_sample123456",
"jwk_thumbprint": "abcdefghij1234567890ABCDEFGHIJ1234567890abc",
"kid": "https://acme.certfu.com/v2/example-prod/accounts/acmk_sample123456",
"name": "host.example.com",
"object": "acme_key",
"order_validations": "challenge",
"public_key": "-----BEGIN PUBLIC KEY-----\n(sample)\n-----END PUBLIC KEY-----",
"state": "revoked",
"used_on": "2026-01-01"
}
On error, 422 with standard error response.