Verify the encryption key

⚠️
Preview — this feature is being built; the design below is the spec.
POST https://app.syntic.ai/v1/organizations/encryption_key/verify

Check now that Syntic can still encrypt and decrypt with your key. Run it after changing key permissions in your cloud account; a failure here is far cheaper than discovering it when stored data becomes unreadable.

For how this fits into a full workflow, see Customer-managed keys.

Headers

HeaderRequiredValue
AuthorizationYesBearer <admin key>: an Admin API key (sk_admin_...). Inference keys are refused with 403 admin_key_required. See Admin API keys.
syntic-betaYes, while in previewadmin-2026-11-01. Without it the call fails with 400 beta_required. See Versioning.
Idempotency-KeyNoUp to 255 characters. Retrying with the same key within 24 hours returns the first result instead of acting twice. See Idempotency.

Response

200 OK, Content-Type: application/json

{
  "type": "encryption_key_check",
  "status": "ok",
  "checked_at": "2026-11-05T10:00:00Z",
  "operations": {
    "encrypt": "ok",
    "decrypt": "ok"
  },
  "latency_ms": 84
}
FieldTypeDescription
statusstringok or failed.
operationsobjectResult of a test encrypt and decrypt. A failed operation carries the error your key service returned, such as permission_denied or key_disabled.

Examples

curl -sS -X POST "https://app.syntic.ai/v1/organizations/encryption_key/verify" \
  -H "Authorization: Bearer $SYNTIC_ADMIN_KEY" \
  -H "syntic-beta: admin-2026-11-01" \
  -H "Idempotency-Key: 8d6f0c1e-4b2a-4a57-9f0e-2f1d3c4b5a69"

Errors

Errors use the error envelope and carry a request_id. Codes specific to this operation:

StatustypecodeWhen
400invalid_request_errorbeta_requiredThe syntic-beta header is missing.
404not_found_errorencryption_key_not_setThe organization uses Syntic-managed keys.
401authentication_errorinvalid_api_keyThe admin key is missing, unknown, revoked or expired.
403permission_erroradmin_key_requiredAn inference key was used.
429rate_limit_errorrate_limitedToo many requests; wait for Retry-After. See Rate-limit headers.
Was this page helpful?