Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

OverviewGetting startedWhat is Saasco?

SDK

Quick startTrackingIdentifyConfigurationWidgetsProperties

MCP

Quick startHow it worksAuthorizationTool reference

REST API

Quick start
Set up CRMLoad an audience
postList ContactsgetGet ContactgetGet By EmailgetList RelatedpostUpsert ContactpatchUpdate ContactdelDelete ContactpostGet PropertiespostCount SubscribedpostMigrate Distinct Id
CRMContacts

Get By Email

Looks a contact up by email address rather than distinct ID, the usual entry point when all you have is an email from a form or webhook. When more than one contact holds the address, returns the primary: a hard distinct ID over a soft_ placeholder, then the most recently updated. Returns 404 if no contact matches.

GET
/projects/{projectId}/crm/contacts/by-email/{email}

Authorization

Authorization
AuthorizationBearer <token>

In: header

Path Parameters

projectIdrequiredstring

ID of the project that owns the contact.

emailrequiredstring

Email address to look up.

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/crm/contacts/by-email/string"
{
  "id": "string",
  "createdAt": "string",
  "updatedAt": "string",
  "projectId": "string",
  "distinctId": "string",
  "email": "string",
  "toDelete": true,
  "properties": {
    "age": 0,
    "avatar": "http://example.com",
    "birthday": "string",
    "createdAt": "string",
    "description": "string",
    "displayName": "string",
    "email": "user@example.com",
    "firstName": "string",
    "gender": "string",
    "id": "string",
    "lastName": "string",
    "name": "string",
    "phone": "string",
    "title": "string",
    "username": "string",
    "website": "string",
    "$id": "string",
    "$lastSeen": "string",
    "$lastIdentifiedAt": "string",
    "$processedAt": "string",
    "$unsubscribed": true,
    "$subscribed": true,
    "$unsubscribeReason": "manual",
    "$unsubscribeSource": "string",
    "$emailValidated": true,
    "$lastEmailValidatedAt": "string",
    "$emailValidationResult": "string",
    "$emailScore": 0,
    "$stripeCustomerId": "string",
    "$os": "string",
    "$browser": "string",
    "$browserVersion": "string",
    "$screenHeight": 0,
    "$screenWidth": 0,
    "$screenDpi": 0,
    "$device": "string",
    "$userAgent": "string",
    "$ip": "string",
    "$timezone": "string",
    "$city": "string",
    "$country": "string",
    "$countryCode": "string",
    "$continent": "string",
    "$region": "string",
    "$locale": "string",
    "$latitude": 0,
    "$longitude": 0,
    "$referrer": "string",
    "$referringDomain": "string",
    "$initialReferrer": "string",
    "$initialReferringDomain": "string",
    "$utmSource": "string",
    "$utmMedium": "string",
    "$utmCampaign": "string",
    "$utmTerm": "string",
    "$utmContent": "string",
    "$initialUtmSource": "string",
    "$initialUtmMedium": "string",
    "$initialUtmCampaign": "string",
    "$initialUtmTerm": "string",
    "$initialUtmContent": "string",
    "$_toDelete": true,
    "$_emailScoreActions": "string",
    "property1": "string",
    "property2": "string"
  }
}
{
  "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 Contact

Fetches a single contact by distinct ID, including its merged property bag. Returns 404 if no contact matches.

List Related

Lists other contacts for the same person: contacts sharing this email, contacts on the same Stripe customer, and contacts Stripe relates by a shared card number (the Dashboard Related customers list). Card matches come from charge search on the card fingerprint. Returns an empty list when nothing matches.