Get email reputation statistics
curl --request GET \
--url https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics \
--header 'Authorization: <authorization>'const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics")
.header("Authorization", "<authorization>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<authorization>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
false{
"last_24_hours": {
"bounce_rate": 0.02,
"complaint_rate": 0.001
},
"last_7_days": {
"bounce_rate": 0.015,
"complaint_rate": 0.0008
},
"last_30_days": {
"bounce_rate": 0.012,
"complaint_rate": 0.0005
}
}{
"errors": [
"Invalid app_id format"
]
}{
"errors": [
"App not found"
]
}{
"errors": [
"API rate limit exceeded"
]
}{
"errors": [
"<string>"
],
"success": true,
"reference": [
"<string>"
]
}Email reputation statistics
Get email bounce and spam complaint rates received for the app over the last 24 hours, 7 days, and 30 days.
GET
/
apps
/
{app_id}
/
email_analytics
/
delivery_metrics
Get email reputation statistics
curl --request GET \
--url https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics \
--header 'Authorization: <authorization>'const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.get("https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics")
.header("Authorization", "<authorization>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.onesignal.com/apps/{app_id}/email_analytics/delivery_metrics");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "<authorization>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
false{
"last_24_hours": {
"bounce_rate": 0.02,
"complaint_rate": 0.001
},
"last_7_days": {
"bounce_rate": 0.015,
"complaint_rate": 0.0008
},
"last_30_days": {
"bounce_rate": 0.012,
"complaint_rate": 0.0005
}
}{
"errors": [
"Invalid app_id format"
]
}{
"errors": [
"App not found"
]
}{
"errors": [
"API rate limit exceeded"
]
}{
"errors": [
"<string>"
],
"success": true,
"reference": [
"<string>"
]
}Overview
For customers using OneSignal Email. The Email reputation API allows you to check email bounce and spam complaint rates for the app over the last 24 hours, 7 days, and 30 days. Monitor your rates to preserve your sending reputation and ensure you remain within the limits of OneSignal’s Acceptable Use Policy (AUP).How to Use this API
Rates are expressed as fractions of successfully delivered emails (for example,0.02 means 2%).
A window reports 0 for both rates when the app has not successfully delivered any email in that period.
Headers
Your App API key with prefix Key. See Keys & IDs.
Path Parameters
Your OneSignal App ID in UUID v4 format. See Keys & IDs.
Was this page helpful?