Go SDK
Setup & Initialization
- Install Package:
go get github.com/pingram-io/pingram-go
- Import:
import (
pingram "github.com/pingram-io/pingram-go"
)
- Initialize:
client := pingram.NewClient("pingram_sk_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 pingram.WithBaseURL("https://api.eu.pingram.io") or pingram.WithRegion(pingram.RegionEU) for EU/CA. Default is US. |
* required
Region example:
client := pingram.NewClient("pingram_sk_...", pingram.WithRegion(pingram.RegionEU))
Working example
Full runnable example that sends a notification:
package main
import (
"context"
"encoding/json"
"fmt"
"log"
pingram "github.com/pingram-io/pingram-go"
)
func main() {
client := pingram.NewClient("pingram_sk_your_api_key") // or WithBaseURL("https://api.pingram.click") for custom host
body := pingram.SenderPostBody{
Type: pingram.PtrString("domain_verification"),
User: &pingram.GetUsersResponseUsersInner{
Id: "user@example.com",
Email: pingram.PtrString("user@example.com"),
},
Email: &pingram.SenderPostBodyEmail{
Subject: "Domain Verification",
Html: "<p>Please verify your domain by clicking the link below.</p>",
},
}
resp, _, err := client.DefaultAPI.Send(context.Background()).SenderPostBody(body).Execute()
if err != nil {
log.Fatal(err)
}
out, _ := json.MarshalIndent(resp, "", " ")
fmt.Println(string(out))
}
The sections below list every API method. For most use cases the Send method and the Domains / Users / Types APIs are the main ones.
Send
Send()
Send a notification
senderPostBody := *pingram.NewSenderPostBody() // SenderPostBody
resp, _, err := client.DefaultAPI.Send(ctx).SenderPostBody(senderPostBody).Execute()
if err != nil {
// handle error
}
// resp is SenderPostResponse
Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
type | string | |
to | object | |
to.id | string | |
to.email | string | |
to.number | string | |
to.pushTokens | object[] | |
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[] | |
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 | |
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 | |
to.updatedAt | string | |
to.createdAt | string | |
to.emailSuppressionStatus | object | |
to.emailSuppressionStatus.reason | ”Bounce” | “Complaint” | (required) |
to.emailSuppressionStatus.details | object | (required) |
forceChannels | (“EMAIL” | “INAPP_WEB” | “SMS” | “CALL” | “PUSH” | “WEB_PUSH” | “SLACK”)[] | |
parameters | Record<string, any> | |
secondaryId | string | |
templateId | string | |
subNotificationId | string | |
options | object | |
options.email | object | |
options.email.replyToAddresses | string[] | |
options.email.ccAddresses | string[] | |
options.email.bccAddresses | string[] | |
options.email.fromAddress | string | |
options.email.fromName | string | |
options.email.attachments | (object | object)[] | |
options.email.condition | string | |
options.apn | object | |
options.apn.expiry | number | |
options.apn.priority | number | |
options.apn.collapseId | string | |
options.apn.threadId | string | |
options.apn.badge | number | |
options.apn.sound | string | |
options.apn.contentAvailable | boolean | |
options.fcm | object | |
options.fcm.android | object | |
options.fcm.android.collapseKey | string | |
options.fcm.android.priority | ”high” | “normal” | |
options.fcm.android.ttl | number | |
options.fcm.android.restrictedPackageName | string | |
schedule | string | |
email | object | |
email.subject | string | (required) |
email.html | string | (required) |
email.previewText | string | |
email.senderName | string | |
email.senderEmail | string | |
inapp | object | |
inapp.title | string | (required) |
inapp.url | string | |
inapp.image | string | |
sms | object | |
sms.message | string | |
sms.autoReply | object | |
sms.autoReply.message | string | (required) |
call | object | |
call.message | string | (required) |
web_push | object | |
web_push.title | string | (required) |
web_push.message | string | (required) |
web_push.icon | string | |
web_push.url | string | |
mobile_push | object | |
mobile_push.title | string | (required) |
mobile_push.message | string | (required) |
slack | object | |
slack.text | string | (required) |
slack.blocks | Record<string, any>[] | |
slack.username | string | |
slack.icon | string | |
slack.thread_ts | string | |
slack.reply_broadcast | boolean | |
slack.parse | ”full” | “none” | |
slack.link_names | boolean | |
slack.mrkdwn | boolean | |
slack.unfurl_links | boolean | |
slack.unfurl_media | boolean | |
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. |
Domains
DomainsAddDomain()
Request to verify a new sender domain
postSendersRequestBody := *pingram.NewPostSendersRequestBody("Sender_example") // PostSendersRequestBody
resp, _, err := client.DomainsAPI.DomainsAddDomain(ctx).PostSendersRequestBody(postSendersRequestBody).Execute()
if err != nil {
// handle error
}
// resp is []GetSendersResponseInner
Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
sender | string | (required) |
DomainsDeleteDomain()
Delete a sender domain or email address
sender := // Sender domain or email address (URL encoded)
resp, _, err := client.DomainsAPI.DomainsDeleteDomain(ctx, sender).Execute()
if err != nil {
// handle error
}
// resp is SuccessResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| sender | string | Sender domain or email address (URL encoded) | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
DomainsListDomains()
Get all sender domains configured for the account
resp, _, err := client.DomainsAPI.DomainsListDomains(ctx).Execute()
if err != nil {
// handle error
}
// resp is []GetSendersResponseInner
Parameters
This endpoint does not need any parameter.
Environments
EnvironmentsCreateEnvironment()
Create a new environment for the account
environmentCreateRequest := *pingram.NewEnvironmentCreateRequest("Title_example") // EnvironmentCreateRequest
resp, _, err := client.EnvironmentsAPI.EnvironmentsCreateEnvironment(ctx).EnvironmentCreateRequest(environmentCreateRequest).Execute()
if err != nil {
// handle error
}
// resp is Environment
Parameters
| Name | Type | Description | Notes |
|---|
Request Body Properties
| Name | Type | Description |
|---|---|---|
title | string | (required) |
EnvironmentsListEnvironments()
Get all environments for the authenticated account
resp, _, err := client.EnvironmentsAPI.EnvironmentsListEnvironments(ctx).Execute()
if err != nil {
// handle error
}
// resp is []GetEnvironmentsResponseInner
Parameters
This endpoint does not need any parameter.
EnvironmentsUpdateEnvironment()
Update environment settings (title, secret, disable sending, secure mode)
clientId := // Environment client ID
environmentPatchRequest := *pingram.NewEnvironmentPatchRequest() // EnvironmentPatchRequest
resp, _, err := client.EnvironmentsAPI.EnvironmentsUpdateEnvironment(ctx, clientId).EnvironmentPatchRequest(environmentPatchRequest).Execute()
if err != nil {
// handle error
}
// resp is Environment
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| clientId | string | Environment client ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
Request Body Properties
| Name | Type | Description |
|---|---|---|
resetSecret | boolean | |
disableSending | (“EMAIL” | “INAPP_WEB” | “SMS” | “CALL” | “PUSH” | “WEB_PUSH” | “SLACK”)[] | |
title | string | |
secureMode | boolean |
Logs
LogsGetLogRetention()
Get log retention period in days for the account
resp, _, err := client.LogsAPI.LogsGetLogRetention(ctx).Execute()
if err != nil {
// handle error
}
// resp is LogsRetentionResponse
Parameters
This endpoint does not need any parameter.
LogsGetLogs()
List logs for the authenticated account
limit := float32(8.14) // float32 (optional)
cursor := "cursor_example" // string (optional)
resp, _, err := client.LogsAPI.LogsGetLogs(ctx).Limit(limit).Cursor(cursor).Execute()
if err != nil {
// handle error
}
// resp is GetLogsResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| limit | float32 | Maximum number of logs to return (default | |
| cursor | string | Pagination cursor for next page |
LogsGetLogsByTrackingIds()
Get logs by tracking IDs (comma-separated, max 25 IDs)
trackingIds := // Comma-separated tracking IDs (URL encoded)
resp, _, err := client.LogsAPI.LogsGetLogsByTrackingIds(ctx, trackingIds).Execute()
if err != nil {
// handle error
}
// resp is LogsGetResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| trackingIds | string | Comma-separated tracking IDs (URL encoded) | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
LogsGetLogsQueryResult()
Get results from a query ID
queryId := // Query ID
resp, _, err := client.LogsAPI.LogsGetLogsQueryResult(ctx, queryId).Execute()
if err != nil {
// handle error
}
// resp is LogsQueryResultResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| queryId | string | Query ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
LogsStartLogsQuery()
Start a log query and return query ID for asynchronous log searching
logQueryPostBody := *pingram.NewLogQueryPostBody() // LogQueryPostBody
resp, _, err := client.LogsAPI.LogsStartLogsQuery(ctx).LogQueryPostBody(logQueryPostBody).Execute()
if err != nil {
// handle error
}
// resp is LogsQueryResponse
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” | “web_push” | “mobile_push” | “slack”)[] | |
notificationFilter | string[] |
LogsTailLogs()
Get last 100 logs from the stream
resp, _, err := client.LogsAPI.LogsTailLogs(ctx).Execute()
if err != nil {
// handle error
}
// resp is LogsTailResponse
Parameters
This endpoint does not need any parameter.
Sender
SenderDeleteSchedule()
Delete (unschedule) an already scheduled notification
trackingId := // The tracking ID of the scheduled notification
resp, _, err := client.SenderAPI.SenderDeleteSchedule(ctx, trackingId).Execute()
if err != nil {
// handle error
}
// resp is MessageResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| trackingId | string | The tracking ID of the scheduled notification | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
SenderUpdateSchedule()
Update the body or schedule of an already scheduled notification.
trackingId := // The tracking ID of the scheduled notification
senderPostBody := *pingram.NewSenderPostBody() // SenderPostBody
resp, _, err := client.SenderAPI.SenderUpdateSchedule(ctx, trackingId).SenderPostBody(senderPostBody).Execute()
if err != nil {
// handle error
}
// resp is MessageResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| trackingId | string | The tracking ID of the scheduled notification | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
Request Body Properties
| Name | Type | Description |
|---|---|---|
type | string | |
to | object | |
to.id | string | |
to.email | string | |
to.number | string | |
to.pushTokens | object[] | |
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[] | |
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 | |
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 | |
to.updatedAt | string | |
to.createdAt | string | |
to.emailSuppressionStatus | object | |
to.emailSuppressionStatus.reason | ”Bounce” | “Complaint” | (required) |
to.emailSuppressionStatus.details | object | (required) |
forceChannels | (“EMAIL” | “INAPP_WEB” | “SMS” | “CALL” | “PUSH” | “WEB_PUSH” | “SLACK”)[] | |
parameters | Record<string, any> | |
secondaryId | string | |
templateId | string | |
subNotificationId | string | |
options | object | |
options.email | object | |
options.email.replyToAddresses | string[] | |
options.email.ccAddresses | string[] | |
options.email.bccAddresses | string[] | |
options.email.fromAddress | string | |
options.email.fromName | string | |
options.email.attachments | (object | object)[] | |
options.email.condition | string | |
options.apn | object | |
options.apn.expiry | number | |
options.apn.priority | number | |
options.apn.collapseId | string | |
options.apn.threadId | string | |
options.apn.badge | number | |
options.apn.sound | string | |
options.apn.contentAvailable | boolean | |
options.fcm | object | |
options.fcm.android | object | |
options.fcm.android.collapseKey | string | |
options.fcm.android.priority | ”high” | “normal” | |
options.fcm.android.ttl | number | |
options.fcm.android.restrictedPackageName | string | |
schedule | string | |
email | object | |
email.subject | string | (required) |
email.html | string | (required) |
email.previewText | string | |
email.senderName | string | |
email.senderEmail | string | |
inapp | object | |
inapp.title | string | (required) |
inapp.url | string | |
inapp.image | string | |
sms | object | |
sms.message | string | |
sms.autoReply | object | |
sms.autoReply.message | string | (required) |
call | object | |
call.message | string | (required) |
web_push | object | |
web_push.title | string | (required) |
web_push.message | string | (required) |
web_push.icon | string | |
web_push.url | string | |
mobile_push | object | |
mobile_push.title | string | (required) |
mobile_push.message | string | (required) |
slack | object | |
slack.text | string | (required) |
slack.blocks | Record<string, any>[] | |
slack.username | string | |
slack.icon | string | |
slack.thread_ts | string | |
slack.reply_broadcast | boolean | |
slack.parse | ”full” | “none” | |
slack.link_names | boolean | |
slack.mrkdwn | boolean | |
slack.unfurl_links | boolean | |
slack.unfurl_media | boolean | |
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. |
Templates
TemplatesCreateTemplate()
Create a new template for a notification
notificationId := // Notification ID
channel := // Channel type
templatePostRequest := *pingram.NewTemplatePostRequest("TemplateId_example") // TemplatePostRequest
resp, _, err := client.TemplatesAPI.TemplatesCreateTemplate(ctx, notificationId, channel).TemplatePostRequest(templatePostRequest).Execute()
if err != nil {
// handle error
}
// resp is Template
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | Notification ID | |
| channel | string | Channel type | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
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. |
migration | string | Migration metadata (e.g. from template migration). |
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
notificationId := // Notification ID
channel := // Channel type
templateId := // Template ID
_, err := client.TemplatesAPI.TemplatesDeleteTemplate(ctx, notificationId, channel, templateId).Execute()
if err != nil {
// handle error
}
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | Notification ID | |
| channel | string | Channel type | |
| templateId | string | Template ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
TemplatesGetTemplate()
Get a single template by ID
notificationId := // Notification ID
channel := // Channel type
templateId := // Template ID
resp, _, err := client.TemplatesAPI.TemplatesGetTemplate(ctx, notificationId, channel, templateId).Execute()
if err != nil {
// handle error
}
// resp is GetTemplatesResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | Notification ID | |
| channel | string | Channel type | |
| templateId | string | Template ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
TemplatesListTemplates()
List all templates for a notification and channel
notificationId := // Notification ID
channel := // Channel type
resp, _, err := client.TemplatesAPI.TemplatesListTemplates(ctx, notificationId, channel).Execute()
if err != nil {
// handle error
}
// resp is []GetTemplatesListResponseInner
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | Notification ID | |
| channel | string | Channel type | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
TemplatesSetDefaultTemplate()
Set a template as default for specific delivery modes
notificationId := // Notification ID
channel := // Channel type
setDefaultTemplateRequest := *pingram.NewSetDefaultTemplateRequest("TemplateId_example", []string{"Modes_example"}) // SetDefaultTemplateRequest
resp, _, err := client.TemplatesAPI.TemplatesSetDefaultTemplate(ctx, notificationId, channel).SetDefaultTemplateRequest(setDefaultTemplateRequest).Execute()
if err != nil {
// handle error
}
// resp is Template
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | Notification ID | |
| channel | string | Channel type | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
Request Body Properties
| Name | Type | Description |
|---|---|---|
templateId | string | (required) |
modes | (“instant” | “hourly” | “daily” | “weekly” | “monthly”)[] | (required) |
TemplatesUpdateTemplate()
Update a template’s properties
notificationId := // Notification ID
channel := // Channel type
templateId := // Template ID
templatePatchRequest := *pingram.NewTemplatePatchRequest() // TemplatePatchRequest
resp, _, err := client.TemplatesAPI.TemplatesUpdateTemplate(ctx, notificationId, channel, templateId).TemplatePatchRequest(templatePatchRequest).Execute()
if err != nil {
// handle error
}
// resp is Template
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | Notification ID | |
| channel | string | Channel type | |
| templateId | string | Template ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
Types
TypesCreateNotificationType()
Create a new notification
notificationCreateRequest := *pingram.NewNotificationCreateRequest("NotificationId_example", "Title_example", []string{"Channels_example"}) // NotificationCreateRequest
resp, _, err := client.TypesAPI.TypesCreateNotificationType(ctx).NotificationCreateRequest(notificationCreateRequest).Execute()
if err != nil {
// handle error
}
// resp is Notification
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.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
notificationId := // The notification ID
_, err := client.TypesAPI.TypesDeleteNotificationType(ctx, notificationId).Execute()
if err != nil {
// handle error
}
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | The notification ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
TypesGetNotificationType()
Get a specific notification by ID
notificationId := // The notification ID
resp, _, err := client.TypesAPI.TypesGetNotificationType(ctx, notificationId).Execute()
if err != nil {
// handle error
}
// resp is []GetNotificationsResponseInner
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | The notification ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
TypesListNotificationTypes()
Get all notifications for an account with their templates
resp, _, err := client.TypesAPI.TypesListNotificationTypes(ctx).Execute()
if err != nil {
// handle error
}
// resp is []GetNotificationsResponseInner
Parameters
This endpoint does not need any parameter.
TypesUpdateNotificationType()
Update a notification’s settings
notificationId := // The notification ID
notificationPatchRequest := *pingram.NewNotificationPatchRequest() // NotificationPatchRequest
resp, _, err := client.TypesAPI.TypesUpdateNotificationType(ctx, notificationId).NotificationPatchRequest(notificationPatchRequest).Execute()
if err != nil {
// handle error
}
// resp is Notification
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| notificationId | string | The notification ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
Request Body Properties
| Name | Type | Description |
|---|---|---|
title | string | |
channels | (“EMAIL” | “INAPP_WEB” | “SMS” | “CALL” | “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 | |
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.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
resp, _, err := client.UserAPI.UserGetAccountMetadata(ctx).Execute()
if err != nil {
// handle error
}
// resp is GetAccountMetadataResponse
Parameters
This endpoint does not need any parameter.
UserGetAvailableSlackChannels()
Get list of Slack channels and users for the authenticated user
userId := // User ID
_, err := client.UserAPI.UserGetAvailableSlackChannels(ctx, userId).Execute()
if err != nil {
// handle error
}
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| userId | string | User ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
UserGetInAppNotifications()
Get in-app notifications for a user
before := "before_example" // string (optional)
count := float32(8.14) // float32 (optional)
resp, _, err := client.UserAPI.UserGetInAppNotifications(ctx).Before(before).Count(count).Execute()
if err != nil {
// handle error
}
// resp is GetInappNotificationsResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| before | string | Timestamp or ISO date to fetch notifications before | |
| count | float32 | Number of notifications to return (default 10) |
UserGetInAppUnreadCount()
Get the count of unread in-app notifications for a user
resp, _, err := client.UserAPI.UserGetInAppUnreadCount(ctx).Execute()
if err != nil {
// handle error
}
// resp is InappUnreadCountResponse
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.
userId := // User ID
resp, _, err := client.UserAPI.UserGetUser(ctx, userId).Execute()
if err != nil {
// handle error
}
// resp is User
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| userId | string | User ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
UserIdentify()
Create or update a user with the given ID. Updates lastSeenTime automatically.
userId := // User ID
postUserRequest := *pingram.NewPostUserRequest() // PostUserRequest
resp, _, err := client.UserAPI.UserIdentify(ctx, userId).PostUserRequest(postUserRequest).Execute()
if err != nil {
// handle error
}
// resp is User
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| userId | string | User ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
Request Body Properties
| Name | Type | Description |
|---|---|---|
id | string | |
email | string | |
number | string | |
pushTokens | object[] | |
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[] | |
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 | |
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 := *pingram.NewInAppNotificationUnreadClearRequest() // InAppNotificationUnreadClearRequest
resp, _, err := client.UserAPI.UserMarkInAppNotificationsAsSeen(ctx).InAppNotificationUnreadClearRequest(inAppNotificationUnreadClearRequest).Execute()
if err != nil {
// handle error
}
// resp is SuccessResponse
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 := *pingram.NewInAppNotificationPatchRequest([]string{"TrackingIds_example"}) // InAppNotificationPatchRequest
resp, _, err := client.UserAPI.UserUpdateInAppNotificationStatus(ctx).InAppNotificationPatchRequest(inAppNotificationPatchRequest).Execute()
if err != nil {
// handle error
}
// resp is SuccessResponse
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)
userId := // User ID
envId := "envId_example" // string (optional)
resp, _, err := client.UsersAPI.UsersDeleteUser(ctx, userId).EnvId(envId).Execute()
if err != nil {
// handle error
}
// resp is DeleteUserResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| userId | string | User ID | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
envId | string | Environment ID (required when using JWT auth) |
UsersListUsers()
Get all users for an environment with pagination support
limit := float32(8.14) // float32
nextToken := "nextToken_example" // string
envId := "envId_example" // string (optional)
resp, _, err := client.UsersAPI.UsersListUsers(ctx).Limit(limit).NextToken(nextToken).EnvId(envId).Execute()
if err != nil {
// handle error
}
// resp is GetUsersResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| limit | float32 | Maximum number of users to return (default | |
| nextToken | string | Pagination token for next page | |
| envId | string | Environment ID (required when using JWT auth) |
UsersRemoveUserFromSuppression()
Remove user suppression status for a specific channel
userId := // User ID
channel := // Channel type (EMAIL)
envId := "envId_example" // string (optional)
resp, _, err := client.UsersAPI.UsersRemoveUserFromSuppression(ctx, userId, channel).EnvId(envId).Execute()
if err != nil {
// handle error
}
// resp is UserSuppressionDeleteResponse
Parameters
| Name | Type | Description | Notes |
|---|---|---|---|
| ctx | context.Context | context for authentication, logging, cancellation, deadlines, tracing, etc. | |
| userId | string | User ID | |
| channel | string | Channel type (EMAIL) | |
| Name | Type | Description | Notes |
| ------------- | ------------- | ------------- | ------------- |
envId | string | Environment ID (required when using JWT auth) |