Skip to content

Get SMTP configuration

GET
/clusters/{cluster_id}/realms/{realm}/smtp
curl --request GET \
  --url http://localhost:8000/clusters/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/realms/customer-portal/smtp \
  --header 'API-Key: <API-Key>' \
  --header 'API-Version: 2026-06-01.beta'

Returns the SMTP configuration for a realm.

Required scope: smtp:read

cluster_id
required
string format: uuid
realm
required

Keycloak realm name (not ID). Must start with a letter; allows letters, digits, and hyphens.

string
>= 1 characters <= 63 characters /^[a-zA-Z][a-zA-Z0-9-]*$/

Example

customer-portal
API-Version
required
string
Allowed values: 2026-06-01.beta

The request has succeeded.

Media typeapplication/json

SMTP email delivery configuration for a realm.

object
cluster_id
required
string format: uuid
realm
required

Keycloak realm name (not ID). Must start with a letter; allows letters, digits, and hyphens.

string
>= 1 characters <= 63 characters /^[a-zA-Z][a-zA-Z0-9-]*$/
host
required
string
>= 1 characters <= 255 characters
port
required
integer
>= 1 <= 65535
encryption
required
string
Allowed values: none ssl starttls
from_email
required

Sender email address.

string format: email
from_name
string
<= 255 characters
auth_type
required
string
Allowed values: basic oauth2
username

SMTP username. Present when auth_type is basic.

string
has_password
required

true when a password is stored for this configuration.

boolean
token_url

OAuth 2.0 token endpoint URL. Present when auth_type is oauth2.

string format: uri
token_scope

OAuth 2.0 token scope. Present when auth_type is oauth2.

string
client_id

OAuth 2.0 client ID. Present when auth_type is oauth2.

string
has_client_secret
required

true when a client secret is stored for this configuration.

boolean
status
required
string
Allowed values: configured verified failed
last_tested

Timestamp of the last connection test.

string format: date-time
created_at
required
string format: date-time
updated_at
required
string format: date-time

Example

{
  "realm": "customer-portal",
  "host": "smtp.sendgrid.net",
  "port": 587,
  "encryption": "none",
  "from_email": "noreply@mycompany.com",
  "from_name": "MyCompany",
  "auth_type": "basic",
  "status": "configured"
}

Access is unauthorized.

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}

Access is forbidden.

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}

The server cannot find the requested resource.

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}

Client error

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}
Retry-After
integer
RateLimit-Limit
integer
RateLimit-Remaining
integer
RateLimit-Reset
integer
X-RateLimit-Limit-Second
integer
X-RateLimit-Remaining-Second
integer
X-RateLimit-Limit-Minute
integer
X-RateLimit-Remaining-Minute
integer
X-RateLimit-Limit-Hour
integer
X-RateLimit-Remaining-Hour
integer
X-RateLimit-Limit-Day
integer
X-RateLimit-Remaining-Day
integer

Server error

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}

Server error

Media typeapplication/problem+json

RFC 9457 Problem Details object.

object
type
required
string format: uri
title
required
string
status
required
integer
detail
required
string
instance
string format: uri

Example generated

{
  "type": "https://example.com",
  "title": "example",
  "status": 1,
  "detail": "example",
  "instance": "https://example.com"
}