SanctiKey

Documentation

API reference.

Every public route of the SanctiKey API, rendered from the public OpenAPI document the service's build emits. The document names no server, so paths are shown without a host.

Authentication

Every route requires an HTTP bearer credential in the Authorization header. How your pipeline gets one is in Getting started.

Keys

GET/v1/keys/{key_id}

Get key metadata

ParameterTypeNotes
key_id (path)requiredstring

DELETE/v1/keys/{key_id}

Schedule key deletion

ParameterTypeNotes
key_id (path)requiredstring

POST/v1/keys/{key_id}/cancel-deletion

Cancel a scheduled key deletion

ParameterTypeNotes
key_id (path)requiredstring

PUT/v1/keys/{key_id}/partition

Assign key to a named partition

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): AssignPartitionRequest

GET/v1/keys/{key_id}/regions

List the regions a key is placed in

ParameterTypeNotes
key_id (path)requiredstring

POST/v1/keys/{key_id}/regions

Replicate a key into another region

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): AddRegionRequest

POST/v1/keys/{key_id}/relocate

Move a key's home region

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): AddRegionRequest

PATCH/v1/regions/failover/{source_region}

Reconcile a failover mapping's lifecycle status

ParameterTypeNotes
source_region (path)requiredstring

Request body (required): FailoverStatusRequest

DELETE/v1/regions/failover/{source_region}

Remove a region's DR failover mapping

ParameterTypeNotes
source_region (path)requiredstring

DELETE/v1/keys/{key_id}/regions/{region}

Remove a key's regional placement

ParameterTypeNotes
key_id (path)requiredstring
region (path)requiredstring

GET/v1/keys

List keys in the caller's partitions

ParameterTypeNotes
partition_id (query)string or null
limit (query)integer

minimum 1; maximum 100; default 20

next_token (query)string or null

POST/v1/keys

Create a KMS-backed key

Request body (required): CreateKeyRequest

GET/v1/regions

Account-wide key placement matrix

PUT/v1/regions/failover

Set a region-to-region DR failover mapping

Request body (required): FailoverPairRequest

Crypto

POST/v1/keys/{key_id}/encrypt

Encrypt plaintext with a KMS key

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): EncryptRequest

POST/v1/keys/{key_id}/decrypt

Decrypt a KMS-encrypted ciphertext

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): DecryptRequest

POST/v1/keys/{key_id}/verify

Verify a signature with a KMS key

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): VerifyRequest

POST/v1/keys/{key_id}/generate-data-key

Generate a data encryption key

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): GenerateDataKeyRequest

POST/v1/keys/{key_id}/re-encrypt

Re-encrypt ciphertext under a different KMS key

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): ReEncryptRequest

Sign

POST/v1/keys/{key_id}/sign

Sign a message with a KMS key

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): SignRequest

POST/v1/keys/{key_id}/sign/upload-url

Get a presigned S3 URL for large message signing

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): SignUploadUrlRequest

CSR

POST/v1/keys/{key_id}/csr

Generate a certificate signing request

ParameterTypeNotes
key_id (path)requiredstring

Request body (required): CsrRequest

PKI

GET/v1/pki/cas/{key_id}

Get a CA and its chain

ParameterTypeNotes
key_id (path)requiredstring

GET/v1/pki/cas/{key_id}/certificates

List certificates issued by a CA

ParameterTypeNotes
key_id (path)requiredstring

GET/v1/pki/cas/{key_id}/crl

Get a CA's current CRL

ParameterTypeNotes
key_id (path)requiredstring

GET/v1/pki/cas

List owned CAs

POST/v1/pki/cas

Designate an owned key as a CA

Request body (required): CaCreateRequest

GET/v1/pki/certificates/{serial}

Get an issued certificate

ParameterTypeNotes
serial (path)requiredstring

POST/v1/pki/certificates/{serial}/revoke

Revoke an issued certificate

ParameterTypeNotes
serial (path)requiredstring

Request body (required): RevokeCertRequest

POST/v1/pki/certificates

Issue a leaf certificate

Request body (required): IssueCertRequest

POST/v1/pki/certificates/upload

Import an externally-signed certificate

Request body (required): UploadCertRequest

Requests

GET/v1/requests/{request_id}

Poll async operation status

ParameterTypeNotes
request_id (path)requiredstring

max length 128

Profile

DELETE/v1/profile/api-keys/{key_id}

Revoke an API key

ParameterTypeNotes
key_id (path)requiredstring

GET/v1/profile/api-keys/policy

Get the tenant API key policy for scope selector

GET/v1/profile/api-keys

List API keys for the calling user

POST/v1/profile/api-keys

Create an API key

Request body (required): CreateApiKeyRequest

GET/v1/profile/mfa

Get MFA enrollment status

POST/v1/profile/mfa/associate

Begin TOTP enrollment

POST/v1/profile/mfa/verify

Verify TOTP and enable MFA

Request body (required): VerifyMfaRequest

Schemas

AddRegionRequest

Replicate an existing key into another region (spec §4.1 B, PLACEMENT).

FieldTypeNotes
regionrequiredstring

AWS region id. Must be a member of the platform FIPS allowlist.

max length 32; pattern ^[a-z]{2}-[a-z]+-\d{1,2}$

ApiKeyCreatedResponse

A JSON object; the public specification does not enumerate its fields.

ApiKeyListResponse

A JSON object; the public specification does not enumerate its fields.

ApiKeyPolicyResponse

A JSON object; the public specification does not enumerate its fields.

AssignPartitionRequest

FieldTypeNotes
partition_idrequiredstring

Partition name. Lowercase alphanumeric and hyphens only.

max length 64; pattern ^[a-z0-9-]+$

AssignPartitionResponse

A JSON object; the public specification does not enumerate its fields.

CaCreateRequest

Designate an owned KMS SIGN_VERIFY key as a root or intermediate CA.

FieldTypeNotes
key_idrequiredstring

max length 128; pattern (?i)^((?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32})|arn:aws(-[a-z]+)*:kms:[a-z0-9-]+:\d{12}:key/(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}))$

moderequiredstring

one of root, intermediate

subjectrequiredCsrSubject
validity_yearsinteger

minimum 1; maximum 30; default 10

pathleninteger

minimum 0; maximum 3; default 0

issuer_ca_key_idstring or null

max length 128; pattern (?i)^((?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32})|arn:aws(-[a-z]+)*:kms:[a-z0-9-]+:\d{12}:key/(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}))$

profilestring or null

min length 1; max length 32

CaDetailResponse

A JSON object; the public specification does not enumerate its fields.

CaListResponse

A JSON object; the public specification does not enumerate its fields.

CaResponse

A JSON object; the public specification does not enumerate its fields.

CertDetailResponse

A JSON object; the public specification does not enumerate its fields.

CertListResponse

A JSON object; the public specification does not enumerate its fields.

CertResponse

A JSON object; the public specification does not enumerate its fields.

CreateApiKeyRequest

FieldTypeNotes
namerequiredstring

Human-readable label for this API key.

min length 1; max length 64

scopesrequiredarray of string

Scopes granted to this key. Must be a subset of the requesting user's own scopes.

min items 1; max items 10

CreateKeyRequest

FieldTypeNotes
key_specrequiredstring

one of RSA_2048, RSA_3072, RSA_4096, ECC_NIST_P256, ECC_NIST_P384, ECC_NIST_P521, SYMMETRIC_DEFAULT

key_usagerequiredstring

one of ENCRYPT_DECRYPT, SIGN_VERIFY

descriptionstring

max length 256; default ""

partition_idstring

Partition identifier. Lowercase alphanumeric and hyphens only.

max length 64; pattern ^[a-z0-9-]+$; default "default"

home_regionstring or null

max length 32; pattern ^[a-z]{2}-[a-z]+-\d{1,2}$

idempotency_tokenstring or null

min length 8; max length 64; pattern ^[A-Za-z0-9_-]+$

CrlResponse

A JSON object; the public specification does not enumerate its fields.

CsrRequest

FieldTypeNotes
subjectrequiredCsrSubject
signing_algorithmstring

one of RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512; default "RSASSA_PKCS1_V1_5_SHA_256"

san_dns_namesarray of string

max items 20

CsrResponse

A JSON object; the public specification does not enumerate its fields.

CsrSubject

FieldTypeNotes
common_namerequiredstring

max length 64; pattern ^[^\x00-\x1f\x7f\s,+"\\<>;](?:[^\x00-\x1f\x7f,+"\\<>;]*[^\x00-\x1f\x7f\s,+"\\<>;])?$

organizationstring or null

max length 64; pattern ^[^\x00-\x1f\x7f\s,+"\\<>;](?:[^\x00-\x1f\x7f,+"\\<>;]*[^\x00-\x1f\x7f\s,+"\\<>;])?$

countrystring or null

min length 2; max length 2; pattern ^[A-Z]{2}$

matter_vidstring or null

min length 4; max length 4; pattern ^[0-9A-F]{4}$

matter_pidstring or null

min length 4; max length 4; pattern ^[0-9A-F]{4}$

DecryptRequest

FieldTypeNotes
ciphertext_blobrequiredstring

Base64-encoded binary data.

max length 12288

encryption_contextobject or null

DecryptResponse

A JSON object; the public specification does not enumerate its fields.

DeleteKeyResponse

A JSON object; the public specification does not enumerate its fields.

EncryptRequest

FieldTypeNotes
plaintextrequiredstring

Base64-encoded plaintext. Max 4 MB raw.

max length 5592

encryption_contextobject or null

EncryptResponse

A JSON object; the public specification does not enumerate its fields.

FailoverPair

A JSON object; the public specification does not enumerate its fields.

FailoverPairRequest

Set (upsert) a source region's failover target.

FieldTypeNotes
source_regionrequiredstring

AWS region id. Must be a member of the platform FIPS allowlist.

max length 32; pattern ^[a-z]{2}-[a-z]+-\d{1,2}$

target_regionrequiredstring

AWS region id. Must be a member of the platform FIPS allowlist.

max length 32; pattern ^[a-z]{2}-[a-z]+-\d{1,2}$

FailoverStatusRequest

Reconcile a pair's lifecycle status (spec §4.3). HostedZones flips PENDING/ACTIVE as health-check records are laid or torn down; only those two states are settable via this path.

FieldTypeNotes
statusrequiredstring

one of PENDING, ACTIVE

GenerateDataKeyRequest

FieldTypeNotes
key_specstring

one of AES_256, AES_128; default "AES_256"

encryption_contextobject or null

GenerateDataKeyResponse

A JSON object; the public specification does not enumerate its fields.

HTTPValidationError

FieldTypeNotes
detailarray of ValidationError

IssueCertRequest

Issue a leaf certificate from an uploaded CSR using an owned CA key. `profile` names an entry in common.cert_profiles; the 397-day CA/B cap is a property of the TLS profiles, not of issuance.

FieldTypeNotes
ca_key_idrequiredstring

max length 128; pattern (?i)^((?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32})|arn:aws(-[a-z]+)*:kms:[a-z0-9-]+:\d{12}:key/(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}))$

csr_pemrequiredstring

max length 16384

profilerequiredstring

max length 32

validity_daysinteger

minimum 1; maximum 36500; default 90

no_expiryboolean

default false

KeyListResponse

A JSON object; the public specification does not enumerate its fields.

KeyRegionListResponse

A JSON object; the public specification does not enumerate its fields.

KeyRegionResponse

A JSON object; the public specification does not enumerate its fields.

KeyResponse

A JSON object; the public specification does not enumerate its fields.

ReEncryptRequest

FieldTypeNotes
ciphertext_blobrequiredstring

Base64-encoded binary data.

max length 12288

destination_key_idrequiredstring

max length 128; pattern (?i)^((?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32})|arn:aws(-[a-z]+)*:kms:[a-z0-9-]+:\d{12}:key/(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}))$

source_encryption_contextobject or null
destination_encryption_contextobject or null

ReEncryptResponse

A JSON object; the public specification does not enumerate its fields.

RegionMatrixResponse

A JSON object; the public specification does not enumerate its fields.

RemoveRegionResponse

A JSON object; the public specification does not enumerate its fields.

RequestResponse

A JSON object; the public specification does not enumerate its fields.

ResponseValidationError

FieldTypeNotes
detailarray of ValidationError

RevokeApiKeyResponse

A JSON object; the public specification does not enumerate its fields.

RevokeCertRequest

Revoke an issued certificate. Reason maps to an RFC 5280 CRL reason code.

FieldTypeNotes
reasonstring

one of unspecified, keyCompromise, affiliationChanged, superseded, cessationOfOperation; default "unspecified"

SignRequest

FieldTypeNotes
messagerequiredstring

Base64-encoded message or pre-computed digest.

max length 87381

signing_algorithmrequiredstring

one of RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA

message_typestring

one of RAW, DIGEST; default "RAW"

SignResponse

A JSON object; the public specification does not enumerate its fields.

SignUploadUrlRequest

FieldTypeNotes
signing_algorithmrequiredstring

one of RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA

message_typestring

one of RAW, DIGEST; default "RAW"

SignUploadUrlResponse

A JSON object; the public specification does not enumerate its fields.

UploadCertRequest

Import an externally-signed cert; binds to an owned key (F6).

FieldTypeNotes
key_idrequiredstring

max length 128; pattern (?i)^((?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32})|arn:aws(-[a-z]+)*:kms:[a-z0-9-]+:\d{12}:key/(?:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|mrk-[0-9a-f]{32}))$

certificate_pemrequiredstring

max length 16384

chain_pemstring or null

max length 65536

ValidationError

FieldTypeNotes
locrequiredarray of string or integer
typerequiredstring

VerifyMfaRequest

FieldTypeNotes
otprequiredstring

min length 6; max length 8; pattern ^\d{6,8}$

VerifyRequest

FieldTypeNotes
messagerequiredstring

Base64-encoded binary data.

max length 87381

signaturerequiredstring

Base64-encoded binary data.

max length 1024

signing_algorithmrequiredstring

one of RSASSA_PKCS1_V1_5_SHA_256, RSASSA_PKCS1_V1_5_SHA_384, RSASSA_PKCS1_V1_5_SHA_512, RSASSA_PSS_SHA_256, RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512, ECDSA_SHA_256, ECDSA_SHA_384, ECDSA_SHA_512, SM2DSA

message_typestring

one of RAW, DIGEST; default "RAW"

VerifyResponse

A JSON object; the public specification does not enumerate its fields.