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

# Send an email campaign to your test list

POST https://api.brevo.com/v3/emailCampaigns/{campaignId}/sendTest
Content-Type: application/json

Send a test version of an email campaign to specified email addresses or your entire test list. If the emailTo array is left empty, the test mail will be sent to all addresses in your test list. You can send a maximum of 50 test emails per day.

Reference: https://developers.brevo.com/reference/send-test-email

## Authentication

- `api-key` header (required) — The API key should be passed in the request headers as `api-key` for authentication.

## Request

### Path parameters

- `campaignId` (long, required) — Id of the campaign

### Body (application/json)

This endpoint expects an object.

- `emailTo` (list of string, optional) — List of the email addresses of the recipients whom you wish to send the test mail. _If left empty, the test mail will be sent to your entire test list. You can not send more than 50 test emails per day_.

## Response

### 204

Test email has been sent successfully to all recipients

## Errors

### 400 Bad Request Error

Test email could not be sent to the following email addresses

- `code` (string, required) — Response code
- `message` (string, required) — Response message
- `blackListedEmails` (list of string, optional)
- `unexistingEmails` (list of string, optional)
- `withoutListEmails` (list of string, optional)

### 404 Not Found Error

Campaign ID not found

- `code` (string, required) — Response code
- `message` (string, required) — Response message
- `blackListedEmails` (list of string, optional)
- `unexistingEmails` (list of string, optional)
- `withoutListEmails` (list of string, optional)

## Examples

**Request**

```json
{}
```

**SDK Code**

```typescript
import { BrevoClient } from "@getbrevo/brevo";

async function main() {
    const client = new BrevoClient({
        apiKey: "YOUR_API_KEY_HERE",
    });
    await client.emailCampaigns.sendTestEmail({
        campaignId: 1,
        body: {},
    });
}
main();

```

```python
from brevo import Brevo

client = Brevo(
    api_key="YOUR_API_KEY_HERE",
)

client.email_campaigns.send_test_email(
    campaign_id=1,
)

```

```php
<?php

namespace Example;

use Brevo\Brevo;
use Brevo\EmailCampaigns\Requests\SendTestEmailRequest;
use Brevo\Types\SendTestEmail;

$client = new Brevo(
    apiKey: 'YOUR_API_KEY_HERE',
);
$client->emailCampaigns->sendTestEmail(
    1,
    new SendTestEmailRequest([
        'body' => new SendTestEmail([]),
    ]),
);

```

```go
package main

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

func main() {

	url := "https://api.brevo.com/v3/emailCampaigns/1/sendTest"

	payload := strings.NewReader("{}")

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

	req.Header.Add("api-key", "<apiKey>")
	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://api.brevo.com/v3/emailCampaigns/1/sendTest")

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

request = Net::HTTP::Post.new(url)
request["api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{}"

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://api.brevo.com/v3/emailCampaigns/1/sendTest")
  .header("api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.brevo.com/v3/emailCampaigns/1/sendTest");
var request = new RestRequest(Method.POST);
request.AddHeader("api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.brevo.com/v3/emailCampaigns/1/sendTest")! 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()
```