Email accounts
POST
/email-accounts/{id}/check-dns

Read the sending domain's SPF, DKIM and DMARC records now and return the mailbox with its updated dnsHealth. The records are also re-read once a day and right after a mailbox connects, so this is only needed after changing DNS.

Authorization

bearerAuth
AuthorizationBearer <token>

An API key created under Settings → API & Webhooks.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/email-accounts/string/check-dns"
{  "data": {    "id": "string",    "label": "string",    "email": "string",    "fromName": "string",    "provider": "google",    "authType": "password",    "connectedVia": "app",    "hostedLinkId": "string",    "status": "pending",    "error": "string",    "limits": {},    "usage": {},    "paused": true,    "pausedReason": "user",    "pausedAt": "2019-08-24T14:15:22Z",    "trackOpens": true,    "trackClicks": true,    "dnsHealth": {      "domain": "string",      "managed": true,      "spf": {        "status": "ok",        "reason": "string"      },      "dkim": {        "status": "ok",        "reason": "string",        "selector": "string"      },      "dmarc": {        "status": "ok",        "reason": "string",        "policy": "none"      },      "checkedAt": "2019-08-24T14:15:22Z"    },    "deliverabilityTest": {      "status": "running",      "startedAt": "2019-08-24T14:15:22Z",      "finishedAt": "2019-08-24T14:15:22Z",      "landing": "inbox",      "spf": "string",      "dkim": {        "result": "string",        "selector": "string"      },      "dmarc": "string",      "blocklists": {        "ip": "clean",        "domain": "clean"      },      "failure": "send"    },    "counters": {},    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z",    "managed": {      "provider": "string",      "domain": "string",      "status": "string",      "renewsAt": "2019-08-24T14:15:22Z",      "cancelAt": "2019-08-24T14:15:22Z",      "isAdmin": true    },    "warmup": {      "provider": "string",      "status": "pending",      "statusLabel": "string",      "strategy": {        "preset": "conservative",        "startingVolume": 1,        "dailyIncrease": 1,        "targetVolume": 1,        "replyInbox": [          0,          0        ],        "replyPromotions": [          0,          0        ],        "replySpam": 0      },      "strategyApplied": true,      "day": 0,      "currentVolume": 0,      "targetVolume": 0,      "health": "excellent",      "healthLabel": "string",      "healthScore": 0,      "inboxRate": 0,      "startedAt": "2019-08-24T14:15:22Z",      "holdUntil": "2019-08-24T14:15:22Z",      "holdReason": "warming",      "holdOverride": true,      "syncedAt": "2019-08-24T14:15:22Z",      "error": "string"    },    "restoredFrom": "string"  }}

Withdraw a connection request DELETE

Withdraw a pending connection request from this sender to a profile. Safe to call when nothing is pending.

Create a hosted connect link for a Google or Microsoft mailbox POST

The mailbox version of POST /accounts/hosted-link, and how the API connects a Google mailbox (Gmail, Google Workspace) or a Microsoft one (Outlook.com, Hotmail, Microsoft 365): signing in with the provider needs a browser, so you mint a one-time URL for `provider`, send the person to it, and they click "Sign in with Google" or "Sign in with Microsoft" on a page Swarmhit serves in your organization's branding. The provider takes their password on its own page; neither you nor we ever see it. The mailbox lands in the effective workspace (X-Swarmhit-Workspace), which needs a paid plan, checked when the link is created; a mailbox takes no seat. The workspace needs the email channel (403 otherwise), and the server needs that provider's sign-in set up (409 `provider-unavailable` otherwise). With `accountId` the link REPAIRS that mailbox (one whose access expired or was revoked, status `error`): the person signs in again as the same address and it keeps its id, campaigns and seat. A different address is refused on the page. Only a mailbox that signed in can be repaired this way (`authType: oauth`); `provider` may then be left out. A mailbox bought through Swarmhit reconnects by itself and is refused (409 `managed-mailbox`). You learn the outcome exactly as for a sender: the redirect back carries `?hosted_link_id=&status=connected|failed|expired|cancelled&account_id=&external_id=` (`account_id` is the mailbox id); account.connected (with `data.channel: email`) and account.connection_failed carry `hostedLinkId` and `externalId`; and GET /email-accounts/hosted-link/{id} returns the current state. A failed sign-in leaves the link open so the person can try again; only cancelling or expiry ends it without a mailbox. `url` is returned once, here.