API keys

Create API key

Create a new scoped API key with the Go SDK.

POST/api-keys

Use client.ApiKeys.Create to create a scoped API key.

Call the method

apiKey, _, _ := client.ApiKeys.Create(
	blnkgo.CreateApiKeyRequest{
		Name: "Service Account",
		Owner: "merchant_a",
		Scopes: []string{
			"ledgers:read",
			"balances:write",
		},
		ExpiresAt: time.Date(
			2026, 12, 31, 23, 59, 59, 0, time.UTC,
		),
	},
)
FieldTypeDescription
NamestringDescriptive name for the key or service account.
OwnerstringOwner identifier you assign, such as a team, service, or user ID.
Scopes[]stringList of permissions in resource:action format (for example ledgers:read).
ExpiresAttime.TimeExpiration timestamp. Must be a non-zero time.

Store the plaintext key

Save apiKey.Key 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
}

Go response (*blnkgo.ApiKeyResponse)

FieldTypeDescription
ApiKeyIDstringUnique ID for the key. Use it to revoke the key.
KeystringPlaintext secret. Store it now. It is only returned at creation.
NamestringName you passed in the request.
OwnerIDstringOwner assigned to the key.
Scopes[]stringPermissions granted to the key.
ExpiresAtstringDate and time the key expires.
CreatedAtstringDate and time the key was created.
LastUsedAtstringDate and time the key was last used.
IsRevokedboolWhether the key has been revoked.
RevokedAtstringRevocation timestamp when present.