Emails

Represents a list of emails sent to an applicant.

URI
/api/v9/applicants/ID/emails

GET List emails

Get a list of emails that have been sent to this applicant. Note that this list will only show emails that have been stored. Any emails containing credentials or other secrets (for example password reminders) are delivered immediately without storing them to the database, and are therefore unavailable here as well.

You can also see when the email was delivered and when it was opened (this may not be accurate). If the email is still being delivered, the timestamp contains a null.

Syntax
GET /api/v9/applicants/123/emails
Host: apply.example.edu
Authorization: DREAM apikey="..."

Example request

Request
curl
curl \
  -X GET \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  "https://apply.example.edu/api/v9/applicants/123/emails"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the resource
Content-Length1234Size of the response body in bytes
X-Count2Number of returned emails

Response codes

Response codeDescription
200 OKThe list of emails was successfully returned

Example response

Response
{
  "123": {
    "inserted": "2025-06-29T18:11:15+00:00",
    "delivered": "2025-06-29T18:11:15+00:00",
    "failed": null,
    "opened": "2025-06-30T10:15:49+00:00",
    "from": {
      "email": "sender@uni.edu",
      "name": "Admission Office"
    },
    "subject": "Hello world!",
   "message": "Hi there!",
    "attachments": "/api/v9/applicants/1/emails/123/attachments"
  },
  "321": {
    "inserted": "2025-07-10T19:21:55+00:00",
    "delivered": null,
    "failed": null,
    "opened": null,
    "from": {
      "email": "sender@uni.edu",
      "name": "Admission Office"
    },
    "subject": "Hello world!",
    "message": "Hi there!",
    "attachments": null
  }
}

POST Send an email

Create and send a new email to the applicant. Note that after the email is created, it may take a few minutes for it to be delivered. The URI for the email created is returned in the Location header and you can poll this URI after a few minutes to see if it was delivered successfully.

Syntax
POST /api/v9/applicants/123/emails
Host: apply.example.edu
Authorization: DREAM apikey="..."

Parameters

NameRequired/OptionalDescription
subjectRequiredEmail subject line, 2 to 128 characters.
messageRequiredEmail message itself in text form, 4 to 4096 characters. Note that you can use the basic Textile syntax here like bold. The HTML version of the email is generated by DreamApply.

Example request

Request
curl
curl \
  -X POST \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  "https://apply.example.edu/api/v9/applicants/123/emails?subject=Missing%20documents&message=Hello%2C%5Cn%5CnThank%20you%20for%20your%20application!"
Request
curl
curl \
  -X POST \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  "https://apply.example.edu/api/v9/applicants/123/emails?subject=Missing%20documents&message=Hello%2C%5Cn%5CnThank%20you%20for%20your%20application!%5Cn%5CnPlease%20upload%20the%20following%20documents%20using%20the%20**Tasks**%20section%20in%20the%20portal%3A%5Cn%5Cn*%20Passport%20copy%5Cn*%20Transcript%20copy"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the resource
Content-Length0Size of the response body in bytes
Location/api/applicants/123/emails/321The URI of the sent email

Response codes

Response codeDescription
201 CreatedA new email was created (does not yet mean it was delivered)
400 Bad RequestSome of the email parameters were not correct
403 ForbiddenThis query is not allowed for your API key