> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://mailchimp.com/developer/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://mailchimp.com/developer/_mcp/server.

# Add email to rejection blacklist

POST https://mandrillapp.com/api/1.4/rejects/add
Content-Type: application/json

Adds an email to your email rejection denylist. Addresses that you add manually will never expire and there is no reputation penalty for removing them from your denylist. Attempting to denylist an address that has been whitelisted will have no effect.

Reference: https://mailchimp.com/developer/transactional/api/rejects/add

## Request

### Body (application/json)

This endpoint expects a RejectsAddRequest.

- `key` (string, required) — A valid Mandrill API key
- `email` (string, required) — An email address to block
- `comment` (string, optional) — An optional comment describing the rejection
- `subaccount` (string, optional) — An optional unique identifier for the subaccount to limit the blacklist entry

## Response

### 200

Success

- `email` (string, required) — The email address you provided
- `added` (boolean, required) — Whether the operation succeeded

## Errors

### 401 Unauthorized Error

Invalid or missing API key.

- `status` (string, required) — Status of the response, typically "error"
- `code` (enum, required) — Numeric error code
  - Allowed values: `401`
- `name` (enum, required) — Machine-friendly error name
  - Allowed values: `Invalid_Key`
- `message` (string, required) — Human-readable error message

### 404 Not Found Error

Unknown subaccount

- `status` (string, required) — Status of the response, typically "error"
- `code` (integer, required) — Numeric error code
- `name` (string, required) — Machine-friendly error name
- `message` (string, required) — Human-readable error message

### 422 Unprocessable Entity Error

One or more request parameters failed validation.

- `status` (string, required) — Status of the response, typically "error"
- `code` (integer, required) — Numeric error code
- `name` (enum, required) — Machine-friendly error name
  - Allowed values: `ValidationError`
- `message` (string, required) — Human-readable error message

### 500 Internal Server Error

An unexpected internal server error occurred.

- `status` (string, required) — Status of the response, typically "error"
- `code` (integer, required) — Numeric error code
- `name` (string, required) — Machine-friendly error name
- `message` (string, required) — Human-readable error message

## Examples

**Request**

```json
{
  "key": "ONzNrsmbtNXoIKyfPmjnig",
  "email": "user@example.com",
  "comment": "Manually blocked due to spam complaints",
  "subaccount": "cust-123"
}
```

**Response**

```json
{
  "email": "user@example.com",
  "added": true
}
```

**SDK Code**

```python
import requests

url = "https://mandrillapp.com/api/1.4/rejects/add"

payload = {
    "key": "ONzNrsmbtNXoIKyfPmjnig",
    "email": "user@example.com",
    "comment": "Manually blocked due to spam complaints",
    "subaccount": "cust-123"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://mandrillapp.com/api/1.4/rejects/add';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"key":"ONzNrsmbtNXoIKyfPmjnig","email":"user@example.com","comment":"Manually blocked due to spam complaints","subaccount":"cust-123"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://mandrillapp.com/api/1.4/rejects/add"

	payload := strings.NewReader("{\n  \"key\": \"ONzNrsmbtNXoIKyfPmjnig\",\n  \"email\": \"user@example.com\",\n  \"comment\": \"Manually blocked due to spam complaints\",\n  \"subaccount\": \"cust-123\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://mandrillapp.com/api/1.4/rejects/add")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"key\": \"ONzNrsmbtNXoIKyfPmjnig\",\n  \"email\": \"user@example.com\",\n  \"comment\": \"Manually blocked due to spam complaints\",\n  \"subaccount\": \"cust-123\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://mandrillapp.com/api/1.4/rejects/add")
  .header("Content-Type", "application/json")
  .body("{\n  \"key\": \"ONzNrsmbtNXoIKyfPmjnig\",\n  \"email\": \"user@example.com\",\n  \"comment\": \"Manually blocked due to spam complaints\",\n  \"subaccount\": \"cust-123\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://mandrillapp.com/api/1.4/rejects/add', [
  'body' => '{
  "key": "ONzNrsmbtNXoIKyfPmjnig",
  "email": "user@example.com",
  "comment": "Manually blocked due to spam complaints",
  "subaccount": "cust-123"
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://mandrillapp.com/api/1.4/rejects/add");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"key\": \"ONzNrsmbtNXoIKyfPmjnig\",\n  \"email\": \"user@example.com\",\n  \"comment\": \"Manually blocked due to spam complaints\",\n  \"subaccount\": \"cust-123\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [
  "key": "ONzNrsmbtNXoIKyfPmjnig",
  "email": "user@example.com",
  "comment": "Manually blocked due to spam complaints",
  "subaccount": "cust-123"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://mandrillapp.com/api/1.4/rejects/add")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```