Java SDK
Setup & Initialization
- Add the Pingram dependency (Maven). Use the latest version on Maven Central:
<dependency> <groupId>io.pingram</groupId> <artifactId>pingram</artifactId> <version>1.0.0</version></dependency>Or with Gradle:
implementation 'io.pingram:pingram:1.0.0'- Create the Pingram client with your API key:
import io.pingram.Pingram;
Pingram client = new Pingram("YOUR_API_KEY");| Name | Type | Description |
|---|---|---|
apiKey* |
string | Your Pingram API key. You can get it from your dashboard under Environments. |
baseUrl |
string | Optional. Use new Pingram(apiKey, "https://api.eu.pingram.io") or new Pingram(apiKey, Pingram.Region.EU) for EU/CA. |
* required
Region example:
// EU or CA regionPingram client = new Pingram("YOUR_API_KEY", Pingram.Region.EU);Send
send()
Send a notification (email, SMS, etc.) to one user. Requires a notification `type` which categorizes this messages for future reporting, and channel-specific payloads such as `email` or `sms`. Recipient is specified with the `to` parameter. Returns a `trackingId` for error or delivery lookup through our Logs.
SenderPostBody senderPostBody = new SenderPostBody(); // SenderPostBody |try { SenderPostResponse result = client.send(senderPostBody); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling DefaultApi#send: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
type |
string | ID of the notification type (e.g. “welcome_email”). Creates a new notification if it does not exist. |
to |
object | Recipient user. Provide id, email, or number to identify the user. |
to.id |
string | Unique user identifier. Required. |
to.email |
string | User’s email address for email notifications. |
to.number |
string | User’s phone number for SMS/call notifications. |
to.pushTokens |
object[] | Mobile push tokens (FCM, APN) for push notifications. |
to.pushTokens[].type |
“FCM” | “APN” | (required) |
to.pushTokens[].token |
string | (required) |
to.pushTokens[].device |
object | (required) |
to.pushTokens[].device.app_id |
string | |
to.pushTokens[].device.ad_id |
string | |
to.pushTokens[].device.device_id |
string | (required) |
to.pushTokens[].device.platform |
string | |
to.pushTokens[].device.manufacturer |
string | |
to.pushTokens[].device.model |
string | |
to.pushTokens[].environment |
string | used by APN to differentiate between sandbox and production builds (sandbox/undefined or production) |
to.webPushTokens |
object[] | Web push subscription config from the browser. |
to.webPushTokens[].sub |
object | (required) Configuration for a Push Subscription. This can be obtained on the frontend by calling serviceWorkerRegistration.pushManager.subscribe(). The expected format is the same output as JSON.stringify’ing a PushSubscription in the browser. |
to.webPushTokens[].sub.endpoint |
string | (required) |
to.webPushTokens[].sub.keys |
object | (required) |
to.webPushTokens[].sub.keys.p256dh |
string | (required) |
to.webPushTokens[].sub.keys.auth |
string | (required) |
to.timezone |
string | User’s timezone (e.g. “America/New_York”) for scheduling. |
to.slackChannel |
string | The destination channel of slack notifications sent to this user. Can be either of the following: - Channel name, e.g. “test” - Channel name with # prefix, e.g. “#test” - Channel ID, e.g. “C1234567890” - User ID for DM, e.g. “U1234567890” - Username with @ prefix, e.g. “@test” |
to.slackToken |
object | |
to.slackToken.access_token |
string | |
to.slackToken.app_id |
string | |
to.slackToken.authed_user |
object | |
to.slackToken.authed_user.access_token |
string | |
to.slackToken.authed_user.expires_in |
number | |
to.slackToken.authed_user.id |
string | |
to.slackToken.authed_user.refresh_token |
string | |
to.slackToken.authed_user.scope |
string | |
to.slackToken.authed_user.token_type |
string | |
to.slackToken.bot_user_id |
string | |
to.slackToken.enterprise |
object | |
to.slackToken.enterprise.id |
string | |
to.slackToken.enterprise.name |
string | |
to.slackToken.error |
string | |
to.slackToken.expires_in |
number | |
to.slackToken.incoming_webhook |
object | |
to.slackToken.incoming_webhook.channel |
string | |
to.slackToken.incoming_webhook.channel_id |
string | |
to.slackToken.incoming_webhook.configuration_url |
string | |
to.slackToken.incoming_webhook.url |
string | |
to.slackToken.is_enterprise_install |
boolean | |
to.slackToken.needed |
string | |
to.slackToken.ok |
boolean | (required) |
to.slackToken.provided |
string | |
to.slackToken.refresh_token |
string | |
to.slackToken.scope |
string | |
to.slackToken.team |
object | |
to.slackToken.team.id |
string | |
to.slackToken.team.name |
string | |
to.slackToken.token_type |
string | |
to.slackToken.warning |
string | |
to.slackToken.response_metadata |
object | |
to.slackToken.response_metadata.warnings |
string[] | |
to.slackToken.response_metadata.next_cursor |
string | |
to.slackToken.response_metadata.scopes |
string[] | |
to.slackToken.response_metadata.acceptedScopes |
string[] | |
to.slackToken.response_metadata.retryAfter |
number | |
to.slackToken.response_metadata.messages |
string[] | |
to.lastSeenTime |
string | Last activity timestamp. Updated automatically. Read-only. |
to.updatedAt |
string | Last update timestamp. Read-only. |
to.createdAt |
string | Creation timestamp. Read-only. |
to.emailSuppressionStatus |
object | Bounce or complaint status if email was suppressed. Read-only. |
to.emailSuppressionStatus.reason |
“Bounce” | “Complaint” | (required) |
to.emailSuppressionStatus.details |
object | (required) |
forceChannels |
(“EMAIL” | “INAPP_WEB” | “SMS” | “CALL” | “VOICE” | “PUSH” | “WEB_PUSH” | “SLACK”)[] | Override which channels to send to (e.g. [“EMAIL”, “SMS”]). Bypasses notification channel config. |
parameters |
Record<string, any> | Key-value pairs for template merge tags. Replaces placeholders like {{firstName}} in templates. |
templateId |
string | Specific template ID to use. If omitted, uses the default template for each channel. |
subNotificationId |
string | Sub-notification identifier (e.g. for grouping related notifications). |
options |
object | Per-channel overrides for send options (email, APN, FCM). |
options.email |
object | Email-specific overrides. |
options.email.replyToAddresses |
string[] | Reply-to addresses for the email. |
options.email.ccAddresses |
string[] | CC recipients. |
options.email.bccAddresses |
string[] | BCC recipients. |
options.email.fromAddress |
string | Override sender email address. |
options.email.fromName |
string | Override sender display name. |
options.email.attachments |
(object | object)[] | File attachments (by URL or inline base64 content). Inline content: ~4 MB raw per file (413 if exceeded). URL url: up to 20 MB per file. |
options.apn |
object | Apple Push Notification (APN) overrides. |
options.apn.expiry |
number | Seconds until the notification expires. |
options.apn.priority |
number | Delivery priority (10 = immediate, 5 = power-saving). |
options.apn.collapseId |
string | Group notifications with the same ID (replaces previous). |
options.apn.threadId |
string | Thread identifier for grouping notifications. |
options.apn.badge |
number | Badge count on app icon. |
options.apn.sound |
string | Sound file name. |
options.apn.contentAvailable |
boolean | Silent background notification (no alert). |
options.fcm |
object | Firebase Cloud Messaging (FCM) overrides. |
options.fcm.android |
object | Android-specific FCM options. |
options.fcm.android.collapseKey |
string | Collapse key for grouping messages. |
options.fcm.android.priority |
“high” | “normal” | Delivery priority. |
options.fcm.android.ttl |
number | Time to live in seconds. |
options.fcm.android.restrictedPackageName |
string | Restrict delivery to a specific package. |
options.push |
object | Cross-platform mobile push options (applied to both APN and FCM). |
options.push.customData |
Record<string, string> | Up to 3 custom string key-value pairs for deep linking. Included in both APN and FCM payloads. |
schedule |
string | |
email |
object | Inline email content (subject, html). Use when not using templates. |
email.subject |
string | (required) Email subject line. |
email.html |
string | (required) HTML body content. |
email.previewText |
string | Preview/snippet text shown in inbox. |
email.senderName |
string | Display name of sender. |
email.senderEmail |
string | Sender email address. |
inapp |
object | Inline in-app content (title, url, image). |
inapp.title |
string | (required) Notification title. |
inapp.url |
string | URL to open when clicked. |
inapp.image |
string | Image URL. |
sms |
object | Inline SMS content (message, autoReply, from, mediaUrls). |
sms.message |
string | SMS/MMS body text. |
sms.mediaUrls |
string[] | Public HTTPS URLs of media to attach (MMS). Carriers fetch these via GET. Total size limits apply per provider. |
sms.autoReply |
object | |
sms.autoReply.message |
string | (required) Auto-reply message to send when user texts in. |
sms.from |
string | Override the sender phone number. Must be a verified number on your account. |
call |
object | Inline call content (message). |
call.message |
string | (required) Text to speak (TTS). |
web_push |
object | Inline web push content (title, message, icon, url). |
web_push.title |
string | (required) Notification title. |
web_push.message |
string | (required) Body text. |
web_push.icon |
string | Icon URL. |
web_push.url |
string | URL to open when clicked. |
mobile_push |
object | Inline mobile push content (title, message). |
mobile_push.title |
string | (required) Notification title. |
mobile_push.message |
string | (required) Body text. |
slack |
object | Inline Slack content (text, blocks, etc.). |
slack.text |
string | (required) Fallback plain text (required when using blocks). |
slack.blocks |
Record<string, any>[] | Slack Block Kit blocks. |
slack.username |
string | Override bot username. |
slack.icon |
string | Icon: emoji (e.g. “:smile:”) or URL. Default: bot’s icon. |
slack.thread_ts |
string | Parent message ts to post in a thread. |
slack.reply_broadcast |
boolean | When true with thread_ts, broadcasts reply to channel. Default: false. |
slack.parse |
“full” | “none” | URL parsing: “full” (clickable links) or “none”. Default: “none”. |
slack.link_names |
boolean | Convert channel and username refs to Slack links. Default: false. |
slack.mrkdwn |
boolean | Enable Slack markup (bold, italic, code). Default: true. |
slack.unfurl_links |
boolean | Unfurl link previews. Default: true. |
slack.unfurl_media |
boolean | Unfurl media previews. Default: true. |
slack.metadata |
object | Slack message metadata with optional work object entities. Combines standard Slack message metadata fields with an array of entity objects. |
slack.metadata.entities |
object[] | An array of work object entities. |
slack.metadata.entities[].entity_type |
string | (required) Entity type (e.g., ‘slack#/entities/task’, ‘slack#/entities/file’). |
slack.metadata.entities[].entity_payload |
Record<string, any> | (required) Schema for the given entity type. |
slack.metadata.entities[].external_ref |
object | (required) Reference used to identify an entity within the developer’s system. |
slack.metadata.entities[].external_ref.id |
string | (required) |
slack.metadata.entities[].external_ref.type |
string | |
slack.metadata.entities[].url |
string | (required) URL used to identify an entity within the developer’s system. |
slack.metadata.entities[].app_unfurl_url |
string | The exact URL posted in the source message. Required in metadata passed to chat.unfurl. |
slack.metadata.event_type |
string | A human readable alphanumeric string representing your application’s metadata event. |
slack.metadata.event_payload |
Record<string, any> | A free-form object containing whatever data your application wishes to attach to messages. |
Webhooks
webhooksDeleteEventsWebhook()
Delete the events webhook configuration for the current account/environment.
try { client.getWebhooks().webhooksDeleteEventsWebhook();} catch (ApiException e) { System.err.println("Exception when calling WebhooksApi#webhooksDeleteEventsWebhook: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
webhooksGetEventsWebhook()
Get the events webhook configuration for the current account/environment.
try { EventsWebhookResponse result = client.getWebhooks().webhooksGetEventsWebhook(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling WebhooksApi#webhooksGetEventsWebhook: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
webhooksUpsertEventsWebhook()
Create or update the events webhook configuration for the current account/environment.
EventsWebhookUpsertRequest eventsWebhookUpsertRequest = new EventsWebhookUpsertRequest(); // EventsWebhookUpsertRequest |try { EventsWebhookResponse result = client.getWebhooks().webhooksUpsertEventsWebhook(eventsWebhookUpsertRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling WebhooksApi#webhooksUpsertEventsWebhook: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
webhook |
string | (required) Destination URL that receives webhook event payloads. Must be a valid http(s) URL. |
events |
(“EMAIL_OPEN” | “EMAIL_CLICK” | “EMAIL_FAILED” | “EMAIL_DELIVERED” | “EMAIL_UNSUBSCRIBE” | “EMAIL_INBOUND” | “INAPP_WEB_FAILED” | “INAPP_WEB_UNSUBSCRIBE” | “SMS_DELIVERED” | “SMS_FAILED” | “SMS_UNSUBSCRIBE” | “SMS_SUBSCRIBE” | “SMS_INBOUND” | “PUSH_FAILED” | “PUSH_UNSUBSCRIBE” | “CALL_FAILED” | “CALL_UNSUBSCRIBE” | “WEB_PUSH_FAILED” | “WEB_PUSH_UNSUBSCRIBE” | “SLACK_FAILED” | “SLACK_UNSUBSCRIBE”)[] | (required) List of event types that should be forwarded to the webhook URL. |
Accounts
accountsCreateAccount()
Create an additional account for the authenticated user
CreateAccountRequest createAccountRequest = new CreateAccountRequest(); // CreateAccountRequest |try { CreateAccountResponse result = client.getAccounts().accountsCreateAccount(createAccountRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling AccountsApi#accountsCreateAccount: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
name |
string | (required) |
plan |
object | Billing to copy onto a new additional account. |
plan.tier |
“budget_20” | “budget_50” | “budget_100” | “budget_250” | “budget_500” | “budget_1000” | “budget_2000” | “budget_5000” | (required) |
plan.sourceBillingAccountId |
string | (required) Account whose saved payment method is copied onto the new account. The caller must be an owner of this account. |
memberEmails |
string[] | Emails to add or invite to the new account. Existing members of any account the caller belongs to are added directly; everyone else is invited. |
accountsListAccounts()
List accounts the authenticated user can access
try { ListAccountsResponse result = client.getAccounts().accountsListAccounts(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling AccountsApi#accountsListAccounts: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
Addresses
addressesCreateAddress()
Create a new email inbox. Omit `domain` for a built-in `@mail.pingram.io` address; set `domain` and `displayName` for a custom address on a verified domain.
CreateAddressRequest createAddressRequest = new CreateAddressRequest(); // CreateAddressRequest |try { AddressResponse result = client.getAddresses().addressesCreateAddress(createAddressRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling AddressesApi#addressesCreateAddress: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
prefix |
string | (required) |
domain |
string | |
displayName |
string |
addressesDeleteAddress()
Delete a custom inbound address. Builtin addresses cannot be deleted.
String fullAddress = "fullAddress_example"; // String | Full address to delete (e.g. hello@example.com)try { SuccessResponse result = client.getAddresses().addressesDeleteAddress(fullAddress); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling AddressesApi#addressesDeleteAddress: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| fullAddress | String | Full address to delete (e.g. hello@example.com) |
addressesListAddresses()
List email inboxes (addresses) configured for receiving. Custom addresses must use a verified domain.
try { AccountAddressesResponse result = client.getAddresses().addressesListAddresses(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling AddressesApi#addressesListAddresses: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
addressesUpdateAddress()
Update an inbox prefix or display name.
UpdateAddressRequest updateAddressRequest = new UpdateAddressRequest(); // UpdateAddressRequest |try { AddressResponse result = client.getAddresses().addressesUpdateAddress(updateAddressRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling AddressesApi#addressesUpdateAddress: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
fullAddress |
string | (required) |
prefix |
string | |
displayName |
string |
Domains
domainsAddDomain()
Add and start verification for a new sender domain. Pass the domain only (not a full email address).
PostSendersRequestBody postSendersRequestBody = new PostSendersRequestBody(); // PostSendersRequestBody |try { List<GetSendersResponseInner> result = client.getDomains().domainsAddDomain(postSendersRequestBody); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling DomainsApi#domainsAddDomain: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
sender |
string | (required) |
domainsDeleteDomain()
Remove a sender domain from the account.
String sender = "sender_example"; // String | Sender domain (URL encoded)try { SuccessResponse result = client.getDomains().domainsDeleteDomain(sender); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling DomainsApi#domainsDeleteDomain: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| sender | String | Sender domain (URL encoded) |
domainsListDomains()
List sender domains configured for the account (for outbound email).
try { List<GetSendersResponseInner> result = client.getDomains().domainsListDomains(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling DomainsApi#domainsListDomains: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
domainsStartDomainVerification()
Start SES domain verification (DNS readiness is checked client-side via checkDomainDns)
String sender = "sender_example"; // String | Sender domain (URL encoded)try { List<GetSendersResponseInner> result = client.getDomains().domainsStartDomainVerification(sender); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling DomainsApi#domainsStartDomainVerification: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| sender | String | Sender domain (URL encoded) |
emailDeleteSuppressions()
Start removing all email suppressions of the given reason (`retryable` or `bounces`) for users in the environment. Returns immediately after the job is queued — suppressions are not yet cleared when this response is received. Large removals are processed in the background in batches.
String reason = "reason_example"; // String | Suppression reason to clear (retryable | bounces)try { MessageResponse result = client.getEmail().emailDeleteSuppressions(reason); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling EmailApi#emailDeleteSuppressions: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| reason | String | Suppression reason to clear (retryable | bounces) |
emailSend()
Send an email. Requires `type`, `to`, `subject`, and `html`. Optional: `fromAddress`, `fromName`, `schedule`, attachments. The fromAddress must be a verified domain; otherwise our built-in address will be used which is fine for testing purposes.
SendEmailRequest sendEmailRequest = new SendEmailRequest(); // SendEmailRequest |try { SendEmailApiResponse result = client.getEmail().emailSend(sendEmailRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling EmailApi#emailSend: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
type |
string | (required) The notification type to send. |
to |
string | (required) The email address of the recipient. |
subject |
string | (required) The subject of the email. |
html |
string | (required) The HTML body of the email. |
fromName |
string | The display name of the sender. |
fromAddress |
string | The email address of the sender. |
previewText |
string | The preview text of the email. |
replyToAddresses |
string[] | The reply-to addresses of the email. |
ccAddresses |
string[] | The CC addresses of the email. |
bccAddresses |
string[] | The BCC addresses of the email. |
attachments |
object[] | URL-based file attachments. Up to 20 MB per file. |
attachments[].filename |
string | (required) |
attachments[].url |
string | (required) |
schedule |
string | The ISO 8601 datetime to schedule the email. |
Environments
environmentsListEnvironments()
Get all environments for the authenticated account
try { List<GetEnvironmentsResponseInner> result = client.getEnvironments().environmentsListEnvironments(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling EnvironmentsApi#environmentsListEnvironments: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
environmentsUpdateEnvironment()
Update environment settings (title, secret, disable sending, secure mode)
String clientId = "clientId_example"; // String | Environment client IDEnvironmentPatchRequest environmentPatchRequest = new EnvironmentPatchRequest(); // EnvironmentPatchRequest |try { Environment result = client.getEnvironments().environmentsUpdateEnvironment(clientId, environmentPatchRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling EnvironmentsApi#environmentsUpdateEnvironment: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| clientId | String | Environment client ID | |
| environmentPatchRequest | EnvironmentPatchRequest |
Request Body Properties
| Name | Type | Description |
|---|---|---|
resetSecret |
boolean | |
disableSending |
(“EMAIL” | “INAPP_WEB” | “SMS” | “CALL” | “VOICE” | “PUSH” | “WEB_PUSH” | “SLACK”)[] | |
title |
string | |
secureMode |
boolean |
Logs
logsGetLogRetention()
Get log retention period in days for the account
try { LogsRetentionResponse result = client.getLogs().logsGetLogRetention(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling LogsApi#logsGetLogRetention: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
logsGetLogs()
List recent notification logs for the authenticated account, newest first.
BigDecimal limit = new BigDecimal(78); // BigDecimal | Maximum number of logs to return (defaultString cursor = "cursor_example"; // String | Pagination cursor for next pagetry { GetLogsResponse result = client.getLogs().logsGetLogs(limit, cursor); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling LogsApi#logsGetLogs: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| limit | BigDecimal | Maximum number of logs to return (default | [optional] |
| cursor | String | Pagination cursor for next page | [optional] |
logsGetLogsByTrackingIds()
Get logs by tracking IDs (comma-separated, max 25 IDs). Use after sending email or SMS to look up delivery status.
String trackingIds = "trackingIds_example"; // String | Comma-separated tracking IDs (URL encoded)try { LogsGetResponse result = client.getLogs().logsGetLogsByTrackingIds(trackingIds); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling LogsApi#logsGetLogsByTrackingIds: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| trackingIds | String | Comma-separated tracking IDs (URL encoded) |
logsGetLogsQueryResult()
Get results from a log query started with Start Log Query. Poll until status is Complete.
String queryId = "queryId_example"; // String | Query ID returned by Start Log Querytry { LogsQueryResultResponse result = client.getLogs().logsGetLogsQueryResult(queryId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling LogsApi#logsGetLogsQueryResult: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| queryId | String | Query ID returned by Start Log Query |
logsStartLogsQuery()
Start an asynchronous log search over a date range. Returns a `queryId`; poll with Get Log Query Results until status is Complete.
LogQueryPostBody logQueryPostBody = new LogQueryPostBody(); // LogQueryPostBody |try { LogsQueryResponse result = client.getLogs().logsStartLogsQuery(logQueryPostBody); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling LogsApi#logsStartLogsQuery: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
dateRangeFilter |
number[] | A tuple of [startTime, endTime] for the date range filter, each representing a unix timestamp. |
userFilter |
string | |
envIdFilter |
string[] | |
statusFilter |
string | |
channelFilter |
(“email” | “inapp” | “sms” | “call” | “voice” | “web_push” | “mobile_push” | “slack”)[] | |
notificationFilter |
string[] |
logsTailLogs()
Get last 100 logs from the stream
try { LogsTailResponse result = client.getLogs().logsTailLogs(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling LogsApi#logsTailLogs: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
Numbers
numbersList()
List active phone numbers registered for the account, including voice agent binding state.
try { ListPhoneNumbersResponse result = client.getNumbers().numbersList(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling NumbersApi#numbersList: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
numbersListReleased()
List released phone numbers. Released numbers may be purchased again with 2 weeks of being released. Released numbers may be removed from released list after 2 weeks.
try { ListReleasedPhoneNumbersResponse result = client.getNumbers().numbersListReleased(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling NumbersApi#numbersListReleased: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
numbersOrderNumber()
Purchase a phone number for the authenticated account, or reactivate a released number owned by the account (preserves original createdAt). Pass `phoneNumber` in E.164 format (e.g. +15551234567).
OrderPhoneNumberRequest orderPhoneNumberRequest = new OrderPhoneNumberRequest(); // OrderPhoneNumberRequest |try { OrderPhoneNumberResponse result = client.getNumbers().numbersOrderNumber(orderPhoneNumberRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling NumbersApi#numbersOrderNumber: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
phoneNumber |
string | (required) E.164 from search results |
numbersReleaseNumber()
Release a phone number from the account. No refund for the current billing month.
String phoneNumber = "phoneNumber_example"; // String | E.164 phone number to releasetry { ReleasePhoneNumberResponse result = client.getNumbers().numbersReleaseNumber(phoneNumber); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling NumbersApi#numbersReleaseNumber: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| phoneNumber | String | E.164 phone number to release |
numbersSearchAvailable()
Search for available phone numbers to purchase. Requires `countryCode` (e.g. US, CA). Use before ordering a number.
String countryCode = "countryCode_example"; // String | ISO 3166-1 alpha-2 country code (e.g., US, CA)String features = "features_example"; // String | Comma-separatedString areaCode = "areaCode_example"; // String | National destination / area code filterBigDecimal limit = new BigDecimal(78); // BigDecimal | Max results (default 10, max 50)try { SearchAvailablePhoneNumbersResponse result = client.getNumbers().numbersSearchAvailable(countryCode, features, areaCode, limit); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling NumbersApi#numbersSearchAvailable: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| countryCode | String | ISO 3166-1 alpha-2 country code (e.g., US, CA) | |
| features | String | Comma-separated | [optional] |
| areaCode | String | National destination / area code filter | [optional] |
| limit | BigDecimal | Max results (default 10, max 50) | [optional] |
Profile
profileAcceptInvite()
Accept a team invitation using a token
AcceptInviteRequest acceptInviteRequest = new AcceptInviteRequest(); // AcceptInviteRequest |try { AcceptInviteResponse result = client.getProfile().profileAcceptInvite(acceptInviteRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling ProfileApi#profileAcceptInvite: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
token |
string | (required) |
profileChangeEmail()
Change the email address of the authenticated user
ChangeEmailRequest changeEmailRequest = new ChangeEmailRequest(); // ChangeEmailRequest |try { SuccessResponse result = client.getProfile().profileChangeEmail(changeEmailRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling ProfileApi#profileChangeEmail: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
newEmail |
string | (required) |
profileDeleteAccount()
Permanently delete the authenticated user's account
DeleteAccountRequest deleteAccountRequest = new DeleteAccountRequest(); // DeleteAccountRequest |try { SuccessResponse result = client.getProfile().profileDeleteAccount(deleteAccountRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling ProfileApi#profileDeleteAccount: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
reason |
string |
profileDisableMfa()
Disable MFA for the authenticated user
String type = "type_example"; // String | MFA type (e.g. SOFTWARE_TOKEN_MFA)try { SuccessResponse result = client.getProfile().profileDisableMfa(type); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling ProfileApi#profileDisableMfa: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| type | String | MFA type (e.g. SOFTWARE_TOKEN_MFA) |
profileGetMfaStatus()
Get MFA status for the authenticated user
try { MFAStatusResponse result = client.getProfile().profileGetMfaStatus(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling ProfileApi#profileGetMfaStatus: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
profileSetupMfa()
Start TOTP MFA setup and return QR code data
MFASetupRequest mfASetupRequest = new MFASetupRequest(); // MFASetupRequest |try { MFASetupResponse result = client.getProfile().profileSetupMfa(mfASetupRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling ProfileApi#profileSetupMfa: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
type |
“SOFTWARE_TOKEN_MFA” | (required) MFA methods supported by the profile MFA API. |
profileVerifyMfa()
Verify TOTP code and enable MFA
MFAVerifyRequest mfAVerifyRequest = new MFAVerifyRequest(); // MFAVerifyRequest |try { SuccessResponse result = client.getProfile().profileVerifyMfa(mfAVerifyRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling ProfileApi#profileVerifyMfa: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
type |
“SOFTWARE_TOKEN_MFA” | (required) MFA methods supported by the profile MFA API. |
code |
string | (required) |
session |
string | (required) |
Registrations
registrationsCreateUs10dlcBrand()
Create a new 10DLC brand registration. Sets brandStatus to pending_review; Pingram handles carrier submission after review.
TenDlcBrandCreateRequest tenDlcBrandCreateRequest = new TenDlcBrandCreateRequest(); // TenDlcBrandCreateRequest |try { TenDlcBrandRegistration result = client.getRegistrations().registrationsCreateUs10dlcBrand(tenDlcBrandCreateRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling RegistrationsApi#registrationsCreateUs10dlcBrand: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
scenarioId |
“own_brand” | “client_brand” | (required) Who the 10DLC brand is registered for. - own_brand: personal or company project - client_brand: agency or contractor |
businessType |
“PRIVATE_PROFIT” | “SOLE_PROPRIETOR” | “PUBLIC_PROFIT” | “NON_PROFIT” | “GOVERNMENT” | (required) Legal entity type for a 10DLC brand. - PRIVATE_PROFIT: private for-profit (LLC, corp, etc.) - SOLE_PROPRIETOR: sole proprietorship - PUBLIC_PROFIT: publicly traded for-profit - NON_PROFIT: non-profit - GOVERNMENT: government |
legalName |
string | Official registered legal business name. For SOLE_PROPRIETOR, optional DBA or trade name (defaults to firstName and lastName). |
displayName |
string | (required) Public brand name shown to recipients and carriers. Use the name customers recognize (your DBA or trade name). For companies with no DBA, use the same value as legalName. For SOLE_PROPRIETOR, this is the brand you send as — not the individual’s legal name (set firstName and lastName for that). If the sole proprietor has no DBA, use first and last name. |
firstName |
string | Legal first name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR. |
lastName |
string | Legal last name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR. |
taxId |
string | For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier. Required except when businessType is SOLE_PROPRIETOR. |
website |
string | (required) Public website for the brand. Include a scheme (https://) or a domain; https:// is prepended when omitted. Carriers expect a working site with privacy policy and terms. |
country |
string | (required) ISO 3166-1 alpha-2 country of incorporation (for example US or CA). |
street |
string | (required) Street address that matches official tax registration. |
city |
string | (required) City that matches official tax registration. |
state |
string | (required) State (US) or province (CA) that matches official tax registration. |
postalCode |
string | (required) ZIP code (US) or postal code (CA) that matches official tax registration. |
complianceContactEmail |
string | (required) Email for the 10DLC compliance contact. Used for carrier and registration follow-up. |
complianceContactPhone |
string | (required) Phone number for the 10DLC compliance contact. E.164 preferred; national numbers are normalized using country. |
registrationsGetUs10dlcBrand()
Get the 10DLC brand registration for the authenticated account. Returns null when no registration exists yet.
try { TenDlcBrandRegistration result = client.getRegistrations().registrationsGetUs10dlcBrand(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling RegistrationsApi#registrationsGetUs10dlcBrand: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
registrationsGetUs10dlcCampaign()
Get the 10DLC campaign registration for the authenticated account. Returns null when no brand registration exists yet.
try { TenDlcCampaignRegistration result = client.getRegistrations().registrationsGetUs10dlcCampaign(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling RegistrationsApi#registrationsGetUs10dlcCampaign: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
registrationsUpdateUs10dlcBrand()
Update an existing 10DLC brand registration. Business fields are editable before carrier submission; workflow status is managed by Pingram.
TenDlcBrandUpdateRequest tenDlcBrandUpdateRequest = new TenDlcBrandUpdateRequest(); // TenDlcBrandUpdateRequest |try { TenDlcBrandRegistration result = client.getRegistrations().registrationsUpdateUs10dlcBrand(tenDlcBrandUpdateRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling RegistrationsApi#registrationsUpdateUs10dlcBrand: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
scenarioId |
“own_brand” | “client_brand” | Who the 10DLC brand is registered for. - own_brand: personal or company project - client_brand: agency or contractor |
businessType |
“PRIVATE_PROFIT” | “SOLE_PROPRIETOR” | “PUBLIC_PROFIT” | “NON_PROFIT” | “GOVERNMENT” | Legal entity type for a 10DLC brand. - PRIVATE_PROFIT: private for-profit (LLC, corp, etc.) - SOLE_PROPRIETOR: sole proprietorship - PUBLIC_PROFIT: publicly traded for-profit - NON_PROFIT: non-profit - GOVERNMENT: government |
legalName |
string | Official registered legal business name. For SOLE_PROPRIETOR, optional DBA or trade name (defaults to firstName and lastName). |
displayName |
string | Public brand name shown to recipients and carriers. Use the name customers recognize (your DBA or trade name). For SOLE_PROPRIETOR, this is the brand you send as — not the individual’s legal name. Omit to keep the existing value. If you change legalName and omit displayName, displayName is reset to the new legalName. |
firstName |
string | Legal first name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR. |
lastName |
string | Legal last name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR. |
taxId |
string | For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier. Required except when businessType is SOLE_PROPRIETOR. |
website |
string | Public website for the brand. Include a scheme (https://) or a domain; https:// is prepended when omitted. Carriers expect a working site with privacy policy and terms. |
country |
string | ISO 3166-1 alpha-2 country of incorporation (for example US or CA). |
street |
string | Street address that matches official tax registration. |
city |
string | City that matches official tax registration. |
state |
string | State (US) or province (CA) that matches official tax registration. |
postalCode |
string | ZIP code (US) or postal code (CA) that matches official tax registration. |
complianceContactEmail |
string | Email for the 10DLC compliance contact. Used for carrier and registration follow-up. |
complianceContactPhone |
string | Phone number for the 10DLC compliance contact. E.164 preferred; national numbers are normalized using country. |
registrationsUpdateUs10dlcCampaign()
Update an existing 10DLC campaign registration. Campaign fields are editable before carrier submission; workflow status is managed by Pingram.
TenDlcCampaignUpdateRequest tenDlcCampaignUpdateRequest = new TenDlcCampaignUpdateRequest(); // TenDlcCampaignUpdateRequest |try { TenDlcCampaignRegistration result = client.getRegistrations().registrationsUpdateUs10dlcCampaign(tenDlcCampaignUpdateRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling RegistrationsApi#registrationsUpdateUs10dlcCampaign: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
campaignDescription |
string | Summary of what this campaign sends and why, including audience and typical message content. Required before carrier submission. |
campaignSample1 |
string | Example SMS that represents actual campaign traffic. Required before carrier submission. Should match the use case and typically identify the brand and include STOP/HELP language. |
campaignSample2 |
string | Second example SMS. Required before carrier submission. Required for MARKETING and MIXED use cases. |
campaignSample3 |
string | Optional third example SMS. |
campaignSample4 |
string | Optional fourth example SMS. |
campaignMessageFlow |
string | How recipients opt in (for example website form, checkout, or keyword). Describe the call-to-action and where consent is collected. Required before carrier submission. |
campaignOptinKeywords |
string | Extra opt-in keywords as a comma-separated list. START is always included. |
campaignOptinMessage |
string | Auto-reply sent when a recipient opts in. Required before carrier submission. Should confirm the subscription, mention message frequency, and include STOP and HELP instructions. |
campaignOptoutKeywords |
string | Extra opt-out keywords as a comma-separated list. STOP is always included. |
campaignOptoutMessage |
string | Auto-reply sent when a recipient opts out. Required before carrier submission. Should confirm they will receive no further messages. |
campaignHelpKeywords |
string | Extra help keywords as a comma-separated list. HELP is always included. |
campaignHelpMessage |
string | Auto-reply sent when a recipient texts a help keyword. Required before carrier submission. Should include a support contact (email and/or phone). |
campaignEmbeddedLink |
boolean | Whether campaign messages include URLs. |
campaignEmbeddedLinkUrl |
string | Sample URL that appears in messages. Provide when campaignEmbeddedLink is true. |
campaignEmbeddedPhone |
boolean | Whether campaign messages include phone numbers. |
campaignAgeGated |
boolean | Whether campaign content is age-restricted (18+). |
campaignDirectLending |
boolean | Whether the campaign relates to direct lending or loan products. |
campaignPrivacyPolicyLink |
string | Public URL of the privacy policy that covers this SMS program. |
campaignTermsAndConditionsLink |
string | Public URL of the terms and conditions that cover this SMS program. |
campaignUsecase |
string | 10DLC campaign use case submitted to carriers. Required before carrier submission. One of 2FA, ACCOUNT_NOTIFICATION, CUSTOMER_CARE, DELIVERY_NOTIFICATION, FRAUD_ALERT, MARKETING, MIXED, POLLING_VOTING, PUBLIC_SERVICE_ANNOUNCEMENT, or SECURITY_ALERT. For MIXED, append comma-separated sub-use cases after MIXED (sub-use cases cannot include MIXED), for example MIXED,2FA,ACCOUNT_NOTIFICATION. |
Sender
senderDeleteSchedule()
Delete (unschedule) an already scheduled notification
String trackingId = "trackingId_example"; // String | The tracking ID of the scheduled notificationtry { MessageResponse result = client.getSender().senderDeleteSchedule(trackingId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling SenderApi#senderDeleteSchedule: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| trackingId | String | The tracking ID of the scheduled notification |
senderTestEmail()
Test the emailer with a sample email
PostEmailTestRequest postEmailTestRequest = new PostEmailTestRequest(); // PostEmailTestRequest |try { PostEmailTestResponse result = client.getSender().senderTestEmail(postEmailTestRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling SenderApi#senderTestEmail: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
notificationId |
string | (required) |
to |
string | (required) |
subject |
string | (required) |
html |
string | (required) |
fromAddress |
string | (required) |
fromName |
string | (required) |
previewText |
string |
senderUpdateSchedule()
Update the body or schedule of an already scheduled notification.
String trackingId = "trackingId_example"; // String | The tracking ID of the scheduled notificationSenderPostBody senderPostBody = new SenderPostBody(); // SenderPostBody |try { MessageResponse result = client.getSender().senderUpdateSchedule(trackingId, senderPostBody); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling SenderApi#senderUpdateSchedule: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| trackingId | String | The tracking ID of the scheduled notification | |
| senderPostBody | SenderPostBody |
Request Body Properties
| Name | Type | Description |
|---|---|---|
type |
string | ID of the notification type (e.g. “welcome_email”). Creates a new notification if it does not exist. |
to |
object | Recipient user. Provide id, email, or number to identify the user. |
to.id |
string | Unique user identifier. Required. |
to.email |
string | User’s email address for email notifications. |
to.number |
string | User’s phone number for SMS/call notifications. |
to.pushTokens |
object[] | Mobile push tokens (FCM, APN) for push notifications. |
to.pushTokens[].type |
“FCM” | “APN” | (required) |
to.pushTokens[].token |
string | (required) |
to.pushTokens[].device |
object | (required) |
to.pushTokens[].device.app_id |
string | |
to.pushTokens[].device.ad_id |
string | |
to.pushTokens[].device.device_id |
string | (required) |
to.pushTokens[].device.platform |
string | |
to.pushTokens[].device.manufacturer |
string | |
to.pushTokens[].device.model |
string | |
to.pushTokens[].environment |
string | used by APN to differentiate between sandbox and production builds (sandbox/undefined or production) |
to.webPushTokens |
object[] | Web push subscription config from the browser. |
to.webPushTokens[].sub |
object | (required) Configuration for a Push Subscription. This can be obtained on the frontend by calling serviceWorkerRegistration.pushManager.subscribe(). The expected format is the same output as JSON.stringify’ing a PushSubscription in the browser. |
to.webPushTokens[].sub.endpoint |
string | (required) |
to.webPushTokens[].sub.keys |
object | (required) |
to.webPushTokens[].sub.keys.p256dh |
string | (required) |
to.webPushTokens[].sub.keys.auth |
string | (required) |
to.timezone |
string | User’s timezone (e.g. “America/New_York”) for scheduling. |
to.slackChannel |
string | The destination channel of slack notifications sent to this user. Can be either of the following: - Channel name, e.g. “test” - Channel name with # prefix, e.g. “#test” - Channel ID, e.g. “C1234567890” - User ID for DM, e.g. “U1234567890” - Username with @ prefix, e.g. “@test” |
to.slackToken |
object | |
to.slackToken.access_token |
string | |
to.slackToken.app_id |
string | |
to.slackToken.authed_user |
object | |
to.slackToken.authed_user.access_token |
string | |
to.slackToken.authed_user.expires_in |
number | |
to.slackToken.authed_user.id |
string | |
to.slackToken.authed_user.refresh_token |
string | |
to.slackToken.authed_user.scope |
string | |
to.slackToken.authed_user.token_type |
string | |
to.slackToken.bot_user_id |
string | |
to.slackToken.enterprise |
object | |
to.slackToken.enterprise.id |
string | |
to.slackToken.enterprise.name |
string | |
to.slackToken.error |
string | |
to.slackToken.expires_in |
number | |
to.slackToken.incoming_webhook |
object | |
to.slackToken.incoming_webhook.channel |
string | |
to.slackToken.incoming_webhook.channel_id |
string | |
to.slackToken.incoming_webhook.configuration_url |
string | |
to.slackToken.incoming_webhook.url |
string | |
to.slackToken.is_enterprise_install |
boolean | |
to.slackToken.needed |
string | |
to.slackToken.ok |
boolean | (required) |
to.slackToken.provided |
string | |
to.slackToken.refresh_token |
string | |
to.slackToken.scope |
string | |
to.slackToken.team |
object | |
to.slackToken.team.id |
string | |
to.slackToken.team.name |
string | |
to.slackToken.token_type |
string | |
to.slackToken.warning |
string | |
to.slackToken.response_metadata |
object | |
to.slackToken.response_metadata.warnings |
string[] | |
to.slackToken.response_metadata.next_cursor |
string | |
to.slackToken.response_metadata.scopes |
string[] | |
to.slackToken.response_metadata.acceptedScopes |
string[] | |
to.slackToken.response_metadata.retryAfter |
number | |
to.slackToken.response_metadata.messages |
string[] | |
to.lastSeenTime |
string | Last activity timestamp. Updated automatically. Read-only. |
to.updatedAt |
string | Last update timestamp. Read-only. |
to.createdAt |
string | Creation timestamp. Read-only. |
to.emailSuppressionStatus |
object | Bounce or complaint status if email was suppressed. Read-only. |
to.emailSuppressionStatus.reason |
“Bounce” | “Complaint” | (required) |
to.emailSuppressionStatus.details |
object | (required) |
forceChannels |
(“EMAIL” | “INAPP_WEB” | “SMS” | “CALL” | “VOICE” | “PUSH” | “WEB_PUSH” | “SLACK”)[] | Override which channels to send to (e.g. [“EMAIL”, “SMS”]). Bypasses notification channel config. |
parameters |
Record<string, any> | Key-value pairs for template merge tags. Replaces placeholders like {{firstName}} in templates. |
templateId |
string | Specific template ID to use. If omitted, uses the default template for each channel. |
subNotificationId |
string | Sub-notification identifier (e.g. for grouping related notifications). |
options |
object | Per-channel overrides for send options (email, APN, FCM). |
options.email |
object | Email-specific overrides. |
options.email.replyToAddresses |
string[] | Reply-to addresses for the email. |
options.email.ccAddresses |
string[] | CC recipients. |
options.email.bccAddresses |
string[] | BCC recipients. |
options.email.fromAddress |
string | Override sender email address. |
options.email.fromName |
string | Override sender display name. |
options.email.attachments |
(object | object)[] | File attachments (by URL or inline base64 content). Inline content: ~4 MB raw per file (413 if exceeded). URL url: up to 20 MB per file. |
options.apn |
object | Apple Push Notification (APN) overrides. |
options.apn.expiry |
number | Seconds until the notification expires. |
options.apn.priority |
number | Delivery priority (10 = immediate, 5 = power-saving). |
options.apn.collapseId |
string | Group notifications with the same ID (replaces previous). |
options.apn.threadId |
string | Thread identifier for grouping notifications. |
options.apn.badge |
number | Badge count on app icon. |
options.apn.sound |
string | Sound file name. |
options.apn.contentAvailable |
boolean | Silent background notification (no alert). |
options.fcm |
object | Firebase Cloud Messaging (FCM) overrides. |
options.fcm.android |
object | Android-specific FCM options. |
options.fcm.android.collapseKey |
string | Collapse key for grouping messages. |
options.fcm.android.priority |
“high” | “normal” | Delivery priority. |
options.fcm.android.ttl |
number | Time to live in seconds. |
options.fcm.android.restrictedPackageName |
string | Restrict delivery to a specific package. |
options.push |
object | Cross-platform mobile push options (applied to both APN and FCM). |
options.push.customData |
Record<string, string> | Up to 3 custom string key-value pairs for deep linking. Included in both APN and FCM payloads. |
schedule |
string | |
email |
object | Inline email content (subject, html). Use when not using templates. |
email.subject |
string | (required) Email subject line. |
email.html |
string | (required) HTML body content. |
email.previewText |
string | Preview/snippet text shown in inbox. |
email.senderName |
string | Display name of sender. |
email.senderEmail |
string | Sender email address. |
inapp |
object | Inline in-app content (title, url, image). |
inapp.title |
string | (required) Notification title. |
inapp.url |
string | URL to open when clicked. |
inapp.image |
string | Image URL. |
sms |
object | Inline SMS content (message, autoReply, from, mediaUrls). |
sms.message |
string | SMS/MMS body text. |
sms.mediaUrls |
string[] | Public HTTPS URLs of media to attach (MMS). Carriers fetch these via GET. Total size limits apply per provider. |
sms.autoReply |
object | |
sms.autoReply.message |
string | (required) Auto-reply message to send when user texts in. |
sms.from |
string | Override the sender phone number. Must be a verified number on your account. |
call |
object | Inline call content (message). |
call.message |
string | (required) Text to speak (TTS). |
web_push |
object | Inline web push content (title, message, icon, url). |
web_push.title |
string | (required) Notification title. |
web_push.message |
string | (required) Body text. |
web_push.icon |
string | Icon URL. |
web_push.url |
string | URL to open when clicked. |
mobile_push |
object | Inline mobile push content (title, message). |
mobile_push.title |
string | (required) Notification title. |
mobile_push.message |
string | (required) Body text. |
slack |
object | Inline Slack content (text, blocks, etc.). |
slack.text |
string | (required) Fallback plain text (required when using blocks). |
slack.blocks |
Record<string, any>[] | Slack Block Kit blocks. |
slack.username |
string | Override bot username. |
slack.icon |
string | Icon: emoji (e.g. “:smile:”) or URL. Default: bot’s icon. |
slack.thread_ts |
string | Parent message ts to post in a thread. |
slack.reply_broadcast |
boolean | When true with thread_ts, broadcasts reply to channel. Default: false. |
slack.parse |
“full” | “none” | URL parsing: “full” (clickable links) or “none”. Default: “none”. |
slack.link_names |
boolean | Convert channel and username refs to Slack links. Default: false. |
slack.mrkdwn |
boolean | Enable Slack markup (bold, italic, code). Default: true. |
slack.unfurl_links |
boolean | Unfurl link previews. Default: true. |
slack.unfurl_media |
boolean | Unfurl media previews. Default: true. |
slack.metadata |
object | Slack message metadata with optional work object entities. Combines standard Slack message metadata fields with an array of entity objects. |
slack.metadata.entities |
object[] | An array of work object entities. |
slack.metadata.entities[].entity_type |
string | (required) Entity type (e.g., ‘slack#/entities/task’, ‘slack#/entities/file’). |
slack.metadata.entities[].entity_payload |
Record<string, any> | (required) Schema for the given entity type. |
slack.metadata.entities[].external_ref |
object | (required) Reference used to identify an entity within the developer’s system. |
slack.metadata.entities[].external_ref.id |
string | (required) |
slack.metadata.entities[].external_ref.type |
string | |
slack.metadata.entities[].url |
string | (required) URL used to identify an entity within the developer’s system. |
slack.metadata.entities[].app_unfurl_url |
string | The exact URL posted in the source message. Required in metadata passed to chat.unfurl. |
slack.metadata.event_type |
string | A human readable alphanumeric string representing your application’s metadata event. |
slack.metadata.event_payload |
Record<string, any> | A free-form object containing whatever data your application wishes to attach to messages. |
Sms
smsSend()
Send an SMS or MMS directly without a template. Requires `type` and `to`. Pass `message` and/or `mediaUrls`. Optional: `from`, `schedule`.
SendSmsRequest sendSmsRequest = new SendSmsRequest(); // SendSmsRequest |try { SendSmsResponse result = client.getSms().smsSend(sendSmsRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling SmsApi#smsSend: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
type |
string | (required) The notification type to send. |
to |
string | (required) The phone number of the recipient. |
message |
string | The message of the SMS or MMS notification. Optional when mediaUrls is provided. |
mediaUrls |
string[] | Public HTTPS URLs of media to attach (MMS). |
schedule |
string | The ISO 8601 datetime to schedule the SMS notification. |
from |
string | Override the sender phone number. Must be a dedicated number on your Pingram account. |
Templates
templatesCreateTemplate()
Create a new template for a notification
String notificationId = "notificationId_example"; // String | Notification IDString channel = "channel_example"; // String | Channel typeTemplatePostRequest templatePostRequest = new TemplatePostRequest(); // TemplatePostRequest |try { Template result = client.getTemplates().templatesCreateTemplate(notificationId, channel, templatePostRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TemplatesApi#templatesCreateTemplate: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | Notification ID | |
| channel | String | Channel type | |
| templatePostRequest | TemplatePostRequest |
Request Body Properties
| Name | Type | Description |
|---|---|---|
templateId |
string | (required) Unique ID for this template within the notification and channel. Required. |
html |
string | HTML body of the email. |
previewText |
string | Preview text (e.g. for inbox). |
internal |
string | Internal editor representation of the email content (e.g. Bee or Redactor JSON). Used for editing and component embedding; the actual email sent to recipients uses the html field. |
subject |
string | Email subject line. |
senderName |
string | Sender display name. |
senderEmail |
string | Sender email address. |
title |
string | Notification title (in-app). |
redirectURL |
string | URL to open when the user taps the notification. |
imageURL |
string | Image URL shown in the in-app notification. |
instant |
object | Copy for instant (real-time) delivery. |
instant.title |
string | |
instant.redirectURL |
string | |
instant.imageURL |
string | (required) |
batch |
object | Copy for batch delivery. |
batch.title |
string | (required) |
batch.redirectURL |
string | (required) |
batch.imageURL |
string | (required) |
text |
string | Message text (SMS or call). |
message |
string | Push notification body text. (title is shared with INAPP_WEB above.) |
icon |
string | Web push: icon URL. Slack: bot icon (emoji or URL). |
url |
string | Web push: URL to open when the notification is clicked. |
blocks |
Record<string, any>[] | Slack message blocks (optional). |
username |
string | Slack bot username. |
templatesDeleteTemplate()
Delete a template
String notificationId = "notificationId_example"; // String | Notification IDString channel = "channel_example"; // String | Channel typeString templateId = "templateId_example"; // String | Template IDtry { client.getTemplates().templatesDeleteTemplate(notificationId, channel, templateId);} catch (ApiException e) { System.err.println("Exception when calling TemplatesApi#templatesDeleteTemplate: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | Notification ID | |
| channel | String | Channel type | |
| templateId | String | Template ID |
templatesGetTemplate()
Get a single template by ID
String notificationId = "notificationId_example"; // String | Notification IDString channel = "channel_example"; // String | Channel typeString templateId = "templateId_example"; // String | Template IDtry { GetTemplatesResponse result = client.getTemplates().templatesGetTemplate(notificationId, channel, templateId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TemplatesApi#templatesGetTemplate: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | Notification ID | |
| channel | String | Channel type | |
| templateId | String | Template ID |
templatesListTemplates()
List all templates for a notification and channel
String notificationId = "notificationId_example"; // String | Notification IDString channel = "channel_example"; // String | Channel typetry { List<GetTemplatesListResponseInner> result = client.getTemplates().templatesListTemplates(notificationId, channel); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TemplatesApi#templatesListTemplates: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | Notification ID | |
| channel | String | Channel type |
templatesSetDefaultTemplate()
Set a template as default for specific delivery modes
String notificationId = "notificationId_example"; // String | Notification IDString channel = "channel_example"; // String | Channel typeSetDefaultTemplateRequest setDefaultTemplateRequest = new SetDefaultTemplateRequest(); // SetDefaultTemplateRequest |try { Template result = client.getTemplates().templatesSetDefaultTemplate(notificationId, channel, setDefaultTemplateRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TemplatesApi#templatesSetDefaultTemplate: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | Notification ID | |
| channel | String | Channel type | |
| setDefaultTemplateRequest | SetDefaultTemplateRequest |
Request Body Properties
| Name | Type | Description |
|---|---|---|
templateId |
string | (required) |
modes |
(“instant” | “hourly” | “daily” | “weekly” | “monthly”)[] | (required) |
templatesUpdateTemplate()
Update a template's properties
String notificationId = "notificationId_example"; // String | Notification IDString channel = "channel_example"; // String | Channel typeString templateId = "templateId_example"; // String | Template IDTemplatePatchRequest templatePatchRequest = new TemplatePatchRequest(); // TemplatePatchRequest |try { Template result = client.getTemplates().templatesUpdateTemplate(notificationId, channel, templateId, templatePatchRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TemplatesApi#templatesUpdateTemplate: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | Notification ID | |
| channel | String | Channel type | |
| templateId | String | Template ID | |
| templatePatchRequest | TemplatePatchRequest |
Request Body Properties
| Name | Type | Description |
|---|---|---|
html |
string | HTML body of the email. |
previewText |
string | Preview text (e.g. for inbox). |
internal |
string | Internal editor representation of the email content (e.g. Bee or Redactor JSON). Used for editing and component embedding; the actual email sent to recipients uses the html field. |
subject |
string | Email subject line. |
senderName |
string | Sender display name. |
senderEmail |
string | Sender email address. |
title |
string | Notification title (in-app). |
redirectURL |
string | URL to open when the user taps the notification. |
imageURL |
string | Image URL shown in the in-app notification. |
instant |
object | Copy for instant (real-time) delivery. |
instant.title |
string | |
instant.redirectURL |
string | |
instant.imageURL |
string | (required) |
batch |
object | Copy for batch delivery. |
batch.title |
string | (required) |
batch.redirectURL |
string | (required) |
batch.imageURL |
string | (required) |
text |
string | Message text (SMS or call). |
message |
string | Push notification body text. (title is shared with INAPP_WEB above.) |
icon |
string | Web push: icon URL. Slack: bot icon (emoji or URL). |
url |
string | Web push: URL to open when the notification is clicked. |
blocks |
Record<string, any>[] | Slack message blocks (optional). |
username |
string | Slack bot username. |
Types
typesCreateNotificationType()
Create a new notification
NotificationCreateRequest notificationCreateRequest = new NotificationCreateRequest(); // NotificationCreateRequest |try { Notification result = client.getTypes().typesCreateNotificationType(notificationCreateRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TypesApi#typesCreateNotificationType: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
notificationId |
string | (required) |
title |
string | (required) |
channels |
string[] | (required) |
options |
object | |
options.EMAIL |
object | |
options.EMAIL.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.EMAIL.off |
object | |
options.EMAIL.off.enabled |
boolean | (required) |
options.EMAIL.instant |
object | |
options.EMAIL.instant.enabled |
boolean | (required) |
options.EMAIL.hourly |
object | |
options.EMAIL.hourly.enabled |
boolean | (required) |
options.EMAIL.daily |
object | |
options.EMAIL.daily.enabled |
boolean | (required) |
options.EMAIL.daily.hour |
string | |
options.EMAIL.weekly |
object | |
options.EMAIL.weekly.enabled |
boolean | (required) |
options.EMAIL.weekly.hour |
string | |
options.EMAIL.weekly.day |
string | |
options.EMAIL.monthly |
object | |
options.EMAIL.monthly.enabled |
boolean | (required) |
options.EMAIL.monthly.hour |
string | |
options.EMAIL.monthly.date |
“first” | “last” | |
options.INAPP_WEB |
object | |
options.INAPP_WEB.defaultDeliveryOption |
“off” | “instant” | (required) |
options.INAPP_WEB.off |
object | |
options.INAPP_WEB.off.enabled |
boolean | (required) |
options.INAPP_WEB.instant |
object | |
options.INAPP_WEB.instant.enabled |
boolean | (required) |
options.INAPP_WEB.instant.batching |
boolean | |
options.INAPP_WEB.instant.batchingKey |
string | |
options.INAPP_WEB.instant.batchingWindow |
number | |
options.SMS |
object | |
options.SMS.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.SMS.off |
object | |
options.SMS.off.enabled |
boolean | (required) |
options.SMS.instant |
object | |
options.SMS.instant.enabled |
boolean | (required) |
options.SMS.hourly |
object | |
options.SMS.hourly.enabled |
boolean | (required) |
options.SMS.daily |
object | |
options.SMS.daily.enabled |
boolean | (required) |
options.SMS.daily.hour |
string | |
options.SMS.weekly |
object | |
options.SMS.weekly.enabled |
boolean | (required) |
options.SMS.weekly.hour |
string | |
options.SMS.weekly.day |
string | |
options.SMS.monthly |
object | |
options.SMS.monthly.enabled |
boolean | (required) |
options.SMS.monthly.hour |
string | |
options.SMS.monthly.date |
“first” | “last” | |
options.CALL |
object | |
options.CALL.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.CALL.off |
object | |
options.CALL.off.enabled |
boolean | (required) |
options.CALL.instant |
object | |
options.CALL.instant.enabled |
boolean | (required) |
options.CALL.hourly |
object | |
options.CALL.hourly.enabled |
boolean | (required) |
options.CALL.daily |
object | |
options.CALL.daily.enabled |
boolean | (required) |
options.CALL.daily.hour |
string | |
options.CALL.weekly |
object | |
options.CALL.weekly.enabled |
boolean | (required) |
options.CALL.weekly.hour |
string | |
options.CALL.weekly.day |
string | |
options.CALL.monthly |
object | |
options.CALL.monthly.enabled |
boolean | (required) |
options.CALL.monthly.hour |
string | |
options.CALL.monthly.date |
“first” | “last” | |
options.VOICE |
object | |
options.VOICE.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.VOICE.off |
object | |
options.VOICE.off.enabled |
boolean | (required) |
options.VOICE.instant |
object | |
options.VOICE.instant.enabled |
boolean | (required) |
options.VOICE.hourly |
object | |
options.VOICE.hourly.enabled |
boolean | (required) |
options.VOICE.daily |
object | |
options.VOICE.daily.enabled |
boolean | (required) |
options.VOICE.daily.hour |
string | |
options.VOICE.weekly |
object | |
options.VOICE.weekly.enabled |
boolean | (required) |
options.VOICE.weekly.hour |
string | |
options.VOICE.weekly.day |
string | |
options.VOICE.monthly |
object | |
options.VOICE.monthly.enabled |
boolean | (required) |
options.VOICE.monthly.hour |
string | |
options.VOICE.monthly.date |
“first” | “last” | |
options.PUSH |
object | |
options.PUSH.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.PUSH.off |
object | |
options.PUSH.off.enabled |
boolean | (required) |
options.PUSH.instant |
object | |
options.PUSH.instant.enabled |
boolean | (required) |
options.PUSH.hourly |
object | |
options.PUSH.hourly.enabled |
boolean | (required) |
options.PUSH.daily |
object | |
options.PUSH.daily.enabled |
boolean | (required) |
options.PUSH.daily.hour |
string | |
options.PUSH.weekly |
object | |
options.PUSH.weekly.enabled |
boolean | (required) |
options.PUSH.weekly.hour |
string | |
options.PUSH.weekly.day |
string | |
options.PUSH.monthly |
object | |
options.PUSH.monthly.enabled |
boolean | (required) |
options.PUSH.monthly.hour |
string | |
options.PUSH.monthly.date |
“first” | “last” | |
options.WEB_PUSH |
object | |
options.WEB_PUSH.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.WEB_PUSH.off |
object | |
options.WEB_PUSH.off.enabled |
boolean | (required) |
options.WEB_PUSH.instant |
object | |
options.WEB_PUSH.instant.enabled |
boolean | (required) |
options.WEB_PUSH.hourly |
object | |
options.WEB_PUSH.hourly.enabled |
boolean | (required) |
options.WEB_PUSH.daily |
object | |
options.WEB_PUSH.daily.enabled |
boolean | (required) |
options.WEB_PUSH.daily.hour |
string | |
options.WEB_PUSH.weekly |
object | |
options.WEB_PUSH.weekly.enabled |
boolean | (required) |
options.WEB_PUSH.weekly.hour |
string | |
options.WEB_PUSH.weekly.day |
string | |
options.WEB_PUSH.monthly |
object | |
options.WEB_PUSH.monthly.enabled |
boolean | (required) |
options.WEB_PUSH.monthly.hour |
string | |
options.WEB_PUSH.monthly.date |
“first” | “last” | |
options.SLACK |
object | |
options.SLACK.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.SLACK.off |
object | |
options.SLACK.off.enabled |
boolean | (required) |
options.SLACK.instant |
object | |
options.SLACK.instant.enabled |
boolean | (required) |
options.SLACK.hourly |
object | |
options.SLACK.hourly.enabled |
boolean | (required) |
options.SLACK.daily |
object | |
options.SLACK.daily.enabled |
boolean | (required) |
options.SLACK.daily.hour |
string | |
options.SLACK.weekly |
object | |
options.SLACK.weekly.enabled |
boolean | (required) |
options.SLACK.weekly.hour |
string | |
options.SLACK.weekly.day |
string | |
options.SLACK.monthly |
object | |
options.SLACK.monthly.enabled |
boolean | (required) |
options.SLACK.monthly.hour |
string | |
options.SLACK.monthly.date |
“first” | “last” |
typesDeleteNotificationType()
Delete a notification
String notificationId = "notificationId_example"; // String | The notification IDtry { client.getTypes().typesDeleteNotificationType(notificationId);} catch (ApiException e) { System.err.println("Exception when calling TypesApi#typesDeleteNotificationType: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | The notification ID |
typesGetNotificationType()
Get a specific notification by ID
String notificationId = "notificationId_example"; // String | The notification IDtry { List<GetNotificationsResponseInner> result = client.getTypes().typesGetNotificationType(notificationId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TypesApi#typesGetNotificationType: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | The notification ID |
typesListNotificationTypes()
Get all notifications for an account with their templates
try { List<GetNotificationsResponseInner> result = client.getTypes().typesListNotificationTypes(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TypesApi#typesListNotificationTypes: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
typesUpdateNotificationType()
Update a notification's settings
String notificationId = "notificationId_example"; // String | The notification IDNotificationPatchRequest notificationPatchRequest = new NotificationPatchRequest(); // NotificationPatchRequest |try { Notification result = client.getTypes().typesUpdateNotificationType(notificationId, notificationPatchRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling TypesApi#typesUpdateNotificationType: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| notificationId | String | The notification ID | |
| notificationPatchRequest | NotificationPatchRequest |
Request Body Properties
| Name | Type | Description |
|---|---|---|
title |
string | |
channels |
(“EMAIL” | “INAPP_WEB” | “SMS” | “CALL” | “VOICE” | “PUSH” | “WEB_PUSH” | “SLACK”)[] | |
enabled |
boolean | |
deduplication |
object | |
deduplication.duration |
number | (required) |
throttling |
object | |
throttling.max |
number | (required) |
throttling.period |
number | (required) |
throttling.unit |
“seconds” | “minutes” | “hours” | “days” | “months” | “years” | (required) |
throttling.forever |
boolean | (required) |
throttling.scope |
(“userId” | “notificationId”)[] | (required) |
retention |
number | null |
options |
object | |
options.EMAIL |
object | |
options.EMAIL.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.EMAIL.off |
object | |
options.EMAIL.off.enabled |
boolean | (required) |
options.EMAIL.instant |
object | |
options.EMAIL.instant.enabled |
boolean | (required) |
options.EMAIL.hourly |
object | |
options.EMAIL.hourly.enabled |
boolean | (required) |
options.EMAIL.daily |
object | |
options.EMAIL.daily.enabled |
boolean | (required) |
options.EMAIL.daily.hour |
string | |
options.EMAIL.weekly |
object | |
options.EMAIL.weekly.enabled |
boolean | (required) |
options.EMAIL.weekly.hour |
string | |
options.EMAIL.weekly.day |
string | |
options.EMAIL.monthly |
object | |
options.EMAIL.monthly.enabled |
boolean | (required) |
options.EMAIL.monthly.hour |
string | |
options.EMAIL.monthly.date |
“first” | “last” | |
options.INAPP_WEB |
object | |
options.INAPP_WEB.defaultDeliveryOption |
“off” | “instant” | (required) |
options.INAPP_WEB.off |
object | |
options.INAPP_WEB.off.enabled |
boolean | (required) |
options.INAPP_WEB.instant |
object | |
options.INAPP_WEB.instant.enabled |
boolean | (required) |
options.INAPP_WEB.instant.batching |
boolean | |
options.INAPP_WEB.instant.batchingKey |
string | |
options.INAPP_WEB.instant.batchingWindow |
number | |
options.SMS |
object | |
options.SMS.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.SMS.off |
object | |
options.SMS.off.enabled |
boolean | (required) |
options.SMS.instant |
object | |
options.SMS.instant.enabled |
boolean | (required) |
options.SMS.hourly |
object | |
options.SMS.hourly.enabled |
boolean | (required) |
options.SMS.daily |
object | |
options.SMS.daily.enabled |
boolean | (required) |
options.SMS.daily.hour |
string | |
options.SMS.weekly |
object | |
options.SMS.weekly.enabled |
boolean | (required) |
options.SMS.weekly.hour |
string | |
options.SMS.weekly.day |
string | |
options.SMS.monthly |
object | |
options.SMS.monthly.enabled |
boolean | (required) |
options.SMS.monthly.hour |
string | |
options.SMS.monthly.date |
“first” | “last” | |
options.CALL |
object | |
options.CALL.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.CALL.off |
object | |
options.CALL.off.enabled |
boolean | (required) |
options.CALL.instant |
object | |
options.CALL.instant.enabled |
boolean | (required) |
options.CALL.hourly |
object | |
options.CALL.hourly.enabled |
boolean | (required) |
options.CALL.daily |
object | |
options.CALL.daily.enabled |
boolean | (required) |
options.CALL.daily.hour |
string | |
options.CALL.weekly |
object | |
options.CALL.weekly.enabled |
boolean | (required) |
options.CALL.weekly.hour |
string | |
options.CALL.weekly.day |
string | |
options.CALL.monthly |
object | |
options.CALL.monthly.enabled |
boolean | (required) |
options.CALL.monthly.hour |
string | |
options.CALL.monthly.date |
“first” | “last” | |
options.VOICE |
object | |
options.VOICE.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.VOICE.off |
object | |
options.VOICE.off.enabled |
boolean | (required) |
options.VOICE.instant |
object | |
options.VOICE.instant.enabled |
boolean | (required) |
options.VOICE.hourly |
object | |
options.VOICE.hourly.enabled |
boolean | (required) |
options.VOICE.daily |
object | |
options.VOICE.daily.enabled |
boolean | (required) |
options.VOICE.daily.hour |
string | |
options.VOICE.weekly |
object | |
options.VOICE.weekly.enabled |
boolean | (required) |
options.VOICE.weekly.hour |
string | |
options.VOICE.weekly.day |
string | |
options.VOICE.monthly |
object | |
options.VOICE.monthly.enabled |
boolean | (required) |
options.VOICE.monthly.hour |
string | |
options.VOICE.monthly.date |
“first” | “last” | |
options.PUSH |
object | |
options.PUSH.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.PUSH.off |
object | |
options.PUSH.off.enabled |
boolean | (required) |
options.PUSH.instant |
object | |
options.PUSH.instant.enabled |
boolean | (required) |
options.PUSH.hourly |
object | |
options.PUSH.hourly.enabled |
boolean | (required) |
options.PUSH.daily |
object | |
options.PUSH.daily.enabled |
boolean | (required) |
options.PUSH.daily.hour |
string | |
options.PUSH.weekly |
object | |
options.PUSH.weekly.enabled |
boolean | (required) |
options.PUSH.weekly.hour |
string | |
options.PUSH.weekly.day |
string | |
options.PUSH.monthly |
object | |
options.PUSH.monthly.enabled |
boolean | (required) |
options.PUSH.monthly.hour |
string | |
options.PUSH.monthly.date |
“first” | “last” | |
options.WEB_PUSH |
object | |
options.WEB_PUSH.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.WEB_PUSH.off |
object | |
options.WEB_PUSH.off.enabled |
boolean | (required) |
options.WEB_PUSH.instant |
object | |
options.WEB_PUSH.instant.enabled |
boolean | (required) |
options.WEB_PUSH.hourly |
object | |
options.WEB_PUSH.hourly.enabled |
boolean | (required) |
options.WEB_PUSH.daily |
object | |
options.WEB_PUSH.daily.enabled |
boolean | (required) |
options.WEB_PUSH.daily.hour |
string | |
options.WEB_PUSH.weekly |
object | |
options.WEB_PUSH.weekly.enabled |
boolean | (required) |
options.WEB_PUSH.weekly.hour |
string | |
options.WEB_PUSH.weekly.day |
string | |
options.WEB_PUSH.monthly |
object | |
options.WEB_PUSH.monthly.enabled |
boolean | (required) |
options.WEB_PUSH.monthly.hour |
string | |
options.WEB_PUSH.monthly.date |
“first” | “last” | |
options.SLACK |
object | |
options.SLACK.defaultDeliveryOption |
“off” | “instant” | “hourly” | “daily” | “weekly” | “monthly” | (required) |
options.SLACK.off |
object | |
options.SLACK.off.enabled |
boolean | (required) |
options.SLACK.instant |
object | |
options.SLACK.instant.enabled |
boolean | (required) |
options.SLACK.hourly |
object | |
options.SLACK.hourly.enabled |
boolean | (required) |
options.SLACK.daily |
object | |
options.SLACK.daily.enabled |
boolean | (required) |
options.SLACK.daily.hour |
string | |
options.SLACK.weekly |
object | |
options.SLACK.weekly.enabled |
boolean | (required) |
options.SLACK.weekly.hour |
string | |
options.SLACK.weekly.day |
string | |
options.SLACK.monthly |
object | |
options.SLACK.monthly.enabled |
boolean | (required) |
options.SLACK.monthly.hour |
string | |
options.SLACK.monthly.date |
“first” | “last” |
User
userGetAccountMetadata()
Get account-level metadata including logo, VAPID key, and web push status
try { GetAccountMetadataResponse result = client.getUser().userGetAccountMetadata(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UserApi#userGetAccountMetadata: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
userGetInAppNotifications()
Get in-app notifications for a user
String before = "before_example"; // String | Timestamp or ISO date to fetch notifications beforeBigDecimal count = new BigDecimal(78); // BigDecimal | Number of notifications to return (default 10)try { GetInappNotificationsResponse result = client.getUser().userGetInAppNotifications(before, count); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UserApi#userGetInAppNotifications: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| before | String | Timestamp or ISO date to fetch notifications before | [optional] |
| count | BigDecimal | Number of notifications to return (default 10) | [optional] |
userGetInAppUnreadCount()
Get the count of unread in-app notifications for a user
try { InappUnreadCountResponse result = client.getUser().userGetInAppUnreadCount(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UserApi#userGetInAppUnreadCount: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
userGetUser()
Get a user by ID. All users exist implicitly, returns basic user object if not found in DB.
String userId = "userId_example"; // String | User IDtry { User result = client.getUser().userGetUser(userId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UserApi#userGetUser: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| userId | String | User ID |
userIdentify()
Create or update a user with the given ID. Updates lastSeenTime automatically.
String userId = "userId_example"; // String | User IDPostUserRequest postUserRequest = new PostUserRequest(); // PostUserRequest |try { User result = client.getUser().userIdentify(userId, postUserRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UserApi#userIdentify: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| userId | String | User ID | |
| postUserRequest | PostUserRequest |
Request Body Properties
| Name | Type | Description |
|---|---|---|
id |
string | Unique user identifier. Required. |
email |
string | User’s email address for email notifications. |
number |
string | User’s phone number for SMS/call notifications. |
pushTokens |
object[] | Mobile push tokens (FCM, APN) for push notifications. |
pushTokens[].type |
“FCM” | “APN” | (required) |
pushTokens[].token |
string | (required) |
pushTokens[].device |
object | (required) |
pushTokens[].device.app_id |
string | |
pushTokens[].device.ad_id |
string | |
pushTokens[].device.device_id |
string | (required) |
pushTokens[].device.platform |
string | |
pushTokens[].device.manufacturer |
string | |
pushTokens[].device.model |
string | |
pushTokens[].environment |
string | used by APN to differentiate between sandbox and production builds (sandbox/undefined or production) |
webPushTokens |
object[] | Web push subscription config from the browser. |
webPushTokens[].sub |
object | (required) Configuration for a Push Subscription. This can be obtained on the frontend by calling serviceWorkerRegistration.pushManager.subscribe(). The expected format is the same output as JSON.stringify’ing a PushSubscription in the browser. |
webPushTokens[].sub.endpoint |
string | (required) |
webPushTokens[].sub.keys |
object | (required) |
webPushTokens[].sub.keys.p256dh |
string | (required) |
webPushTokens[].sub.keys.auth |
string | (required) |
timezone |
string | User’s timezone (e.g. “America/New_York”) for scheduling. |
slackChannel |
string | The destination channel of slack notifications sent to this user. Can be either of the following: - Channel name, e.g. “test” - Channel name with # prefix, e.g. “#test” - Channel ID, e.g. “C1234567890” - User ID for DM, e.g. “U1234567890” - Username with @ prefix, e.g. “@test” |
slackToken |
object | |
slackToken.access_token |
string | |
slackToken.app_id |
string | |
slackToken.authed_user |
object | |
slackToken.authed_user.access_token |
string | |
slackToken.authed_user.expires_in |
number | |
slackToken.authed_user.id |
string | |
slackToken.authed_user.refresh_token |
string | |
slackToken.authed_user.scope |
string | |
slackToken.authed_user.token_type |
string | |
slackToken.bot_user_id |
string | |
slackToken.enterprise |
object | |
slackToken.enterprise.id |
string | |
slackToken.enterprise.name |
string | |
slackToken.error |
string | |
slackToken.expires_in |
number | |
slackToken.incoming_webhook |
object | |
slackToken.incoming_webhook.channel |
string | |
slackToken.incoming_webhook.channel_id |
string | |
slackToken.incoming_webhook.configuration_url |
string | |
slackToken.incoming_webhook.url |
string | |
slackToken.is_enterprise_install |
boolean | |
slackToken.needed |
string | |
slackToken.ok |
boolean | (required) |
slackToken.provided |
string | |
slackToken.refresh_token |
string | |
slackToken.scope |
string | |
slackToken.team |
object | |
slackToken.team.id |
string | |
slackToken.team.name |
string | |
slackToken.token_type |
string | |
slackToken.warning |
string | |
slackToken.response_metadata |
object | |
slackToken.response_metadata.warnings |
string[] | |
slackToken.response_metadata.next_cursor |
string | |
slackToken.response_metadata.scopes |
string[] | |
slackToken.response_metadata.acceptedScopes |
string[] | |
slackToken.response_metadata.retryAfter |
number | |
slackToken.response_metadata.messages |
string[] |
userMarkInAppNotificationsAsSeen()
Mark in-app web notifications as seen/read for a user
InAppNotificationUnreadClearRequest inAppNotificationUnreadClearRequest = new InAppNotificationUnreadClearRequest(); // InAppNotificationUnreadClearRequest |try { SuccessResponse result = client.getUser().userMarkInAppNotificationsAsSeen(inAppNotificationUnreadClearRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UserApi#userMarkInAppNotificationsAsSeen: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
notificationId |
string | |
trackingId |
string |
userUpdateInAppNotificationStatus()
Update in-app web notification status (opened, archived, clicked, etc.)
InAppNotificationPatchRequest inAppNotificationPatchRequest = new InAppNotificationPatchRequest(); // InAppNotificationPatchRequest |try { SuccessResponse result = client.getUser().userUpdateInAppNotificationStatus(inAppNotificationPatchRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UserApi#userUpdateInAppNotificationStatus: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
trackingIds |
string[] | (required) |
opened |
string | |
clicked |
string | |
archived |
string | |
actioned1 |
string | |
actioned2 |
string | |
reply |
object | |
reply.date |
string | (required) |
reply.message |
string | (required) |
replies |
object[] | |
replies[].date |
string | (required) |
replies[].message |
string | (required) |
Users
usersDeleteUser()
Delete a user and all associated data (in-app notifications, preferences, and user record)
String userId = "userId_example"; // String | User IDString envId = "envId_example"; // String | Environment ID (required when using JWT auth)try { DeleteUserResponse result = client.getUsers().usersDeleteUser(userId, envId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UsersApi#usersDeleteUser: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| userId | String | User ID | |
| envId | String | Environment ID (required when using JWT auth) | [optional] |
usersListUsers()
Get all users for an environment with pagination support
BigDecimal limit = new BigDecimal(78); // BigDecimal | Maximum number of users to return (defaultString nextToken = "nextToken_example"; // String | Pagination token for next pageString envId = "envId_example"; // String | Environment ID (required when using JWT auth)try { GetUsersResponse result = client.getUsers().usersListUsers(limit, nextToken, envId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UsersApi#usersListUsers: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| limit | BigDecimal | Maximum number of users to return (default | |
| nextToken | String | Pagination token for next page | |
| envId | String | Environment ID (required when using JWT auth) | [optional] |
usersRemoveUserFromSuppression()
Remove user suppression status for a specific channel
String userId = "userId_example"; // String | User IDString channel = "channel_example"; // String | Channel type (EMAIL)String envId = "envId_example"; // String | Environment ID (required when using JWT auth)try { UserSuppressionDeleteResponse result = client.getUsers().usersRemoveUserFromSuppression(userId, channel, envId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling UsersApi#usersRemoveUserFromSuppression: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| userId | String | User ID | |
| channel | String | Channel type (EMAIL) | |
| envId | String | Environment ID (required when using JWT auth) | [optional] |
Voice
voiceBindNumber()
Bind a phone number to a deployed agent for inbound routing
String agentId = "agentId_example"; // String | Agent idBindNumberRequest bindNumberRequest = new BindNumberRequest(); // BindNumberRequest |try { BindNumberResponse result = client.getVoice().voiceBindNumber(agentId, bindNumberRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceBindNumber: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| agentId | String | Agent id | |
| bindNumberRequest | BindNumberRequest |
Request Body Properties
| Name | Type | Description |
|---|---|---|
phoneNumber |
string | (required) |
voiceCall()
Place an outbound call with an inline agent spec (ephemeral)
VoiceCallRequest voiceCallRequest = new VoiceCallRequest(); // VoiceCallRequest |try { VoiceCallResponse result = client.getVoice().voiceCall(voiceCallRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceCall: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
phoneNumber |
string | (required) |
spec |
object | (required) |
spec.name |
string | (required) |
spec.instructions |
string | (required) |
spec.inbound |
object | (required) |
spec.inbound.firstAction |
“speak” | “wait” | (required) |
spec.inbound.greeting |
string | (required) |
spec.outbound |
object | (required) |
spec.outbound.firstAction |
“speak” | “wait” | (required) |
spec.outbound.opener |
string | (required) |
spec.outbound.voicemailAction |
“hangup” | “message” | “continue” | (required) |
spec.outbound.voicemailMessage |
string | |
spec.model |
object | object | (required) Speech pipeline. Prefer s2s mode (e.g. openai:gpt-realtime with voice marin). |
spec.model.mode |
“chained” | (required) |
spec.model.llm |
string | (required) ‘provider:model’, e.g. ‘openai:gpt-4o’ |
spec.model.stt |
string | (required) ‘provider:model’, e.g. ‘deepgram:nova-3’ |
spec.model.tts |
string | (required) ‘provider:model’, e.g. ‘elevenlabs:eleven_multilingual_v2’ |
spec.model.voiceId |
string | (required) Provider-native voice id for the selected TTS provider (e.g. ElevenLabs UUID, OpenAI alloy). |
spec.model.language |
string | (required) |
spec.model.speechSpeed |
number | (required) |
spec.model.temperature |
number | (required) |
spec.model.maxTokens |
number | (required) |
spec.tools |
(object | object | object | object | object)[] | (required) |
spec.variables |
object[] | (required) |
spec.variables[].name |
string | (required) |
spec.variables[].description |
string | |
spec.variables[].defaultValue |
string | |
spec.conversation |
object | (required) |
spec.conversation.turnDetection |
“semantic” | “vad” | (required) |
spec.conversation.minEndOfTurnSilenceMs |
number | (required) |
spec.conversation.allowInterruptions |
boolean | (required) |
spec.conversation.minInterruptionDurationMs |
number | (required) |
spec.conversation.silenceTimeoutSeconds |
number | (required) |
spec.conversation.maxCallLengthSeconds |
number | (required) |
spec.conversation.agentCanEndCall |
boolean | When true (default), the agent may invoke the built-in end_call action. |
spec.compliance |
object | (required) |
spec.compliance.recordingEnabled |
boolean | (required) |
variables |
Record<string, string> | Optional per-call {{variable}} overrides. |
agentId |
string | Saved agent id when testing from the dashboard playground. |
voiceCreateAgent()
Deploy a voice agent (persist spec for production routing)
CreateVoiceAgentRequest createVoiceAgentRequest = new CreateVoiceAgentRequest(); // CreateVoiceAgentRequest |try { CreateVoiceAgentResponse result = client.getVoice().voiceCreateAgent(createVoiceAgentRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceCreateAgent: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
spec |
object | (required) |
spec.name |
string | (required) |
spec.instructions |
string | (required) |
spec.inbound |
object | (required) |
spec.inbound.firstAction |
“speak” | “wait” | (required) |
spec.inbound.greeting |
string | (required) |
spec.outbound |
object | (required) |
spec.outbound.firstAction |
“speak” | “wait” | (required) |
spec.outbound.opener |
string | (required) |
spec.outbound.voicemailAction |
“hangup” | “message” | “continue” | (required) |
spec.outbound.voicemailMessage |
string | |
spec.model |
object | object | (required) Speech pipeline. Prefer s2s mode (e.g. openai:gpt-realtime with voice marin). |
spec.model.mode |
“chained” | (required) |
spec.model.llm |
string | (required) ‘provider:model’, e.g. ‘openai:gpt-4o’ |
spec.model.stt |
string | (required) ‘provider:model’, e.g. ‘deepgram:nova-3’ |
spec.model.tts |
string | (required) ‘provider:model’, e.g. ‘elevenlabs:eleven_multilingual_v2’ |
spec.model.voiceId |
string | (required) Provider-native voice id for the selected TTS provider (e.g. ElevenLabs UUID, OpenAI alloy). |
spec.model.language |
string | (required) |
spec.model.speechSpeed |
number | (required) |
spec.model.temperature |
number | (required) |
spec.model.maxTokens |
number | (required) |
spec.tools |
(object | object | object | object | object)[] | (required) |
spec.variables |
object[] | (required) |
spec.variables[].name |
string | (required) |
spec.variables[].description |
string | |
spec.variables[].defaultValue |
string | |
spec.conversation |
object | (required) |
spec.conversation.turnDetection |
“semantic” | “vad” | (required) |
spec.conversation.minEndOfTurnSilenceMs |
number | (required) |
spec.conversation.allowInterruptions |
boolean | (required) |
spec.conversation.minInterruptionDurationMs |
number | (required) |
spec.conversation.silenceTimeoutSeconds |
number | (required) |
spec.conversation.maxCallLengthSeconds |
number | (required) |
spec.conversation.agentCanEndCall |
boolean | When true (default), the agent may invoke the built-in end_call action. |
spec.compliance |
object | (required) |
spec.compliance.recordingEnabled |
boolean | (required) |
voiceCreateBrowserCall()
Place an ephemeral browser playground call with an inline agent spec
VoiceBrowserCallRequest voiceBrowserCallRequest = new VoiceBrowserCallRequest(); // VoiceBrowserCallRequest |try { VoiceBrowserCallResponse result = client.getVoice().voiceCreateBrowserCall(voiceBrowserCallRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceCreateBrowserCall: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
spec |
object | (required) |
spec.name |
string | (required) |
spec.instructions |
string | (required) |
spec.inbound |
object | (required) |
spec.inbound.firstAction |
“speak” | “wait” | (required) |
spec.inbound.greeting |
string | (required) |
spec.outbound |
object | (required) |
spec.outbound.firstAction |
“speak” | “wait” | (required) |
spec.outbound.opener |
string | (required) |
spec.outbound.voicemailAction |
“hangup” | “message” | “continue” | (required) |
spec.outbound.voicemailMessage |
string | |
spec.model |
object | object | (required) Speech pipeline. Prefer s2s mode (e.g. openai:gpt-realtime with voice marin). |
spec.model.mode |
“chained” | (required) |
spec.model.llm |
string | (required) ‘provider:model’, e.g. ‘openai:gpt-4o’ |
spec.model.stt |
string | (required) ‘provider:model’, e.g. ‘deepgram:nova-3’ |
spec.model.tts |
string | (required) ‘provider:model’, e.g. ‘elevenlabs:eleven_multilingual_v2’ |
spec.model.voiceId |
string | (required) Provider-native voice id for the selected TTS provider (e.g. ElevenLabs UUID, OpenAI alloy). |
spec.model.language |
string | (required) |
spec.model.speechSpeed |
number | (required) |
spec.model.temperature |
number | (required) |
spec.model.maxTokens |
number | (required) |
spec.tools |
(object | object | object | object | object)[] | (required) |
spec.variables |
object[] | (required) |
spec.variables[].name |
string | (required) |
spec.variables[].description |
string | |
spec.variables[].defaultValue |
string | |
spec.conversation |
object | (required) |
spec.conversation.turnDetection |
“semantic” | “vad” | (required) |
spec.conversation.minEndOfTurnSilenceMs |
number | (required) |
spec.conversation.allowInterruptions |
boolean | (required) |
spec.conversation.minInterruptionDurationMs |
number | (required) |
spec.conversation.silenceTimeoutSeconds |
number | (required) |
spec.conversation.maxCallLengthSeconds |
number | (required) |
spec.conversation.agentCanEndCall |
boolean | When true (default), the agent may invoke the built-in end_call action. |
spec.compliance |
object | (required) |
spec.compliance.recordingEnabled |
boolean | (required) |
variables |
Record<string, string> | Optional per-call {{variable}} overrides for browser playground. |
agentId |
string | Saved agent id when testing from the dashboard playground. |
voiceDeleteAgent()
Remove a deployed voice agent and unbind its numbers
String agentId = "agentId_example"; // String | Agent idtry { DeleteVoiceAgentResponse result = client.getVoice().voiceDeleteAgent(agentId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceDeleteAgent: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| agentId | String | Agent id |
voiceGetAgent()
Get a deployed voice agent
String agentId = "agentId_example"; // String | Agent idtry { GetVoiceAgentResponse result = client.getVoice().voiceGetAgent(agentId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceGetAgent: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| agentId | String | Agent id |
voiceGetCall()
Get a call with transcript timeline and recording playback URL
String trackingId = "trackingId_example"; // String | Call tracking idtry { GetVoiceCallResponse result = client.getVoice().voiceGetCall(trackingId); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceGetCall: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| trackingId | String | Call tracking id |
voiceListAgents()
List deployed voice agents for the account
try { ListVoiceAgentsResponse result = client.getVoice().voiceListAgents(); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceListAgents: " + e.getMessage());}Parameters
This endpoint does not need any parameter.
voiceListCalls()
List recent calls newest-first (30-day retention)
String agentId = "agentId_example"; // String | Only calls handled by this agentBigDecimal limit = new BigDecimal(78); // BigDecimal | Page size (default 25, max 100)String cursor = "cursor_example"; // String | Pagination cursor from a previous responsetry { ListVoiceCallsResponse result = client.getVoice().voiceListCalls(agentId, limit, cursor); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceListCalls: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| agentId | String | Only calls handled by this agent | [optional] |
| limit | BigDecimal | Page size (default 25, max 100) | [optional] |
| cursor | String | Pagination cursor from a previous response | [optional] |
voiceUnbindNumber()
Unbind a phone number from a deployed agent
String agentId = "agentId_example"; // String | Agent idString phoneNumber = "phoneNumber_example"; // String | E.164 phone numbertry { UnbindNumberResponse result = client.getVoice().voiceUnbindNumber(agentId, phoneNumber); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceUnbindNumber: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| agentId | String | Agent id | |
| phoneNumber | String | E.164 phone number |
voiceUpdateAgent()
Publish changes to a deployed voice agent
String agentId = "agentId_example"; // String | Agent idUpdateVoiceAgentRequest updateVoiceAgentRequest = new UpdateVoiceAgentRequest(); // UpdateVoiceAgentRequest |try { UpdateVoiceAgentResponse result = client.getVoice().voiceUpdateAgent(agentId, updateVoiceAgentRequest); System.out.println(result);} catch (ApiException e) { System.err.println("Exception when calling VoiceApi#voiceUpdateAgent: " + e.getMessage());}Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| agentId | String | Agent id | |
| updateVoiceAgentRequest | UpdateVoiceAgentRequest |
Request Body Properties
| Name | Type | Description |
|---|---|---|
spec |
object | (required) |
spec.name |
string | (required) |
spec.instructions |
string | (required) |
spec.inbound |
object | (required) |
spec.inbound.firstAction |
“speak” | “wait” | (required) |
spec.inbound.greeting |
string | (required) |
spec.outbound |
object | (required) |
spec.outbound.firstAction |
“speak” | “wait” | (required) |
spec.outbound.opener |
string | (required) |
spec.outbound.voicemailAction |
“hangup” | “message” | “continue” | (required) |
spec.outbound.voicemailMessage |
string | |
spec.model |
object | object | (required) Speech pipeline. Prefer s2s mode (e.g. openai:gpt-realtime with voice marin). |
spec.model.mode |
“chained” | (required) |
spec.model.llm |
string | (required) ‘provider:model’, e.g. ‘openai:gpt-4o’ |
spec.model.stt |
string | (required) ‘provider:model’, e.g. ‘deepgram:nova-3’ |
spec.model.tts |
string | (required) ‘provider:model’, e.g. ‘elevenlabs:eleven_multilingual_v2’ |
spec.model.voiceId |
string | (required) Provider-native voice id for the selected TTS provider (e.g. ElevenLabs UUID, OpenAI alloy). |
spec.model.language |
string | (required) |
spec.model.speechSpeed |
number | (required) |
spec.model.temperature |
number | (required) |
spec.model.maxTokens |
number | (required) |
spec.tools |
(object | object | object | object | object)[] | (required) |
spec.variables |
object[] | (required) |
spec.variables[].name |
string | (required) |
spec.variables[].description |
string | |
spec.variables[].defaultValue |
string | |
spec.conversation |
object | (required) |
spec.conversation.turnDetection |
“semantic” | “vad” | (required) |
spec.conversation.minEndOfTurnSilenceMs |
number | (required) |
spec.conversation.allowInterruptions |
boolean | (required) |
spec.conversation.minInterruptionDurationMs |
number | (required) |
spec.conversation.silenceTimeoutSeconds |
number | (required) |
spec.conversation.maxCallLengthSeconds |
number | (required) |
spec.conversation.agentCanEndCall |
boolean | When true (default), the agent may invoke the built-in end_call action. |
spec.compliance |
object | (required) |
spec.compliance.recordingEnabled |
boolean | (required) |