What a test would send: providers, senders, seeds, copies and cost (nothing is sent)
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://reputecast.example.com/api/v1/workspaces/acme-newsletter/placement/plan"
payload := strings.NewReader("{ \"content\": { \"id\": \"example\", \"kind\": \"campaign\" }, \"language\": \"example\", \"origin\": \"placement\", \"personalization\": \"fallbacks\", \"providers\": [ \"example\" ], \"seeds\": [ \"example\" ], \"senderId\": \"example\", \"testData\": \"example\", \"through\": \"route\", \"variant\": \"example\", \"version\": 1 }")
req, _ := http.NewRequest("POST", 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/placement/plan';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"content":{"id":"example","kind":"campaign"},"language":"example","origin":"placement","personalization":"fallbacks","providers":["example"],"seeds":["example"],"senderId":"example","testData":"example","through":"route","variant":"example","version":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/placement/plan \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "content": { "id": "example", "kind": "campaign" }, "language": "example", "origin": "placement", "personalization": "fallbacks", "providers": [ "example" ], "seeds": [ "example" ], "senderId": "example", "testData": "example", "through": "route", "variant": "example", "version": 1 }'Permission: placement:run
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
A campaign, template, recurring digest (its next issue) or transactional template id
Data: a transactional template’s test data set, the first one unless testData names one
A conditional-content version’s number; 0 picks the one with the most recipients
Responses
Section titled “Responses”OK
object
object
object
object
object
object
object
object
Us-east-1, mta.acme.io, the Transactional stream
object
object
object
Verified on every provider the test uses
Example
{ "content": { "kind": "campaign" }, "costs": [ { "pricing": "metered" } ], "providers": [ { "pricing": "metered", "status": "healthy" } ], "stream": "broadcast"}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"}