Список блокувань

Отримайте посторінковий список усіх блокувань у вашому робочому просторі Emailit.

GET/suppressions

Параметри запиту

limitinteger

Кількість елементів на сторінці (1-100). За замовчуванням: 10.

pageinteger

Номер сторінки. За замовчуванням: 1.

const response = await fetch('https://api.emailit.com/v2/suppressions?page=1&limit=10', {
method: 'GET',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
}
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/suppressions?page=1&limit=10',
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: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "Помилка cURL #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.get(
'https://api.emailit.com/v2/suppressions',
params={
    'page': 1,
    'limit': 10
},
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/suppressions?page=1&limit=10')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)

func main() {
baseURL := "https://api.emailit.com/v2/suppressions"
params := url.Values{}
params.Add("page", "1")
params.Add("limit", "10")

fullURL := baseURL + "?" + params.Encode()

req, _ := http.NewRequest("GET", fullURL, nil)
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::Value;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .get("https://api.emailit.com/v2/suppressions")
    .query(&[("page", "1"), ("limit", "10")])
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class ListSuppressions {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/suppressions?page=1&limit=10"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .GET()
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class ListSuppressions
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var response = await client.GetAsync(
            "https://api.emailit.com/v2/suppressions?page=1&limit=10");
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X GET "https://api.emailit.com/v2/suppressions?page=1&limit=10" \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json"
{
"data": [
{
  "object": "suppression",
  "id": "sup_47TaFwzJx6mD7NeJYvLjFxVwbgT",
  "email": "bounced@example.com",
  "type": "bounce",
  "reason": "Жорстке відхилення - поштова скринька не існує",
  "timestamp": "2025-12-24T10:30:00.000000Z",
  "keep_until": null
}
],
"next_page_url": "/v2/suppressions?page=2&limit=10",
"previous_page_url": null
}
{
"message": "Не авторизовано"
}

Отримання блокування

Отримати одне блокування за ідентифікатором або адресою електронної пошти.

GET/suppressions/:id

Параметри шляху

idstringRequired

Ідентифікатор блокування (sup_xxx) або адреса електронної пошти. При використанні адреси електронної пошти необхідно URL-кодувати символ @ (наприклад, user%40example.com).

const response = await fetch('https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT', {
method: 'GET',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
}
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT',
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: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "Помилка cURL #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.get(
'https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT"

req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::Value;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .get("https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class GetSuppression {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .GET()
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class GetSuppression
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var response = await client.GetAsync(
            "https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT");
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X GET "https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT" \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json"
{
"object": "suppression",
"id": "sup_47TaFwzJx6mD7NeJYvLjFxVwbgT",
"email": "bounced@example.com",
"type": "bounce",
"reason": "Жорсткий відскок - поштова скринька не існує",
"timestamp": "2025-12-24T10:30:00.000000Z",
"keep_until": null
}
{
"error": "Недійсний ідентифікатор. Має бути ідентифікатор блокування (sup_xxx) або дійсна адреса електронної пошти."
}
{
"error": "Блокування не знайдено"
}

Пошук за адресою електронної пошти

Ви також можете знайти блокування за адресою електронної пошти замість ідентифікатора. При використанні адрес електронної пошти в URL-адресах, адреса повинна бути URL-кодованою (наприклад, bounced%40example.com замість bounced@example.com).

Створення блокування

Додайте email-адресу до списку блокувань, щоб запобігти надсиланню листів на цю адресу.

POST/suppressions

Тіло запиту

emailstringRequired

Email-адреса для блокування. Буде збережена в нижньому регістрі.

typestring

Тип блокування (наприклад, recipient, bounce, complaint, unsubscribe). За замовчуванням: recipient.

reasonstring

Зрозуміла причина блокування.

keep_untilstring

Час закінчення дії у форматі ISO 8601. Встановіть null для постійного блокування.

const response = await fetch('https://api.emailit.com/v2/suppressions', {
method: 'POST',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: 'unsubscribed@example.com',
type: 'unsubscribe',
reason: 'Користувач запросив відписку',
keep_until: null
})
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/suppressions',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'email' => 'unsubscribed@example.com',
'type' => 'unsubscribe',
'reason' => 'Користувач запросив відписку',
'keep_until' => null
]),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "Помилка cURL #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.post(
'https://api.emailit.com/v2/suppressions',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
},
json={
    'email': 'unsubscribed@example.com',
    'type': 'unsubscribe',
    'reason': 'Користувач запросив відписку',
    'keep_until': None
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/suppressions')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'
request.body = {
email: 'unsubscribed@example.com',
type: 'unsubscribe',
reason: 'Користувач запросив відписку',
keep_until: nil
}.to_json

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/suppressions"

data := map[string]interface{}{
    "email": "unsubscribed@example.com",
    "type": "unsubscribe",
    "reason": "Користувач запросив відписку",
    "keep_until": nil,
}

jsonData, _ := json.Marshal(data)

req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::{json, Value};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .post("https://api.emailit.com/v2/suppressions")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .json(&json!({
        "email": "unsubscribed@example.com",
        "type": "unsubscribe",
        "reason": "Користувач запросив відписку",
        "keep_until": null
    }))
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.http.HttpRequest.BodyPublishers;

public class CreateSuppression {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    String jsonBody = """
        {
            "email": "unsubscribed@example.com",
            "type": "unsubscribe",
            "reason": "Користувач запросив відписку",
            "keep_until": null
        }
        """;
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/suppressions"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .POST(BodyPublishers.ofString(jsonBody))
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class CreateSuppression
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var data = new {
            email = "unsubscribed@example.com",
            type = "unsubscribe",
            reason = "Користувач запросив відписку",
            keep_until = (string)null
        };
        var json = JsonConvert.SerializeObject(data);
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        
        var response = await client.PostAsync(
            "https://api.emailit.com/v2/suppressions", content);
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X POST https://api.emailit.com/v2/suppressions \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json" \
-d '{
"email": "unsubscribed@example.com",
"type": "unsubscribe",
"reason": "Користувач запросив відписку",
"keep_until": null
}'
{
"object": "suppression",
"id": "sup_47TaFwzJx6mD7NeJYvLjFxVwbgT",
"email": "unsubscribed@example.com",
"type": "unsubscribe",
"reason": "Користувач запросив відписку",
"timestamp": "2025-12-24T10:30:00.000000Z",
"keep_until": null
}
{
"error": "Неправильний формат email"
}
{
"error": "Відсутнє обов'язкове поле: email"
}
{
"error": "Блокування для цього email та типу вже існує",
"existing": {
"object": "suppression",
"id": "sup_existingOid123456789",
"email": "unsubscribed@example.com",
"type": "unsubscribe",
"reason": "Попередня причина",
"timestamp": "2025-12-20T08:00:00.000000Z",
"keep_until": null
}
}

Тимчасові блокування

Використовуйте keep_until для створення тимчасового блокування, яке автоматично закінчується. Формат такий самий, як у scheduled_at для листів: приймає ISO 8601, Unix timestamp або природну мову на кшталт “завтра о 9 ранку”.

Після закінчення часу keep_until блокування автоматично видаляється, і на цю адресу знову можна надсилати листи.

Оновлення блокування

Оновити існуюче блокування. Параметр :id приймає або ідентифікатор блокування, або email-адресу.

POST/suppressions/:id

Параметри шляху

idstringRequired

Ідентифікатор блокування (sup_xxx) або email-адреса. При використанні email-адреси, закодуйте символ @ в URL.

Тіло запиту (всі параметри необов’язкові)

emailstring

Нова email-адреса для блокування.

typestring

Новий тип блокування.

reasonstring

Нова причина блокування.

keep_untilstring | null

Нова мітка часу закінчення дії (ISO 8601) або null для постійного блокування.

const response = await fetch('https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT', {
method: 'POST',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
},
body: JSON.stringify({
reason: 'Оновлена причина блокування',
keep_until: '2026-01-01T00:00:00.000000Z'
})
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'reason' => 'Оновлена причина блокування',
'keep_until' => '2026-01-01T00:00:00.000000Z'
]),
CURLOPT_HTTPHEADER => [
'Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "Помилка cURL #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.post(
'https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
},
json={
    'reason': 'Оновлена причина блокування',
    'keep_until': '2026-01-01T00:00:00.000000Z'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'
request.body = {
reason: 'Оновлена причина блокування',
keep_until: '2026-01-01T00:00:00.000000Z'
}.to_json

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT"

data := map[string]interface{}{
    "reason": "Оновлена причина блокування",
    "keep_until": "2026-01-01T00:00:00.000000Z",
}

jsonData, _ := json.Marshal(data)

req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::{json, Value};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .post("https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .json(&json!({
        "reason": "Оновлена причина блокування",
        "keep_until": "2026-01-01T00:00:00.000000Z"
    }))
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.http.HttpRequest.BodyPublishers;

public class UpdateSuppression {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    String jsonBody = """
        {
            "reason": "Оновлена причина блокування",
            "keep_until": "2026-01-01T00:00:00.000000Z"
        }
        """;
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .POST(BodyPublishers.ofString(jsonBody))
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

public class UpdateSuppression
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var data = new {
            reason = "Оновлена причина блокування",
            keep_until = "2026-01-01T00:00:00.000000Z"
        };
        var json = JsonConvert.SerializeObject(data);
        var content = new StringContent(json, Encoding.UTF8, "application/json");
        
        var response = await client.PostAsync(
            "https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT", content);
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X POST https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json" \
-d '{
"reason": "Оновлена причина блокування",
"keep_until": "2026-01-01T00:00:00.000000Z"
}'
{
"object": "suppression",
"id": "sup_47TaFwzJx6mD7NeJYvLjFxVwbgT",
"email": "bounced@example.com",
"type": "bounce",
"reason": "Оновлена причина блокування",
"timestamp": "2025-12-24T10:30:00.000000Z",
"keep_until": "2026-01-01T00:00:00.000000Z"
}
{
"error": "Не надано жодного дійсного поля для оновлення. Вкажіть принаймні одне з: email, type, reason, keep_until"
}
{
"error": "Блокування не знайдено"
}
{
"error": "Інше блокування вже існує для цієї комбінації email та типу"
}

Важливі зауваження

  • У тілі запиту має бути вказано принаймні одне поле.
  • Якщо ви зміните email або type на комбінацію, яка вже існує, ви отримаєте помилку конфлікту 409.
  • Ви можете знайти блокування за email-адресою замість ідентифікатора, закодувавши символ @ в URL (наприклад, bounced%40example.com).

Видалення блокування

Видаліть блокування, щоб знову дозволити надсилання листів на цю адресу.

DELETE/suppressions/:id

Параметри шляху

idstringRequired

Ідентифікатор блокування (sup_xxx) або електронна адреса. При використанні електронної адреси необхідно URL-кодувати символ @ (наприклад, user%40example.com).

const response = await fetch('https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT', {
method: 'DELETE',
headers: {
'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type': 'application/json'
}
});

const result = await response.json();
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT',
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: Bearer em_test_51RxCWJ...vS00p61e0qRE',
'Content-Type: application/json'
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "Помилка cURL #:" . $err;
} else {
$result = json_decode($response, true);
print_r($result);
}
import requests

response = requests.delete(
'https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT',
headers={
    'Authorization': 'Bearer em_test_51RxCWJ...vS00p61e0qRE',
    'Content-Type': 'application/json'
}
)

result = response.json()
print(result)
require 'net/http'
require 'json'

uri = URI('https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(uri)
request['Authorization'] = 'Bearer em_test_51RxCWJ...vS00p61e0qRE'
request['Content-Type'] = 'application/json'

response = http.request(request)
result = JSON.parse(response.body)
puts result
package main

import (
"encoding/json"
"fmt"
"net/http"
)

func main() {
url := "https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT"

req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Set("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
use reqwest;
use serde_json::Value;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();

let response = client
    .delete("https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT")
    .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
    .header("Content-Type", "application/json")
    .send()
    .await?;

let result: Value = response.json().await?;
println!("{:?}", result);

Ok(())
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

public class DeleteSuppression {
public static void main(String[] args) throws Exception {
    HttpClient client = HttpClient.newHttpClient();
    
    HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT"))
        .header("Authorization", "Bearer em_test_51RxCWJ...vS00p61e0qRE")
        .header("Content-Type", "application/json")
        .DELETE()
        .build();
    
    HttpResponse<String> response = client.send(request, 
        HttpResponse.BodyHandlers.ofString());
    
    System.out.println(response.body());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class DeleteSuppression
{
public static async Task Main()
{
    using (var client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Authorization", 
            "Bearer em_test_51RxCWJ...vS00p61e0qRE");
        
        var response = await client.DeleteAsync(
            "https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT");
        
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
}
curl -X DELETE "https://api.emailit.com/v2/suppressions/sup_47TaFwzJx6mD7NeJYvLjFxVwbgT" \
-H "Authorization: Bearer em_test_51RxCWJ...vS00p61e0qRE" \
-H "Content-Type: application/json"
{
"object": "suppression",
"id": "sup_47TaFwzJx6mD7NeJYvLjFxVwbgT",
"email": "bounced@example.com",
"deleted": true
}
{
"error": "Неправильний ідентифікатор. Має бути ідентифікатор блокування (sup_xxx) або дійсна електронна адреса."
}
{
"error": "Блокування не знайдено"
}

Видалення за електронною адресою

Ви також можете видалити блокування за електронною адресою замість ідентифікатора. При використанні електронних адрес в URL-адресах, адреса має бути URL-кодована (наприклад, bounced%40example.com замість bounced@example.com).

Локалізовано за допомогою ШІ