curl --request PATCH \
--url https://api.onesignal.com/apps/{app_id}/subscriptions_by_token/{token_type}/{token} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '{}'import Onesignal from '@onesignal/node-onesignal';
const configuration = Onesignal.createConfiguration({
restApiKey: 'YOUR_REST_API_KEY',
});
const apiInstance = new Onesignal.DefaultApi(configuration);
// string | Your OneSignal App ID in UUID v4 format.
const appId: string = "00000000-0000-0000-0000-000000000000";
// string | The type of token to use when looking up the subscription. See Subscription Types.
const tokenType: string = "Email";
// string | The value of the token to lookup by (e.g., email address, phone number).
const token: string = "user@example.com";
// SubscriptionBody
const subscriptionBody: Onesignal.SubscriptionBody = {
subscription: {
id: "id_example",
type: "iOSPush",
token: "token_example",
enabled: true,
notification_types: 1,
session_time: 1,
session_count: 1,
sdk: "sdk_example",
device_model: "device_model_example",
device_os: "device_os_example",
rooted: true,
test_type: 1,
app_version: "app_version_example",
net_type: 1,
carrier: "carrier_example",
web_auth: "web_auth_example",
web_p256: "web_p256_example",
},
};
try {
const response = await apiInstance.updateSubscriptionByToken(appId, tokenType, token, subscriptionBody);
console.log(response);
} catch (e) {
if (e instanceof Onesignal.ApiException) {
// `e.errorMessages` flattens any error-envelope shape to a `string[]`;
// the raw parsed body remains on `e.body`.
console.error("updateSubscriptionByToken failed: HTTP " + e.code, e.errorMessages);
} else {
throw e;
}
}import onesignal
from onesignal.api import default_api
from onesignal.models import *
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require ORGANIZATION_API_KEY token for authorization, while others require REST_API_KEY.
# We recommend adding both of them in the configuration page so that you will not need to figure it out yourself.
configuration = onesignal.Configuration(
rest_api_key = "YOUR_REST_API_KEY", # App REST API key required for most endpoints
organization_api_key = "YOUR_ORGANIZATION_API_KEY" # Organization key is only required for creating new apps and other top-level endpoints
)
# Enter a context with an instance of the API client
with onesignal.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = default_api.DefaultApi(api_client)
app_id = "00000000-0000-0000-0000-000000000000" # Your OneSignal App ID in UUID v4 format.
token_type = "Email" # The type of token to use when looking up the subscription. See Subscription Types.
token = "user@example.com" # The value of the token to lookup by (e.g., email address, phone number).
subscription_body = SubscriptionBody(
subscription=Subscription(
id="id_example",
type="iOSPush",
token="token_example",
enabled=True,
notification_types=1,
session_time=1,
session_count=1,
sdk="sdk_example",
device_model="device_model_example",
device_os="device_os_example",
rooted=True,
test_type=1,
app_version="app_version_example",
net_type=1,
carrier="carrier_example",
web_auth="web_auth_example",
web_p256="web_p256_example",
),
)
try:
# Update subscription by token
api_response = api_instance.update_subscription_by_token(app_id, token_type, token, subscription_body)
pprint(api_response)
except onesignal.ApiException as e:
print("Exception when calling DefaultApi->update_subscription_by_token: %s\n" % e)
print("Status Code: %s" % e.status)
print("Response Body: %s" % e.body)<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer authorization: rest_api_key
$config = onesignal\client\Configuration::getDefaultConfiguration()
->setRestApiKeyToken('YOUR_REST_API_KEY')
->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');
$apiInstance = new onesignal\client\Api\DefaultApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$app_id = '00000000-0000-0000-0000-000000000000'; // string | Your OneSignal App ID in UUID v4 format.
$token_type = 'Email'; // string | The type of token to use when looking up the subscription. See Subscription Types.
$token = 'user@example.com'; // string | The value of the token to lookup by (e.g., email address, phone number).
$subscription_body = new \onesignal\client\model\SubscriptionBody(); // \onesignal\client\model\SubscriptionBody
try {
$result = $apiInstance->updateSubscriptionByToken($app_id, $token_type, $token, $subscription_body);
print_r($result);
} catch (\onesignal\client\ApiException $e) {
echo 'Exception when calling DefaultApi->updateSubscriptionByToken: ', $e->getMessage(), PHP_EOL;
echo 'Status Code: ', $e->getCode(), PHP_EOL;
// getErrorMessages() flattens any error-envelope shape to a string[];
// the raw body remains on getResponseBody().
echo 'Error Messages: ', implode(', ', $e->getErrorMessages()), PHP_EOL;
echo 'Response Body: ', $e->getResponseBody(), PHP_EOL;
} catch (\Exception $e) {
echo 'Exception when calling DefaultApi->updateSubscriptionByToken: ', $e->getMessage(), PHP_EOL;
}package main
import (
"context"
"fmt"
"os"
"github.com/OneSignal/onesignal-go-api/v5"
)
func main() {
appId := "00000000-0000-0000-0000-000000000000" // string | Your OneSignal App ID in UUID v4 format.
tokenType := "Email" // string | The type of token to use when looking up the subscription. See Subscription Types.
token := "user@example.com" // string | The value of the token to lookup by (e.g., email address, phone number).
subscriptionBody := *onesignal.NewSubscriptionBody() // SubscriptionBody |
configuration := onesignal.NewConfiguration()
apiClient := onesignal.NewAPIClient(configuration)
restAuth := context.WithValue(context.Background(), onesignal.RestApiKey, "YOUR_REST_API_KEY") // App REST API key required for most endpoints
resp, r, err := apiClient.DefaultApi.UpdateSubscriptionByToken(restAuth, appId, tokenType, token).SubscriptionBody(subscriptionBody).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.UpdateSubscriptionByToken``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
if apiErr, ok := err.(*onesignal.GenericOpenAPIError); ok {
// ErrorMessages() flattens any error-envelope shape to a []string;
// the raw body remains on Body().
fmt.Fprintf(os.Stderr, "Error Messages: %v\n", apiErr.ErrorMessages())
fmt.Fprintf(os.Stderr, "Response Body: %s\n", apiErr.Body())
}
}
// response from `UpdateSubscriptionByToken`: map[string]interface{}
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.UpdateSubscriptionByToken`: %v\n", resp)
}require 'onesignal'
# setup authorization
OneSignal.configure do |config|
# Configure Bearer authorization: rest_api_key
config.rest_api_key = 'YOUR_REST_API_KEY'
end
api_instance = OneSignal::DefaultApi.new
app_id = '00000000-0000-0000-0000-000000000000' # String | Your OneSignal App ID in UUID v4 format.
token_type = 'Email' # String | The type of token to use when looking up the subscription. See Subscription Types.
token = 'user@example.com' # String | The value of the token to lookup by (e.g., email address, phone number).
subscription_body = OneSignal::SubscriptionBody.new # SubscriptionBody |
begin
# Update subscription by token
result = api_instance.update_subscription_by_token(app_id, token_type, token, subscription_body)
p result
rescue OneSignal::ApiError => e
puts "Error when calling DefaultApi->update_subscription_by_token: #{e}"
puts "Status Code: #{e.code}"
# `e.error_messages` flattens any error-envelope shape to an Array<String>;
# the raw body remains on `e.response_body`.
puts "Error Messages: #{e.error_messages}"
puts "Response Body: #{e.response_body}"
end// Import classes:
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.onesignal.com");
// Configure HTTP bearer authorization: rest_api_key
HttpBearerAuth rest_api_key = (HttpBearerAuth) defaultClient.getAuthentication("rest_api_key");
rest_api_key.setBearerToken("YOUR_REST_API_KEY");
DefaultApi apiInstance = new DefaultApi(defaultClient);
String appId = "00000000-0000-0000-0000-000000000000"; // String | Your OneSignal App ID in UUID v4 format.
String tokenType = "Email"; // String | The type of token to use when looking up the subscription. See Subscription Types.
String token = "user@example.com"; // String | The value of the token to lookup by (e.g., email address, phone number).
SubscriptionBody subscriptionBody = new SubscriptionBody(); // SubscriptionBody |
try {
Object result = apiInstance.updateSubscriptionByToken(appId, tokenType, token, subscriptionBody);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DefaultApi#updateSubscriptionByToken");
System.err.println("Status code: " + e.getCode());
// getErrorMessages() flattens any error-envelope shape to a List<String>;
// the raw body remains on getResponseBody().
System.err.println("Error messages: " + e.getErrorMessages());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}using System;
using System.Collections.Generic;
using System.Diagnostics;
using OneSignalApi.Api;
using OneSignalApi.Client;
using OneSignalApi.Model;
namespace Example
{
public class UpdateSubscriptionByTokenExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://api.onesignal.com";
// Configure Bearer token for authorization: rest_api_key
config.AccessToken = "YOUR_REST_API_KEY";
var apiInstance = new DefaultApi(config);
var appId = "00000000-0000-0000-0000-000000000000"; // string | Your OneSignal App ID in UUID v4 format.
var tokenType = "Email"; // string | The type of token to use when looking up the subscription. See Subscription Types.
var token = "user@example.com"; // string | The value of the token to lookup by (e.g., email address, phone number).
var subscriptionBody = new SubscriptionBody(); // SubscriptionBody |
try
{
// Update subscription by token
Object result = apiInstance.UpdateSubscriptionByToken(appId, tokenType, token, subscriptionBody);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling DefaultApi.UpdateSubscriptionByToken: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
// e.ErrorMessages flattens any error-envelope shape to an IReadOnlyList<string>;
// the raw body remains on e.ErrorContent.
Debug.Print("Error Messages: " + string.Join(", ", e.ErrorMessages));
Debug.Print("Response Body: " + e.ErrorContent);
Debug.Print(e.StackTrace);
}
}
}
}use onesignal_rust_api::apis::configuration::Configuration;
use onesignal_rust_api::apis::default_api;
use onesignal_rust_api::models;
#[tokio::main]
async fn main() {
let mut configuration = Configuration::new();
configuration.rest_api_key_token = Some("YOUR_REST_API_KEY".to_string());
// Realistic values are pulled from the spec's `example:` fields where present.
let app_id: &str = "00000000-0000-0000-0000-000000000000";
let token_type: &str = "Email";
let token: &str = "user@example.com";
let subscription_body: models::SubscriptionBody = todo!();
match default_api::update_subscription_by_token(&configuration, app_id, token_type, token, subscription_body).await {
Ok(resp) => println!("{:?}", resp),
Err(e @ onesignal_rust_api::apis::Error::ResponseError(_)) => {
// `e.error_messages()` flattens any error-envelope shape to a Vec<String>;
// the raw response remains on the ResponseError variant.
eprintln!("update_subscription_by_token failed: {:?}", e.error_messages());
}
Err(e) => eprintln!("update_subscription_by_token failed: {:?}", e),
}
}{}{
"errors": [
{
"code": "<string>",
"title": "<string>",
"meta": {}
}
]
}{
"errors": [
{
"code": "<string>",
"title": "<string>",
"meta": {}
}
]
}{
"errors": [
{
"code": "<string>",
"title": "<string>",
"meta": {}
}
]
}{
"errors": [
{
"code": "Rate Limit Exceeded",
"title": "API rate limit exceeded"
}
]
}{
"errors": [
"Service temporarily unavailable"
]
}Update Subscription by token
Update properties on an existing Subscription using its token. Commonly used to enable or disable subscription status when managing outside of the OneSignal SDK.
curl --request PATCH \
--url https://api.onesignal.com/apps/{app_id}/subscriptions_by_token/{token_type}/{token} \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '{}'import Onesignal from '@onesignal/node-onesignal';
const configuration = Onesignal.createConfiguration({
restApiKey: 'YOUR_REST_API_KEY',
});
const apiInstance = new Onesignal.DefaultApi(configuration);
// string | Your OneSignal App ID in UUID v4 format.
const appId: string = "00000000-0000-0000-0000-000000000000";
// string | The type of token to use when looking up the subscription. See Subscription Types.
const tokenType: string = "Email";
// string | The value of the token to lookup by (e.g., email address, phone number).
const token: string = "user@example.com";
// SubscriptionBody
const subscriptionBody: Onesignal.SubscriptionBody = {
subscription: {
id: "id_example",
type: "iOSPush",
token: "token_example",
enabled: true,
notification_types: 1,
session_time: 1,
session_count: 1,
sdk: "sdk_example",
device_model: "device_model_example",
device_os: "device_os_example",
rooted: true,
test_type: 1,
app_version: "app_version_example",
net_type: 1,
carrier: "carrier_example",
web_auth: "web_auth_example",
web_p256: "web_p256_example",
},
};
try {
const response = await apiInstance.updateSubscriptionByToken(appId, tokenType, token, subscriptionBody);
console.log(response);
} catch (e) {
if (e instanceof Onesignal.ApiException) {
// `e.errorMessages` flattens any error-envelope shape to a `string[]`;
// the raw parsed body remains on `e.body`.
console.error("updateSubscriptionByToken failed: HTTP " + e.code, e.errorMessages);
} else {
throw e;
}
}import onesignal
from onesignal.api import default_api
from onesignal.models import *
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require ORGANIZATION_API_KEY token for authorization, while others require REST_API_KEY.
# We recommend adding both of them in the configuration page so that you will not need to figure it out yourself.
configuration = onesignal.Configuration(
rest_api_key = "YOUR_REST_API_KEY", # App REST API key required for most endpoints
organization_api_key = "YOUR_ORGANIZATION_API_KEY" # Organization key is only required for creating new apps and other top-level endpoints
)
# Enter a context with an instance of the API client
with onesignal.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = default_api.DefaultApi(api_client)
app_id = "00000000-0000-0000-0000-000000000000" # Your OneSignal App ID in UUID v4 format.
token_type = "Email" # The type of token to use when looking up the subscription. See Subscription Types.
token = "user@example.com" # The value of the token to lookup by (e.g., email address, phone number).
subscription_body = SubscriptionBody(
subscription=Subscription(
id="id_example",
type="iOSPush",
token="token_example",
enabled=True,
notification_types=1,
session_time=1,
session_count=1,
sdk="sdk_example",
device_model="device_model_example",
device_os="device_os_example",
rooted=True,
test_type=1,
app_version="app_version_example",
net_type=1,
carrier="carrier_example",
web_auth="web_auth_example",
web_p256="web_p256_example",
),
)
try:
# Update subscription by token
api_response = api_instance.update_subscription_by_token(app_id, token_type, token, subscription_body)
pprint(api_response)
except onesignal.ApiException as e:
print("Exception when calling DefaultApi->update_subscription_by_token: %s\n" % e)
print("Status Code: %s" % e.status)
print("Response Body: %s" % e.body)<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer authorization: rest_api_key
$config = onesignal\client\Configuration::getDefaultConfiguration()
->setRestApiKeyToken('YOUR_REST_API_KEY')
->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');
$apiInstance = new onesignal\client\Api\DefaultApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$app_id = '00000000-0000-0000-0000-000000000000'; // string | Your OneSignal App ID in UUID v4 format.
$token_type = 'Email'; // string | The type of token to use when looking up the subscription. See Subscription Types.
$token = 'user@example.com'; // string | The value of the token to lookup by (e.g., email address, phone number).
$subscription_body = new \onesignal\client\model\SubscriptionBody(); // \onesignal\client\model\SubscriptionBody
try {
$result = $apiInstance->updateSubscriptionByToken($app_id, $token_type, $token, $subscription_body);
print_r($result);
} catch (\onesignal\client\ApiException $e) {
echo 'Exception when calling DefaultApi->updateSubscriptionByToken: ', $e->getMessage(), PHP_EOL;
echo 'Status Code: ', $e->getCode(), PHP_EOL;
// getErrorMessages() flattens any error-envelope shape to a string[];
// the raw body remains on getResponseBody().
echo 'Error Messages: ', implode(', ', $e->getErrorMessages()), PHP_EOL;
echo 'Response Body: ', $e->getResponseBody(), PHP_EOL;
} catch (\Exception $e) {
echo 'Exception when calling DefaultApi->updateSubscriptionByToken: ', $e->getMessage(), PHP_EOL;
}package main
import (
"context"
"fmt"
"os"
"github.com/OneSignal/onesignal-go-api/v5"
)
func main() {
appId := "00000000-0000-0000-0000-000000000000" // string | Your OneSignal App ID in UUID v4 format.
tokenType := "Email" // string | The type of token to use when looking up the subscription. See Subscription Types.
token := "user@example.com" // string | The value of the token to lookup by (e.g., email address, phone number).
subscriptionBody := *onesignal.NewSubscriptionBody() // SubscriptionBody |
configuration := onesignal.NewConfiguration()
apiClient := onesignal.NewAPIClient(configuration)
restAuth := context.WithValue(context.Background(), onesignal.RestApiKey, "YOUR_REST_API_KEY") // App REST API key required for most endpoints
resp, r, err := apiClient.DefaultApi.UpdateSubscriptionByToken(restAuth, appId, tokenType, token).SubscriptionBody(subscriptionBody).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.UpdateSubscriptionByToken``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
if apiErr, ok := err.(*onesignal.GenericOpenAPIError); ok {
// ErrorMessages() flattens any error-envelope shape to a []string;
// the raw body remains on Body().
fmt.Fprintf(os.Stderr, "Error Messages: %v\n", apiErr.ErrorMessages())
fmt.Fprintf(os.Stderr, "Response Body: %s\n", apiErr.Body())
}
}
// response from `UpdateSubscriptionByToken`: map[string]interface{}
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.UpdateSubscriptionByToken`: %v\n", resp)
}require 'onesignal'
# setup authorization
OneSignal.configure do |config|
# Configure Bearer authorization: rest_api_key
config.rest_api_key = 'YOUR_REST_API_KEY'
end
api_instance = OneSignal::DefaultApi.new
app_id = '00000000-0000-0000-0000-000000000000' # String | Your OneSignal App ID in UUID v4 format.
token_type = 'Email' # String | The type of token to use when looking up the subscription. See Subscription Types.
token = 'user@example.com' # String | The value of the token to lookup by (e.g., email address, phone number).
subscription_body = OneSignal::SubscriptionBody.new # SubscriptionBody |
begin
# Update subscription by token
result = api_instance.update_subscription_by_token(app_id, token_type, token, subscription_body)
p result
rescue OneSignal::ApiError => e
puts "Error when calling DefaultApi->update_subscription_by_token: #{e}"
puts "Status Code: #{e.code}"
# `e.error_messages` flattens any error-envelope shape to an Array<String>;
# the raw body remains on `e.response_body`.
puts "Error Messages: #{e.error_messages}"
puts "Response Body: #{e.response_body}"
end// Import classes:
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.onesignal.com");
// Configure HTTP bearer authorization: rest_api_key
HttpBearerAuth rest_api_key = (HttpBearerAuth) defaultClient.getAuthentication("rest_api_key");
rest_api_key.setBearerToken("YOUR_REST_API_KEY");
DefaultApi apiInstance = new DefaultApi(defaultClient);
String appId = "00000000-0000-0000-0000-000000000000"; // String | Your OneSignal App ID in UUID v4 format.
String tokenType = "Email"; // String | The type of token to use when looking up the subscription. See Subscription Types.
String token = "user@example.com"; // String | The value of the token to lookup by (e.g., email address, phone number).
SubscriptionBody subscriptionBody = new SubscriptionBody(); // SubscriptionBody |
try {
Object result = apiInstance.updateSubscriptionByToken(appId, tokenType, token, subscriptionBody);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DefaultApi#updateSubscriptionByToken");
System.err.println("Status code: " + e.getCode());
// getErrorMessages() flattens any error-envelope shape to a List<String>;
// the raw body remains on getResponseBody().
System.err.println("Error messages: " + e.getErrorMessages());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}using System;
using System.Collections.Generic;
using System.Diagnostics;
using OneSignalApi.Api;
using OneSignalApi.Client;
using OneSignalApi.Model;
namespace Example
{
public class UpdateSubscriptionByTokenExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://api.onesignal.com";
// Configure Bearer token for authorization: rest_api_key
config.AccessToken = "YOUR_REST_API_KEY";
var apiInstance = new DefaultApi(config);
var appId = "00000000-0000-0000-0000-000000000000"; // string | Your OneSignal App ID in UUID v4 format.
var tokenType = "Email"; // string | The type of token to use when looking up the subscription. See Subscription Types.
var token = "user@example.com"; // string | The value of the token to lookup by (e.g., email address, phone number).
var subscriptionBody = new SubscriptionBody(); // SubscriptionBody |
try
{
// Update subscription by token
Object result = apiInstance.UpdateSubscriptionByToken(appId, tokenType, token, subscriptionBody);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling DefaultApi.UpdateSubscriptionByToken: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
// e.ErrorMessages flattens any error-envelope shape to an IReadOnlyList<string>;
// the raw body remains on e.ErrorContent.
Debug.Print("Error Messages: " + string.Join(", ", e.ErrorMessages));
Debug.Print("Response Body: " + e.ErrorContent);
Debug.Print(e.StackTrace);
}
}
}
}use onesignal_rust_api::apis::configuration::Configuration;
use onesignal_rust_api::apis::default_api;
use onesignal_rust_api::models;
#[tokio::main]
async fn main() {
let mut configuration = Configuration::new();
configuration.rest_api_key_token = Some("YOUR_REST_API_KEY".to_string());
// Realistic values are pulled from the spec's `example:` fields where present.
let app_id: &str = "00000000-0000-0000-0000-000000000000";
let token_type: &str = "Email";
let token: &str = "user@example.com";
let subscription_body: models::SubscriptionBody = todo!();
match default_api::update_subscription_by_token(&configuration, app_id, token_type, token, subscription_body).await {
Ok(resp) => println!("{:?}", resp),
Err(e @ onesignal_rust_api::apis::Error::ResponseError(_)) => {
// `e.error_messages()` flattens any error-envelope shape to a Vec<String>;
// the raw response remains on the ResponseError variant.
eprintln!("update_subscription_by_token failed: {:?}", e.error_messages());
}
Err(e) => eprintln!("update_subscription_by_token failed: {:?}", e),
}
}{}{
"errors": [
{
"code": "<string>",
"title": "<string>",
"meta": {}
}
]
}{
"errors": [
{
"code": "<string>",
"title": "<string>",
"meta": {}
}
]
}{
"errors": [
{
"code": "<string>",
"title": "<string>",
"meta": {}
}
]
}{
"errors": [
{
"code": "Rate Limit Exceeded",
"title": "API rate limit exceeded"
}
]
}{
"errors": [
"Service temporarily unavailable"
]
}Overview
Use this API to update an existing Subscription’s properties. This API can be useful if:- You only know the
tokenandtoken_typeand want to update metadata or status flags directly. - You are managing Subscription status outside of the OneSignal SDK. Like with a custom preference page or unsubscribe page.
How to use this API
To update a Subscription, you must know thetoken_type and the token.
The token_type is the Subscription’s type (e.g., Email, SMS, iOSPush, AndroidPush, etc.).
The token is the push token, email address, or phone number associated with the Subscription.
Ensure the token is valid and correctly formatted for the chosen token_type.
- Email format: Should be a valid email address that you confirmed can receive emails.
- SMS format: Phone number must be in E.164 format.
- iOSPush APNS token format: 64 characters, hexadecimal characters only (0-9,a-f).
- AndroidPush FCM token format: Typically 163 characters, alphanumeric characters, may contain hyphens, colons and underscore.
token_type and token of a Subscription with this API. If the token_type is incorrect:- Use Delete Subscription to remove the incorrect entry.
- Use Create Subscription by alias to recreate the subscription with the correct type.
token and token_type, an Http 400 error is returned with a list of subscription IDs that match the criteria.Headers
Your App API key with prefix Key. See Keys & IDs.
Path Parameters
Your OneSignal App ID in UUID v4 format. See Keys & IDs.
The subscription channel type. Must match the format of the token.
Email, SMS, iOSPush, AndroidPush, HuaweiPush, FireOSPush, WindowsPush, macOSPush, ChromeExtensionPush, ChromePush, FirefoxPush, SafariPush The push token, email address, or phone number associated with the subscription. Ensure the token is valid and correctly formatted for the chosen subscription type. Email format: Should be a valid email address that you confirmed can receive emails. SMS format: Phone number must be in E.164 format. iOSPush APNS token format: 64 characters, hexadecimal characters only (0-9,a-f). AndroidPush FCM token format: Typically 163 characters, alphanumeric characters, may contain hyphens, colons and underscore.
Body
The subscription's properties.
Show child attributes
Show child attributes
Response
202
The Subscription update request has been accepted successfully. This process is asynchronous and may take a few seconds to complete.
Was this page helpful?