Skip to content

What a test would send: providers, senders, seeds, copies and cost (nothing is sent)

POST
/api/v1/workspaces/{workspace}/placement/plan
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

workspace
required

Workspace slug

string
/^[a-z0-9][a-z0-9-]{1,62}$/

Workspace slug

Media typeapplication/json
object
content
required
object
id
required

A campaign, template, recurring digest (its next issue) or transactional template id

string
kind
required
string
Allowed values: campaign template digest transactional
language
string
<= 16 characters
origin
string
Allowed values: placement review composer warmup template ""
personalization

Data: a transactional template’s test data set, the first one unless testData names one

string
Allowed values: fallbacks data ""
providers
Array<string>
<= 6 items
seeds
Array<string>
<= 100 items
senderId
string
testData
string
<= 120 characters
through
required
string
Allowed values: route provider compare
variant
string
<= 8 characters
version

A conditional-content version’s number; 0 picks the one with the most recipients

integer format: int64

OK

Media typeapplication/json
object
alone
string
canRun
required
boolean
canStart
required
boolean
chosen
required
Array<string>
compareProblem
string
content
required
object
audience
string
category
string
conditional
required
Array<object>
object
number
required
integer format: int64
recipients
required
integer format: int64
shows
required
string
conditionalVersion
integer format: int64
fallbackGreeting
string
id
required
string
key
string
kind
required
string
Allowed values: campaign template digest transactional
languages
required
Array<object>
object
code
required
string
source
required
boolean
name
required
string
recipients
integer format: int64
scheduledAt
string format: date-time
sensitive
required
Array<string>
sentAt
string format: date-time
status
string
testData
required
Array<string>
testValues
required
Array<object>
object
name
required
string
value
required
string
variants
required
Array<object>
object
key
required
string
subject
required
string
version
integer format: int64
copies
required
integer format: int64
costs
required
Array<object>
object
copies
required
integer format: int64
cost
required
number format: double
planMonthly
integer format: int64
pricing
required
string
Allowed values: metered plan self_hosted
providerId
required
string
sentToday
integer format: int64
short
required
string
todayCap
integer format: int64
warmDay
integer format: int64
problems
required
Array<string>
providers
required
Array<object>
object
adapter
required
string
available
required
boolean
color
required
string
costPerCopy
required
number format: double
detail
required

Us-east-1, mta.acme.io, the Transactional stream

string
downReason
string
downSince
string format: date-time
id
required
string
name
required
string
planMonthly
integer format: int64
pricing
required
string
Allowed values: metered plan self_hosted
sentToday
integer format: int64
short
required
string
status
required
string
Allowed values: healthy degraded down sandbox warming_up paused
streamOnly
string
todayCap
integer format: int64
warmDay
integer format: int64
warmDays
integer format: int64
route
required
Array<object>
object
fallback
string
matched
required
Array<string>
providerId
required
string
reasons
required
Array<string>
seeds
required
Array<string>
runHelpers
required
Array<string>
seeds
required
Array<object>
object
email
required
string
id
required
string
provider
required
string
providerName
required
string
selected
required
boolean
status
required
string
statusAt
string format: date-time
sender
string
senderAlternatives
Array<string>
senderDomain
string
senderMissing
Array<string>
senderProblem
string
senders
required
Array<object>
object
default
required
boolean
domain
required
string
email
required
string
id
required
string
name
required
string
verified
required

Verified on every provider the test uses

boolean
stream
required
string
Allowed values: broadcast automation system transactional
warmupDays
required
Array<integer>

Example

{
"content": {
"kind": "campaign"
},
"costs": [
{
"pricing": "metered"
}
],
"providers": [
{
"pricing": "metered",
"status": "healthy"
}
],
"stream": "broadcast"
}

Error

Media typeapplication/problem+json
object
code

Stable error code, e.g. permission_denied

string
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object>
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

helpers

Members who hold the missing permission

Array<string>
instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
meta
object
key
additional properties
permission

The missing permission key

string
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank

Example

{
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}