cURL
curl "https://app.tatango.com/api/v2/lists/<ID>/subscribers/<SUBSCRIBER_ID>" -X DELETE \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-u emailaddress@mydomain.com:my_api_key \
-H "Host: example.org" \
-H "Cookie: "require 'net/http'
require 'uri'
uri = URI.parse('https://app.tatango.com/api/v2/lists/<ID>/subscribers/<SUBSCRIBER_ID>')
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Delete.new(uri.request_url)
request.basic_auth("emailaddress@mydomain.com", "my_api_key")
response = http.request(request)var request = new XMLHttpRequest();
request.open('DELETE', 'https://app.tatango.com/api/v2/lists/<ID>/subscribers/<SUBSCRIBER_ID>', false);
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Basic ' + btoa('emailaddress@mydomain.com:my_api_key'));
request.send(null);import requests
url = "https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}")
.header("Authorization", "Basic <encoded-value>")
.asString();{
"status": "Subscriber unsubscribed",
"subscriber": {
"phone_number": "2065551111",
"cleaned_at": null,
"subscribed_at": "2025-06-18T15:36:07Z",
"opted_out_at": "2025-06-18T18:29:16Z",
"opt_in_method": "keyword",
"keyword_name": "JOIN",
"carrier": 383,
"carrier_name": "Verizon Wireless",
"global_carrier_id": "12345",
"global_carrier_name": "Verizon",
"total_messages_received": 15
}
}Subscribers
Unsubscribing a Subscriber
This endpoint unsubscribes a subscriber.
DELETE
/
api
/
v2
/
lists
/
{ID}
/
subscribers
/
{SUBSCRIBER_ID}
cURL
curl "https://app.tatango.com/api/v2/lists/<ID>/subscribers/<SUBSCRIBER_ID>" -X DELETE \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-u emailaddress@mydomain.com:my_api_key \
-H "Host: example.org" \
-H "Cookie: "require 'net/http'
require 'uri'
uri = URI.parse('https://app.tatango.com/api/v2/lists/<ID>/subscribers/<SUBSCRIBER_ID>')
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Delete.new(uri.request_url)
request.basic_auth("emailaddress@mydomain.com", "my_api_key")
response = http.request(request)var request = new XMLHttpRequest();
request.open('DELETE', 'https://app.tatango.com/api/v2/lists/<ID>/subscribers/<SUBSCRIBER_ID>', false);
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Authorization', 'Basic ' + btoa('emailaddress@mydomain.com:my_api_key'));
request.send(null);import requests
url = "https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}")
.header("Authorization", "Basic <encoded-value>")
.asString();{
"status": "Subscriber unsubscribed",
"subscriber": {
"phone_number": "2065551111",
"cleaned_at": null,
"subscribed_at": "2025-06-18T15:36:07Z",
"opted_out_at": "2025-06-18T18:29:16Z",
"opt_in_method": "keyword",
"keyword_name": "JOIN",
"carrier": 383,
"carrier_name": "Verizon Wireless",
"global_carrier_id": "12345",
"global_carrier_name": "Verizon",
"total_messages_received": 15
}
}This endpoint removes a subscriber from a list by unsubscribing them. The subscriber will no longer receive messages from this specific list.
Request URL
DELETE https://app.tatango.com/api/v2/lists/{ID}/subscribers/{SUBSCRIBER_ID}
Authorizations
The momoGood Messaging API v2 authenticates requests by validating an API key passed via HTTP Basic Authentication. Use your login email as the username and your API key as the password.
Path Parameters
ID of the list
ID of the subscriber (phone number)
⌘I