Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

Quick StartWhat is Saasco?

Analytics

CRM

Email Marketing

Knowledge

Support

Projects

getList DomainsgetGet DomaingetGet Domain By NamepostCreate DomainpostUpdate DomaindelDelete DomainpostActivate Email SendingpostActivate Email ReceivingdelDisable Email SendingdelDisable Email ReceivingpostEnable ShortlinkdelDisable ShortlinkpostEnable Link TrackinggetGet Email Receiving ConfiggetGet Sender ReputationgetGet Sender Reputation By Domain NamepostRefresh Sender ReputationgetGet Domain Warmup StatuspostComplete Domain WarmuppostVerify Email DNSpostVerify Email Receiving DNSpostVerify Shortlink
Domains

Update Domain

Updates client-writable domain fields. Only the keys present in changes are written. Reputation, warmup, and the tracking subdomain are stripped even if sent — those are server-managed. Prefer the activate, disable, and verify endpoints for capability changes.

POST
/projects/{projectId}/domains/{domainId}

Authorization

Authorization
AuthorizationBearer <token>

In: header

Path Parameters

projectIdrequiredstring

ID of the project that owns the domain.

domainIdrequiredstring

ID of the domain to update.

Request Body

application/json

changesrequiredobject

Fields to change. Anything omitted is left as-is. Reputation, warmup, and the tracking subdomain are ignored even if sent.

emailProviderstring | null
emailProviderDomainIdstring | null
emailReceivingProviderIdstring | null
emailReceivingStatusstring
Value in: "INACTIVE" | "PENDING" | "ACTIVE" | "ERROR"
emailStatusstring
Value in: "INACTIVE" | "PENDING" | "ACTIVE" | "ERROR"
shortlinkEnabledboolean
trackingVerificationStatusstring
Value in: "PENDING" | "VALID" | "INVALID"
vercelConfiguredboolean
vercelVerificationDNSarray<object> | null
vercelVerificationErrorstring | null
vercelVerificationStatusstring
Value in: "PENDING" | "VALID" | "INVALID"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://www.saasco.com/api/v2/projects/string/domains/string" \  -H "Content-Type: application/json" \  -d '{    "changes": {}  }'
{
  "id": "string",
  "createdAt": "string",
  "updatedAt": "string",
  "emailStatus": "INACTIVE",
  "emailProvider": "string",
  "emailProviderDomainId": "string",
  "emailReceivingStatus": "INACTIVE",
  "emailReceivingProviderId": "string",
  "trackingSubdomain": "string",
  "trackingVerificationStatus": "PENDING",
  "shortlinkEnabled": true,
  "vercelConfigured": true,
  "vercelVerificationStatus": "PENDING",
  "vercelVerificationError": "string",
  "vercelVerificationDNS": [
    {
      "domain": "string",
      "reason": "string",
      "type": "string",
      "value": "string"
    }
  ],
  "emailVerificationRequestedAt": "string",
  "receivingVerificationRequestedAt": "string",
  "shortlinkVerificationRequestedAt": "string",
  "senderReputationComputedAt": "string",
  "warmupStatus": "PENDING",
  "warmupStartedAt": "string",
  "warmupWindowStartedAt": "string",
  "projectId": "string",
  "name": "string",
  "senderReputation": 50,
  "warmupDay": 0,
  "warmupSentCount": 0
}
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}

Create Domain

Registers a hostname on the project. Names are unique across Saasco. Reusing one that belongs to another project returns 400. Creating one does not enable sending, receiving, or shortlinks — those are separate activate calls.

Delete Domain

Permanently removes the domain from the project. Returns 404 if it does not exist. Cannot be undone.