The Novu Kotlin SDK provides a fluent and expressive interface for interacting with Novu's API and managing notifications. Please refer to the full documentation to learn more.
Maven users:
<!--add dependency-->
<dependency>
<groupId>co.novu</groupId>
<artifactId>novu-kotlin</artifactId>
<version>1.2.0</version>
</dependency>
Gradle users:
//Kotlin
//add dependency
implementation("co.novu:novu-kotlin:1.2.0")
//Groovy
//add dependency
implementation 'co.novu:novu-kotlin:1.2.0'
Sync your project, and you should have the artifacts downloaded.
To use the library, first initialize the client with your API token:
// without changing the backend URL
import co.novu.Novu
import co.novu.extensions.environments
fun main() {
val novu = Novu(apiKey = "API_KEY")
val environment = novu.environments()
println(environment)
}
// with config param
import co.novu.Novu
import co.novu.NovuConfig
import co.novu.extensions.environments
fun main() {
val config = NovuConfig(backendUrl = "URL", apiKey = "API_KEY")
val novu = Novu(config)
val environment = novu.environments()
println(environment)
}
You can then call methods on the client to interact with the Novu API:
novu.subscribers()
The client methods map directly to the Novu API endpoints. Here is a list of all the available methods. Check the API docs for list of available methods
.
changes(query = {})
countChanges()
applyBulkChanges()
applyChange(changeId)
currentEnvironment()
createEnvironment(body)
environments()
updateEnvironment(environmentId, body)
apiKeys()
regenerateApiKeys()
updateWidgetSettings(body)
triggerEvent(body)
triggerBulkEvent(body)
broadcastEvent(body)
cancelTriggeredEvent(transactionId)
executionDetails(query = {})
createFeed(body)
feeds()
deleteFeed(feedId)
validateMxRecordSetupForInboundParse()
integrations()
createIntegration(body)
activeIntegrations()
webhookProviderStatus(providerId)
updateIntegration(integrationId, body)
deleteIntegration(integrationId)
channelLimit(channelType)
inAppStatus()
createLayout(body)
layouts(query = {})
layout(layoutId)
deleteLayout(layoutId)
updateLayout(layoutId, body)
makeDefaultLayout(layoutId)
messages(query = {})
deleteMessage(messageId)
createNotificationGroup(body)
notificationGroups()
notificationTemplates(query = {})
createNotificationTemplate(body)
updateNotificationTemplate(templateId, body)
deleteNotificationTemplate(templateId)
notificationTemplate(templateId)
notificationTemplateBlueprint(templateId)
createNotificationTemplateBlueprint(templateId)
updateNotificationTemplateStatus(templateId, body)
notifications(query = {})
notificationsStats()
notificationsGraphStats(query = {})
notification(notificationId)
subscribers(query = {})
createSubscriber(body)
createSubscriberBulk(body)
subscriber(subscriberId)
updateSubscriber(subscriberId, body)
deleteSubscriber(subscriberId)
updateSubscriberCredentials(subscriberId, body)
updateSubscriberOnlineStatus(subscriberId, body)
subscriberPreferences(subscriberId)
updateSubscriberPreference(subscriberId, templateId, body)
subscriberNotificationFeed(subscriberId, query = {})
subscriberUnseenNotificationCount(subscriberId, query = {})
markSubscriberFeedSeen(subscriberId, body)
markMessageActionSeen(subscriberId, messageId, type)
createTopic(body)
filterTopics(page, pageSize, key)
addSubscribers(topicKey, body)
removeSubscribers(topicKey, body)
checkSubscriber(topicKey, externalSubscriberId)
topic(topicKey)
renameTopic(topicKey, body)
deleteTopic(topicKey)
getBlueprintsByCategory()
getBlueprint(templateId)
getTenants(page, limit)
createTenant(body)
getTenant(identifier)
updateTenant(identifier)
deleteTenant(identifier)
createOrganization(body)
fetchAllOrganizations()
updateOrganizationName(body)
fetchCurrentOrganization()
removeMemberWithId(identifier)
updateMemberRole(identifier, body)
fetchMembersOfOrganization()
updateOrganizationBrand(body)
createWorkflowOverride(createWorkflowOverrideRequest)
getWorkflowOverrides(getWorkflowOverrideRequest)
getWorkflowOverride(workflowId, tenantId)
getWorkflowOverrideById(overrideId)
updateWorkflowOverride(workflowId, tenantId)
updateWorkflowOverrideById(overrideId)
deleteWorkflowOverride(overrideId)
For more information about these methods and their parameters, see the API documentation.
Feature requests, bug reports and pull requests are welcome. Please create an issue.
Be sure to visit the Novu official documentation website for additional information about our API. If you need additional assistance, join our Discord server here.
Novu Kotlin SDK is licensed under the MIT License - see the LICENSE file for details.