See email delivery history

Overview

See recent emails sent for a company (a partner or an account), the accounts under it and their locations: recipient, time and delivery status. Filter by type, status, recipient or date to narrow it down; with no filters you get every type.

Use this to confirm an email went out or debug one that didn't.

You'll need the company_id.

Returns recent deliveries, newest first, one page at a time.

The content of emails that carry a set-password link, a verification code or a sign-in link is never returned.

Prerequisites

  • A bearer token. See Authentication.
  • The account's id (company_id), with the email templates section turned on.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

POST /api/v1/account/white-label/email-templates/logs

Authentication

Partner or Account token

  • company_id must be inside your own account tree. A Partner token can use any account under the partner; an Account token only its own account.
  • An account outside your tree, or one that doesn't exist, is rejected with 422.
  • The email templates section must be turned on for the account's partner (email_templates_enabled in Get branding). When it's off, every email template call for that account returns 403 with The email template section is disabled for this account.

Rate limit

This endpoint has no rate limit.

Request parameters

None.

Request body

FieldTypeRequiredDescription
company_idintegerYesThe account. Must exist and be inside your account tree.
typestringNoOnly this email type. Left out: every type.
statusstringNoOnly this delivery status: pending, sent, failed or skipped.
recipientstringNoPart of the recipient address to match, up to 255 characters.
date_fromstringNoOnly emails created on or after this date.
date_tostringNoOnly emails created on or before this date.
per_pageintegerNoEmails per page, 10–100 (values below 10 are raised to 10; above 100 returns 422). Default 25.
pageintegerNoPage number. Default 1.

Request payload

{
  "company_id": 5994,
  "type": "user_welcome",
  "status": "sent",
  "recipient": "jane@",
  "date_from": "2026-06-01",
  "date_to": "2026-06-30",
  "per_page": 25
}

Response body

The payload is inside data; data.data is the page.

FieldTypeDescription
statusstringsuccess.
dataobjectThe page of deliveries.
data.current_pageintegerThe page returned.
data.dataarray of objectsThe deliveries on this page, newest first. [] when there are none.
data.data[].idintegerThe delivery's id.
data.data[].partner_company_idintegerThe company the email was sent for.
data.data[].store_idinteger or nullThe location, for location emails.
data.data[].template_typestringThe email type.
data.data[].recipient_emailstringWho it was sent to.
data.data[].delivery_methodstringemail or webhook.
data.data[].statusstringpending, sent, failed or skipped.
data.data[].skip_reasonstring or nullWhy it was skipped, e.g. template_disabled or suppressed.
data.data[].error_messagestring or nullThe error, when it failed.
data.data[].subjectstring or nullThe subject sent.
data.data[].payload_jsonobject or nullThe content sent (subject, header, body, footer, signature). Always null for user_welcome, verify_email, admin_user_verification and review_site_listing_invite, because those emails carry a set-password link, a verification code or a sign-in link.
data.data[].response_jsonobject or nullThe webhook's response, for webhook deliveries.
data.data[].webhook_delivery_idinteger or nullThe webhook delivery, for webhook deliveries.
data.data[].message_idstring or nullThe email provider's message id, when there is one.
data.data[].sent_atstring or nullWhen it was sent; null if it wasn't.
data.data[].created_atstringWhen it was queued (ISO 8601).
data.data[].updated_atstringWhen it was last updated (ISO 8601).
data.first_page_urlstringURL of the first page.
data.frominteger or nullPosition of the first delivery on this page.
data.last_pageintegerThe last page number.
data.last_page_urlstringURL of the last page.
data.linksarray of objectsPage links (url, label, page, active).
data.next_page_urlstring or nullURL of the next page, or null.
data.pathstringThe endpoint URL.
data.per_pageintegerDeliveries per page.
data.prev_page_urlstring or nullURL of the previous page, or null.
data.tointeger or nullPosition of the last delivery on this page.
data.totalintegerTotal deliveries that match.

Response payload

{
  "data": {
    "status": "success",
    "data": {
      "current_page": 1,
      "data": [
        {
          "id": 412,
          "partner_company_id": 5994,
          "store_id": null,
          "template_type": "user_welcome",
          "recipient_email": "[email protected]",
          "delivery_method": "email",
          "status": "sent",
          "skip_reason": null,
          "error_message": null,
          "subject": "Welcome to Acme Reviews",
          "payload_json": null,
          "response_json": null,
          "webhook_delivery_id": null,
          "message_id": null,
          "sent_at": "2026-06-23T09:14:02.000000Z",
          "created_at": "2026-06-23T09:14:01.000000Z",
          "updated_at": "2026-06-23T09:14:02.000000Z"
        },
        {
          "id": 410,
          "partner_company_id": 5994,
          "store_id": null,
          "template_type": "account_disconnected",
          "recipient_email": "[email protected]",
          "delivery_method": "webhook",
          "status": "failed",
          "skip_reason": null,
          "error_message": "Webhook responded 500",
          "subject": "Action needed — your connection at Downtown Clinic",
          "payload_json": null,
          "response_json": null,
          "webhook_delivery_id": null,
          "message_id": null,
          "sent_at": null,
          "created_at": "2026-06-22T18:02:55.000000Z",
          "updated_at": "2026-06-22T18:02:56.000000Z"
        }
      ],
      "first_page_url": "https://production-api.shoutaboutus.com/api/v1/account/white-label/email-templates/logs?page=1",
      "from": 1,
      "last_page": 1,
      "last_page_url": "https://production-api.shoutaboutus.com/api/v1/account/white-label/email-templates/logs?page=1",
      "links": [
        {
          "url": null,
          "label": "« Previous",
          "page": null,
          "active": false
        },
        {
          "url": "https://production-api.shoutaboutus.com/api/v1/account/white-label/email-templates/logs?page=1",
          "label": "1",
          "page": 1,
          "active": true
        },
        {
          "url": null,
          "label": "Next »",
          "page": null,
          "active": false
        }
      ],
      "next_page_url": null,
      "path": "https://production-api.shoutaboutus.com/api/v1/account/white-label/email-templates/logs",
      "per_page": 25,
      "prev_page_url": null,
      "to": 2,
      "total": 2
    }
  }
}

Examples

Success payload

See Response payload.

Error payload

403 Email templates section is off

{
  "message": "The email template section is disabled for this account.",
  "status": "error",
  "errors": []
}

422 A filter is invalid

{
  "message": "The selected status is invalid. (and 1 more error)",
  "errors": {
    "status": [
      "The selected status is invalid."
    ],
    "date_from": [
      "The date from field must be a valid date."
    ]
  }
}

422 per_page is above 100

{
  "message": "The per page field must not be greater than 100.",
  "errors": {
    "per_page": [
      "The per page field must not be greater than 100."
    ]
  }
}

422 Account outside your tree

{
  "message": "The selected company id does not belong to your company hierarchy.",
  "errors": {
    "company_id": [
      "The selected company id does not belong to your company hierarchy."
    ]
  }
}
StatusMeaning
200A page of deliveries.
401The token is missing, expired or invalid.
403The email templates section is off for this account.
422company_id is missing or outside your tree, a filter is invalid, or per_page is above 100.
500Unexpected server error.

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/account/white-label/email-templates/logs" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"company_id": 5994, "type": "user_welcome", "status": "sent", "recipient": "jane@", "date_from": "2026-06-01", "date_to": "2026-06-30", "per_page": 25}'

Did this page help you?