Sending
Every operation in this group: what it accepts, what it returns and the errors it can answer with.
Operations
How mail leaves the workspace. It travels in two lanes, so a newsletter cannot hold up or harm app mail: transactional for password resets, receipts and codes, and broadcast for newsletters. Each lane has its own queue and its own reputation numbers. The broadcast lane pauses itself when too many of its messages bounce or are reported as spam, and app mail keeps going out. A workspace with the dedicated IP add-on also sends from its own IP address.
GET/sending/streams
List the sending lanes
Both lanes with their state and their numbers for the last 7 days: recipients, bounces and complaints, the rates, and the limits the broadcast lane is held to. A paused lane says when and why. The count starts again when a lane is resumed.
Requires the emails:read scope.
Returns
The two lanes.
Errors
The errors every operation can return400401403404422500Error catalog
Also available in
POST/sending/streams/{stream}/resume
Resume a paused lane
Resumes the broadcast lane after it was paused for too many bounces or complaints. Broadcasts and messages that were on hold continue at once, and the 7 day count starts again from now, so clean the audience first. Only the workspace owner may do it, and an app acting for a person is asked for a verification code.
Requires the domains:write scope.
Path parameters
streamstringRequiredThe lane,
transactionalorbroadcast.One of"transactional""broadcast"
Returns
The lane, active again.
Errors
- 403
The key lacks the scope, or may not send as that address.
step_up_required: the call was made with an OAuth access token that has not been verified in the last 60 minutes. Ask for a code withPOST /security/step-up, send it toPOST /security/step-up/verify, then repeat the call. The person can also choose Allow changes for 60 minutes on the app in Account settings, Connected apps, on the OpenEmail website. An API key is never asked for a code.- 409
stream_not_paused: the lane is not paused, so there is nothing to resume.
The errors every operation can return400401404422500Error catalog
Also available in
GET/sending/dedicated-ips
List dedicated IPs
The dedicated sending IPs of the workspace, bought as an add-on with POST /billing/add-ons/checkout. A new IP is warmed up over several weeks: warmupPercent says how far it is, and until it reaches 100 part of the mail still leaves through the shared IPs. A workspace without the add-on gets an empty list and sends through the shared IPs.
Requires the domains:read scope.
Returns
The dedicated IPs.
Errors
The errors every operation can return400401403404422500Error catalog
Also available in
GET/sending/dedicated-ips/{ip}
Read a dedicated IP
One dedicated IP of the workspace with its status and how far its warm-up has come.
Requires the domains:read scope.
Path parameters
ipstringRequiredThe IP address, as the list returns it.
Returns
The dedicated IP.
Errors
- 404
resource_not_found: the workspace has no dedicated IP with that address.
The errors every operation can return400401403422500Error catalog
Also available in
Objects
DedicatedIpobject
objectstringRequired- One of
"dedicated_ip" ipstringRequiredstatusstringRequiredwarmingwhile the IP is being warmed up,readyonce all of the workspace's mail leaves through it.One of"available""warming""ready""released"poolstringRequiredThe pool the IP sends through.
Can be nullpoolStatusstringRequired- Can be nullOne of
"pending""warming""active""releasing""released""failed" warmupPercentintegerRequired- At least 0At most 100
assignedAtstringRequired- Can be nullFormat
date-time readyAtstringRequired- Can be nullFormat
date-time checkedAtstringRequiredWhen the warm-up was last read.
Can be nullFormatdate-time
DedicatedIpListobject
objectstringRequired- One of
"list" dataDedicatedIp[]Required
SendingStreamobject
objectstringRequired- One of
"sending_stream" streamstringRequired- One of
"transactional""broadcast" statusstringRequiredpausedholds every new message on the lane until it is resumed. Only the broadcast lane pauses.One of"active""paused"pausedAtstringRequired- Can be nullFormat
date-time pausedReasonstringRequiredWhich limit was passed, or null on an active lane.
Can be nullOne of"bounce_rate""complaint_rate"resumedAtstringRequiredWhen the lane was last resumed. The count in
windowstarts no earlier than this.Can be nullFormatdate-timewindowobjectRequiredsincestringRequired- Format
date-time untilstringRequired- Format
date-time recipientsintegerRequiredRecipients the lane handed over for delivery in the window.
bouncedintegerRequiredcomplainedintegerRequiredRecipients who reported the mail as spam.
bounceRatenumberRequiredBounced over recipients, from 0 to 1.
complaintRatenumberRequiredComplained over recipients, from 0 to 1.
limitsobjectRequiredbounceRatenumberRequiredThe broadcast lane pauses above this bounce rate.
complaintRatenumberRequiredThe broadcast lane pauses above this complaint rate.
minimumRecipientsintegerRequiredThe rates are only judged once the lane reached this many recipients in the window.
windowDaysintegerRequired
SendingStreamListobject
objectstringRequired- One of
"list" dataSendingStream[]Required