The message log, newest first, with its numbers per status
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://reputecast.example.com/api/v1/workspaces/acme-newsletter/transactional/messages?status=all&range=1h&limit=25"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/transactional/messages?status=all&range=1h&limit=25';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://reputecast.example.com/api/v1/workspaces/acme-newsletter/transactional/messages?status=all&range=1h&limit=25' \ --header 'Authorization: Bearer <token>'Permission: transactional:view
Messages are kept 90 days; their rendered content as long as the content retention says. Test messages show with status test.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Workspace slug
Workspace slug
Query Parameters
Section titled “Query Parameters”A template’s ID, or raw for mail that arrived by SMTP
A template’s ID, or raw for mail that arrived by SMTP
A sending provider’s ID
A sending provider’s ID
An API key’s ID
An API key’s ID
First day of a custom range (YYYY-MM-DD, the workspace’s time zone), within the last 90 days
First day of a custom range (YYYY-MM-DD, the workspace’s time zone), within the last 90 days
Last day of a custom range
Last day of a custom range
Recipient, message ID, idempotency key, tag or metadata value
Recipient, message ID, idempotency key, tag or metadata value
Next of the previous page: older messages
Next of the previous page: older messages
Newest of a page: only newer messages (live updates)
Newest of a page: only newer messages (live updates)
Responses
Section titled “Responses”OK
object
object
object
object
object
Id is the template’s ID; raw is mail that arrived by SMTP
object
object
When the call was accepted
object
Mailbox_unknown, mailbox_full, domain_invalid, policy_block, spam_block, reputation, temporary, other
object
object
object
object
object
The suppression as it is now; empty once it was removed
object
Example
{ "items": [ { "bounce": { "diagnostic": "452 4.2.2 mailbox full", "kind": "hard" }, "rejection": { "optOut": { "source": "preference_center" }, "reason": "suppressed", "suppression": { "code": "550 5.1.1", "reason": "hard_bounce", "scope": "all", "source": "Postmark" } }, "status": "queued" } ]}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"}