Submit campaign appeal for manual review
Submits an appeal for rejected native campaigns in TELNYX_FAILED or MNO_REJECTED status. The appeal is recorded for manual compliance team review and the campaign status is reset to TCR_ACCEPTED. Note: Appeal forwarding is handled manually to allow proper review before incurring upstream charges.
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const response = await client.messaging10dlc.campaign.submitAppeal(
'5eb13888-32b7-4cab-95e6-d834dde21d64',
{
appeal_reason:
'The website has been updated to include the required privacy policy and terms of service.',
},
);
console.log(response.appealed_at);import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
response = client.messaging_10dlc.campaign.submit_appeal(
campaign_id="5eb13888-32b7-4cab-95e6-d834dde21d64",
appeal_reason="The website has been updated to include the required privacy policy and terms of service.",
)
print(response.appealed_at)package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.Messaging10dlc.Campaign.SubmitAppeal(
context.TODO(),
"5eb13888-32b7-4cab-95e6-d834dde21d64",
telnyx.Messaging10dlcCampaignSubmitAppealParams{
AppealReason: "The website has been updated to include the required privacy policy and terms of service.",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.AppealedAt)
}package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.messaging10dlc.campaign.CampaignSubmitAppealParams;
import com.telnyx.sdk.models.messaging10dlc.campaign.CampaignSubmitAppealResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
CampaignSubmitAppealParams params = CampaignSubmitAppealParams.builder()
.campaignId("5eb13888-32b7-4cab-95e6-d834dde21d64")
.appealReason("The website has been updated to include the required privacy policy and terms of service.")
.build();
CampaignSubmitAppealResponse response = client.messaging10dlc().campaign().submitAppeal(params);
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
response = telnyx.messaging_10dlc.campaign.submit_appeal(
"5eb13888-32b7-4cab-95e6-d834dde21d64",
appeal_reason: "The website has been updated to include the required privacy policy and terms of service."
)
puts(response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$response = $client->messaging10dlc->campaign->submitAppeal(
'5eb13888-32b7-4cab-95e6-d834dde21d64',
appealReason: 'The website has been updated to include the required privacy policy and terms of service.',
);
var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx messaging-10dlc:campaign submit-appeal \
--api-key 'My API Key' \
--campaign-id 5eb13888-32b7-4cab-95e6-d834dde21d64 \
--appeal-reason 'The website has been updated to include the required privacy policy and terms of service.'curl --request POST \
--url https://api.telnyx.com/v2/10dlc/campaign/{campaignId}/appeal \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"appeal_reason": "The website has been updated to include the required privacy policy and terms of service."
}
'{
"appealed_at": "2025-08-06T15:30:45.123456+00:00"
}{
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>"
}
}{
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"errors": [
{
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>"
}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The Telnyx campaign identifier
"5eb13888-32b7-4cab-95e6-d834dde21d64"
Body
Appeal request payload
Detailed explanation of why the campaign should be reconsidered and what changes have been made to address the rejection reason.
"The website has been updated to include the required privacy policy and terms of service."
Response
Appeal recorded successfully. Campaign status updated to TCR_ACCEPTED for manual compliance review.
Timestamp when the appeal was submitted
Was this page helpful?
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
const response = await client.messaging10dlc.campaign.submitAppeal(
'5eb13888-32b7-4cab-95e6-d834dde21d64',
{
appeal_reason:
'The website has been updated to include the required privacy policy and terms of service.',
},
);
console.log(response.appealed_at);import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
response = client.messaging_10dlc.campaign.submit_appeal(
campaign_id="5eb13888-32b7-4cab-95e6-d834dde21d64",
appeal_reason="The website has been updated to include the required privacy policy and terms of service.",
)
print(response.appealed_at)package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.Messaging10dlc.Campaign.SubmitAppeal(
context.TODO(),
"5eb13888-32b7-4cab-95e6-d834dde21d64",
telnyx.Messaging10dlcCampaignSubmitAppealParams{
AppealReason: "The website has been updated to include the required privacy policy and terms of service.",
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.AppealedAt)
}package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
import com.telnyx.sdk.models.messaging10dlc.campaign.CampaignSubmitAppealParams;
import com.telnyx.sdk.models.messaging10dlc.campaign.CampaignSubmitAppealResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
CampaignSubmitAppealParams params = CampaignSubmitAppealParams.builder()
.campaignId("5eb13888-32b7-4cab-95e6-d834dde21d64")
.appealReason("The website has been updated to include the required privacy policy and terms of service.")
.build();
CampaignSubmitAppealResponse response = client.messaging10dlc().campaign().submitAppeal(params);
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
response = telnyx.messaging_10dlc.campaign.submit_appeal(
"5eb13888-32b7-4cab-95e6-d834dde21d64",
appeal_reason: "The website has been updated to include the required privacy policy and terms of service."
)
puts(response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$response = $client->messaging10dlc->campaign->submitAppeal(
'5eb13888-32b7-4cab-95e6-d834dde21d64',
appealReason: 'The website has been updated to include the required privacy policy and terms of service.',
);
var_dump($response);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx messaging-10dlc:campaign submit-appeal \
--api-key 'My API Key' \
--campaign-id 5eb13888-32b7-4cab-95e6-d834dde21d64 \
--appeal-reason 'The website has been updated to include the required privacy policy and terms of service.'curl --request POST \
--url https://api.telnyx.com/v2/10dlc/campaign/{campaignId}/appeal \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"appeal_reason": "The website has been updated to include the required privacy policy and terms of service."
}
'{
"appealed_at": "2025-08-06T15:30:45.123456+00:00"
}{
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>"
}
}{
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"errors": [
{
"code": "<string>",
"title": "<string>",
"detail": "<string>",
"source": {
"pointer": "<string>",
"parameter": "<string>"
}
}
]
}