Emails

Email a lease

Sends one email to every tenant on a lease who has a valid address. It is a single email with several recipients, not one each.

POST
https://api.portal.magicdoor.com/company-app/emails/leases/{leaseId}

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Path parameters

leaseIdstringrequired

The lease to email.

example: 1829833104612495360

Body

application/json

subjectstringrequired

The subject line.

example: Water shut-off Thursday
bodystringrequired

The body of the email. MagicDoor wraps it in the company template.

example: <p>Water will be off Thursday 9am to 1pm for a repair.</p>
attachmentSessionIdsstring[]

Upload sessions to attach, from the email attachment upload session endpoint.

documentTemplateIdsstring[]

Letter templates to render for this recipient and attach as PDFs.

Response

200 · The email that was sent, with one entry in `targets` per tenant it reached.

idstring

The email.

subjectstring

The subject line.

bodystring

The body as it was sent.

sentstring · date-time

When it was sent.

templateenum<string>

Which MagicDoor template wrapped the body. Emails sent through this API use companyGeneric.

emptycompanyGenericmagicDoor
targetsobject[]

Everyone it went to, with the record behind each address.

filesFile[]

The attachments that were sent with it.

propertyManagerobject

The property manager who sent it. Absent when MagicDoor sent it automatically.

metadataobject

Free-form key/value data MagicDoor stored with the email.

401 · The access token is missing, expired, or not valid.

404 · No lease with that id belongs to your company.

422 · No tenant on the lease has a valid email address, or the company has all outbound communications switched off.

This sends a real email

The email leaves immediately, to every active tenant on the lease who has a valid email address. There is no draft step and no way to recall it.

Tenants who have moved out are left out. Tenants whose lease has not started yet are included. Tenants with no email address, or whose tenant record is inactive, are skipped — if that leaves nobody, the call fails with 422 and no email is sent.

The response lists the addresses that were actually used under targets.

Upload each file through the email attachment upload session endpoint first, then pass the session ids in attachmentSessionIds. Letter templates named in documentTemplateIds are rendered for the lease and attached as PDFs.

This endpoint and the JSON one share a URL. MagicDoor picks between them on the request's Content-Type.