Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

Quick StartWhat is Saasco?

Analytics

CRM

Email Marketing

getList EmailsgetGet EmailgetList Contact EmailsgetGet Email Events

Knowledge

Support

Projects

Emails

List Contact Emails

Every email this project has sent to one contact, across all campaigns: the per-person send history you would show on a contact detail page. Use List Emails instead to work from the campaign side.

GET
/projects/{projectId}/contacts/{contactDistinctId}/emails

Authorization

Authorization
AuthorizationBearer <token>

In: header

Path Parameters

projectIdrequiredstring

ID of the project that sent the emails.

contactDistinctIdrequiredstring

Distinct ID of the contact whose emails to list.

Query Parameters

skipnumber

Number of emails to skip before collecting results.

sortBystring

Field to sort by, e.g. sentAt or lastEventAt.

Value in: "sentAt" | "deliveredAt" | "openedAt" | "clickedAt" | "bouncedAt" | "suppressedAt" | "to" | "status" | "lastEventAt"
sortOrderstring

Sort direction.

Value in: "asc" | "desc"
takenumber

Maximum number of emails to return.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.saasco.com/api/v2/projects/string/contacts/string/emails"
[
  {
    "id": "string",
    "createdAt": "string",
    "updatedAt": "string",
    "projectId": "string",
    "emailCampaignId": "string",
    "messageId": "string",
    "distinctId": "string",
    "to": "string",
    "contactDistinctId": "string",
    "subject": "string",
    "lastEventAt": "string",
    "sent": true,
    "sentAt": "string",
    "delivered": true,
    "deliveredAt": "string",
    "opened": true,
    "openedAt": "string",
    "clicked": true,
    "clickedAt": "string",
    "bounced": true,
    "bouncedAt": "string",
    "complained": true,
    "complainedAt": "string",
    "suppressed": true,
    "suppressedAt": "string",
    "sendPhase": "sample",
    "status": "pending"
  }
]
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}

Get Email

Fetches one sent email (its recipient, status, and delivery timestamps) together with the rendered subject and body as that recipient actually received it, personalisation included. The content is fetched from the email provider, so this is heavier than the row returned by List Emails.

Get Email Events

The delivery timeline for a single email: an ordered list of `{ type, timestamp }` entries covering pending, sent, delivered, opened, clicked, bounced, complained, suppressed, and delivery-delayed. Types can repeat: a recipient who opens twice produces two `opened` entries.