Rename a campaign or change its sender, reply-to, audience or content settings
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
payload := strings.NewReader("{ \"audience\": { \"excludeLists\": [ \"example\" ], \"excludeSegments\": [ \"example\" ], \"lists\": [ \"example\" ], \"paid\": \"paid\", \"paidTier\": \"example\", \"segments\": [ \"example\" ] }, \"name\": \"example\", \"replyTo\": \"example\", \"senderId\": \"example\", \"settings\": { \"minify\": true } }")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>") 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))
}const url = 'https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"audience":{"excludeLists":["example"],"excludeSegments":["example"],"lists":["example"],"paid":"paid","paidTier":"example","segments":["example"]},"name":"example","replyTo":"example","senderId":"example","settings":{"minify":true}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "audience": { "excludeLists": [ "example" ], "excludeSegments": [ "example" ], "lists": [ "example" ], "paid": "paid", "paidTier": "example", "segments": [ "example" ] }, "name": "example", "replyTo": "example", "senderId": "example", "settings": { "minify": true } }'Permission: campaigns:edit
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Workspace slug
Workspace slug
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
Paid: paid members only; free: free subscribers only; empty: everyone on the lists
With paid: the lowest tier (the tier and above); empty for any paid tier
A sender id, or empty to clear
object
Responses
Section titled “Responses”OK
object
object
Share of the audience in the test
object
Variant A is the campaign itself
object
Members who hold campaigns:edit (when the caller can’t edit)
Members who hold campaigns:send
object
object
object
object
object
object
Example
{ "abTest": { "kind": "subject", "metric": "human_opens", "variants": [ { "key": "A" } ] }, "audience": { "paid": "paid" }, "digestRole": "template", "editorMode": "visual", "readiness": { "verdict": "ready" }, "route": { "shares": [ { "adapter": "ses", "provider": "Amazon SES", "short": "SES" } ], "source": "campaign" }, "status": "draft"}default
Section titled “default”Error
object
Stable error code, e.g. permission_denied
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
Members who hold the missing permission
A URI reference that identifies the specific occurrence of the problem.
object
The missing permission key
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
Example
{ "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}