Update transactional campaign
Use this API method to create an existing transactional campaign.
Only plain and html editors are supported via API. For builder campaigns, use the interface.
Endpoint
Section titled “Endpoint”HTTP method: PATCH
https://api.sender.net/v2/transactional/{id}
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
id | string required | ID of the transactional campaign to update. |
title | string | Optional updated title for the campaign. |
subject | string | Optional updated subject line for the campaign. |
from | string | Optional updated sender name. |
reply_to | string | Optional updated reply-to email. Must belong to a valid verified domain. |
editor | string | The value must be one of “plain”, “html”, or “builder”. |
last_action | string | The current progress step or status of the campaign editor. |
preheader | string | Optional preview text displayed in inboxes. |
Request Examples
Section titled “Request Examples”const url = new URL("https://api.sender.net/v2/transactional/{id}");
let headers = { "Authorization": "Bearer [your-token]", "Content-Type": "application/json", "Accept": "application/json",};
let bodyContent = { "title": "Transactional campaign test title change", "subject": "Transactional campaign test subject change", "from": "Sender support", "editor": "plain", "preheader": "Preview changed text of my transactional campaign"};
fetch(url, { method: "PATCH", headers, body: JSON.stringify(bodyContent)}).then(response => response.json()).then(data => console.log(data)).catch(error => console.error('Error:', error));$client = new \GuzzleHttp\Client();
$json = [ "title" => "Transactional campaign test title change", "subject" => "Transactional campaign test subject change", "from" => "Sender support", "editor" => "plain", "preheader" => "Preview changed text of my transactional campaign"];
$response = $client->patch( 'https://api.sender.net/v2/transactional/{id}', [ 'headers' => [ 'Authorization' => 'Bearer [your-token]', 'Content-Type' => 'application/json', 'Accept' => 'application/json', ], 'json' => $json ]);
$body = $response->getBody()->getContents();$data = json_decode($body, true);print_r($data);import requestsimport json
url = "https://api.sender.net/v2/transactional/{id}"
headers = { "Authorization": "Bearer [your-token]", "Content-Type": "application/json", "Accept": "application/json",}
payload = { "title": "Transactional campaign test title change", "subject": "Transactional campaign test subject change", "from": "Sender support", "editor": "plain", "preheader": "Preview changed text of my transactional campaign"}
response = requests.request('PATCH', url, headers=headers, json=payload)
print(response.json())curl -X PATCH \"https://api.sender.net/v2/transactional/{id}" \-H "Authorization: Bearer [your-token]" \-H "Content-Type: application/json" \-H "Accept: application/json" \-d '{"title":"Transactional campaign test title change","subject":"Transactional campaign test subject change","from":"Sender support","reply_to":"[email protected]","editor":"plain","preheader":"Preview changed text of my transactional campaign"}'Response
Section titled “Response”{ "data": { "id": "ep2W4y", "user_id": "b2zzjb", "account_id": "boEyke", "title": "Transactional campaign test title change", "subject": "Transactional campaign test subject change", "from": "Sender support", "domain_id": "bkRz2N", "created": "2025-07-24 21:09:28", "modified": "2025-07-24 21:33:30", "type": "API", "last_action": "step1", "editor": "plain", "html": { "id": "dBKJRx", "thumbnail_url": "https://cdn.sender.net/thumbnails/boEyke/html/dBKJRx.webp?v=1753369768", "has_preview": false, "has_snapshots": false, "styles": null }, "purchaseCount": 0 }}