API keys

Create API key

Create a new scoped API key with the Java SDK.

POST/api-keys

Use blnk.apiKeys().create for this operation.

Call the method

ApiResponse<JsonNode> response = blnk.apiKeys().create(
    CreateApiKeyData.create()
        .name("Read-only key")
        .owner("merchant_a")
        .scopes(List.of("ledgers:read"))
        .expiresAt("2030-01-01T00:00:00Z"));
FieldTypeDescription
nameStringDescriptive name for the key or service account.
ownerStringOwner identifier you assign, such as a team, service, or user ID.
scopesList<String>List of permissions in resource:action format (for example ledgers:read).
expires_atStringExpiration timestamp (ISO 8601, for example 2026-12-31T23:59:59Z).

Store the plaintext key

Save response.data().get("key").asText() immediately. It is only returned at creation and cannot be retrieved later.

Response

{
  "api_key_id": "api_key_879f0ecb-e29f-4137-801b-1048366381db",
  "key": "YVLIhuIplUzLRCcT9r7DQ_jsGKCXAn39JQ3n_o-Ll2Q=",
  "name": "Service Account",
  "owner_id": "owner_id",
  "scopes": ["ledgers:read", "balances:write"],
  "expires_at": "2026-03-11T00:00:00Z",
  "created_at": "2025-11-18T13:39:50.390457762Z",
  "last_used_at": "0001-01-01T00:00:00Z",
  "is_revoked": false
}
FieldTypeDescription
api_key_idStringUnique ID for the key. Use it to revoke the key.
keyStringPlaintext secret. Store it now. It is only returned at creation.
scopesList<String>Permissions granted to the key.
expires_atStringDate and time the key expires.
is_revokedbooleanWhether the key has been revoked.