Skip to main content
View as Markdown

Email Provider Configuration - Messaging

Email Provider Configuration​

Configure a custom email service provider (SendGrid) for your account. By default, Kaltura provides a shared email provider. For branded sending domains and dedicated deliverability, configure your own.

11.1 Provider Entity​

FieldTypeDescription
idstringAuto-generated identifier (read-only)
partnerIdintegerPartner ID (read-only)
typestringProvider type: "sendGrid"
apiKeystringSendGrid API key
sendgridWebhookKeystringSendGrid webhook verification key
domainsstring[]Verified sender domains
defaultSenderstringDefault sender email address
unsubscribeClickTrackingbooleanEnable SendGrid click tracking for unsubscribe links
statusstringenabled, disabled, or deleted
overrideResidencystringData residency override: "EU" or "GLOBAL"
versionintegerAuto-incrementing version (read-only)
createdAtstringISO 8601 timestamp (read-only)
updatedAtstringISO 8601 timestamp (read-only)

11.2 Add a Provider​

FieldTypeRequiredDescription
typestringYesProvider type: "sendGrid"
apiKeystringYesSendGrid API key
sendgridWebhookKeystringNoSendGrid webhook verification key
domainsstring[]NoVerified sender domains
defaultSenderstringNoDefault sender email address
unsubscribeClickTrackingbooleanNoEnable SendGrid click tracking for unsubscribe links
overrideResidencystringNoData residency override: "EU" or "GLOBAL"

Response: Full provider object with generated id, version, and timestamps.

curl -X POST "$KALTURA_MESSAGING_URL/email-provider/add" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{
"type": "sendGrid",
"apiKey": "SG.your-sendgrid-api-key",
"sendgridWebhookKey": "your-webhook-verification-key",
"domains": ["events.example.com"],
"defaultSender": "events@events.example.com"
}'

11.3 List Providers​

curl -X POST "$KALTURA_MESSAGING_URL/email-provider/list" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d '{}'

11.4 Provider Lookup​

Resolve which email provider will be used for a given app context.

FieldTypeRequiredDescription
appGuidstringNoApp Registry GUID to check provider resolution for

Response: The resolved provider object. Resolution order: partner + appGuid, then partner, then default (partner 0).

curl -X POST "$KALTURA_MESSAGING_URL/email-provider/lookup" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{\"appGuid\": \"$APP_GUID\"}"

The resolution order is: partner + appGuid → partner → default (partner 0).

11.5 Assign Provider to App​

Assign a specific provider to an app context.

FieldTypeRequiredDescription
idstringYesEmail provider ID
appGuidstringYesApp Registry GUID to assign the provider to
curl -X POST "$KALTURA_MESSAGING_URL/email-provider/emailProviderAssignment" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{
\"id\": \"$PROVIDER_ID\",
\"appGuid\": \"$APP_GUID\"
}"

Response: EmailProviderAssignmentRule object with id, emailProviderId, appGuid, version.

11.6 Enable / Disable a Provider​

FieldTypeRequiredDescription
idstringYesEmail provider ID

Response: Updated provider object with new status.

# Enable
curl -X POST "$KALTURA_MESSAGING_URL/email-provider/enable" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{\"id\": \"$PROVIDER_ID\"}"

# Disable
curl -X POST "$KALTURA_MESSAGING_URL/email-provider/disable" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{\"id\": \"$PROVIDER_ID\"}"

11.7 Delete a Provider​

FieldTypeRequiredDescription
idstringYesEmail provider ID to delete
curl -X POST "$KALTURA_MESSAGING_URL/email-provider/delete" \
-H "Authorization: Bearer $KALTURA_KS" \
-H "Content-Type: application/json" \
-d "{\"id\": \"$PROVIDER_ID\"}"