Applicants
API version
Select a version to change the base URI
in syntax and code examples. Learn about versions:
in syntax and code examples. Learn about versions
Represents a list of applicants or leads registered in DreamApply.
/api/v9/applicantsView all API requests
| API request | Return Type | Verb | Description |
|---|---|---|---|
/api/v9/applicants | C | GET, HEAD | List applicants using filters set as parameters |
/api/v9/applicants | C | POST | Create a new applicant / lead and send welcome letter |
/api/v9/applicants/ID | R | GET, HEAD | Return information about an applicant |
/api/v9/applicants/ID/photo | R | GET, HEAD | Get the applicant's photo |
/api/v9/applicants/ID/consents | C | GET, HEAD | Get a list of consents that are associated with an applicant |
/api/v9/applicants/ID/consents/ID | A | GET, HEAD | Get information about a specific consent associated with an applicant |
/api/v9/applicants/ID/emails | C | GET, HEAD | Get a list of emails that are sent to an applicant |
/api/v9/applicants/ID/emails/ID | A | GET, HEAD | Get information about a specific emails sent to an applicant |
/api/v9/applicants/ID/emails/ID/attachments | C | GET, HEAD | Get a list of attachments of an email |
/api/v9/applicants/ID/emails/ID/attachments/ID | A | GET, HEAD | Download a specific attachment (binary data) |
/api/v9/applicants/ID/trackers | C | GET, HEAD | Get a list of tracker associations |
/api/v9/applicants/ID/trackers/ID | A | GET, HEAD | Get information about a specific tracker set on an applicant |
/api/v9/applicants/ID/trackers/ID | A | PUT | Set a tracker code to the applicant in question |
/api/v9/applicants/ID/trackers/ID | A | DELETE | Remove the tracker code from the applicant in question |
/api/v9/applicants/ID/invoices | C | GET, HEAD | List invoices for this applicant |
/api/v9/applicants/ID/invoices/ID | R | GET, HEAD | Get information about an applicant invoice |
/api/v9/applicants/ID/wishes | C | GET, HEAD | Get the applicant's wishlist |
/api/v9/applicants/ID/wishes/ID | R | GET, HEAD | Get information about an applicant wishlist item |
/api/v9/applicants/ID/applications | C | GET, HEAD | List applications for this applicant |
/api/v9/applicants/ID/applications | C | POST | Create an application with minimal initial data |
/api/v9/applicants/ID/applications/ID | R | GET, HEAD | Get information about an applicant application |
/api/v9/applicants/ID/reference | R | GET, HEAD | Get the reference code for this applicant |
/api/v9/applicants/ID/reference | R | PUT | Store a new reference code for this applicant |
/api/v9/applicants/ID/matriculation | R | GET, HEAD | Get the matriculation number for this applicant |
/api/v9/applicants/ID/matriculation | R | PUT | Store a new matriculation number for this applicant |
/api/v9/applicants/ID/notes | R | GET, HEAD | Get the notes on the applicant |
/api/v9/applicants/ID/notes | R | POST | Create a new applicant note |
/api/v9/applicants/ID/notes/ID | R | GET, HEAD | Get information about a specific applicant note |
/api/v9/applicants/ID/notes/ID | R | PUT | Update a specific applicant note |
/api/v9/applicants/consents | C | GET, HEAD | Get a list of all consents |
/api/v9/applicants/consents/ID | R | GET, HEAD | Get information about a specific consent |
/api/v9/applicants/trackers | C | GET, HEAD | Get a list of all trackers |
/api/v9/applicants/trackers | C | POST | Create a new tracker |
/api/v9/applicants/trackers/ID | R | GET, HEAD | Get information about a specific tracker |
/api/v9/applicants/trackers/ID | R | DELETE | Delete a tracker, removing it from all applicants |
GET List applicants
List applicants using the filters set as parameters. The number of applicants is represented in the X-Count header.
There is a hard limit of 32768 items returned, which is capped to 8192 if the expand parameter is used.
GET /api/v9/applicants
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Name | Required/Optional | Description | Notes |
|---|---|---|---|
bySince | Optional | An ISO datetime or the (sequential) ID from which you want to start fetching from (inclusive) | [4] |
byUntil | Optional | An ISO datetime or the (sequential) ID up to which to fetch to (inclusive) | [4] |
byCitizenships | Optional | List of ISO 3166-1 alpha-2 country codes | [1] |
byEmails | Optional | List of emails | [1] |
byTrackerIDs | Optional | List of tracker IDs | [1], [2] |
byTrackerCodes | Optional | List of tracker codes | [1], [2] |
limit | Optional | How many applicants to return (Allowed range is normally 1..32768, 32768 being the default). If the expand parameter is used, the limit is 8192. | |
expand | Optional | Expand the chosen relational element(s), for example applicant,offer | [3] |
Notes
- Note [1]: Lists can be either comma or space separated. All list items are combined with logical
ORoperators — in other words an application is considered matching if it matches to any of the values in the list. - Note [2]: you may use either tracker IDs or codes to reference trackers. However IDs are guaranteed not to change while the tracker codes offer no such guarantee.
- Note [3]: Some elements in the returned objects are links to other API requests. Using the
expandparameter, it is possible to expand this data to the actual records, saving additional API requests. The full list of possible expansions istrackers,documents,consents,invoices,wishes. You can set one or multiple expansions, combining them in a comma-separated fashion to theexpandparameter. Note also that using this parameter caps tolimitto 8192 due to performance reasons. - Note [4]: An ISO 8601 compatible datetime (inclusive) or the applicant ID to start from (inclusive). The date is applied to the registration time of the applicant, so you can only fetch applicants registered in the last N days, weeks or months. The applicant IDs are sequential integers, so you can simply save the last applicant ID you processed, and issue the next request with
bySince=$lastID+1.
Example request
curl \
-X GET \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v9/applicants?bySince=2025-10-01T00:00:00Z&byCitizenships=US,GB&expand=consents&limit=5"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | Media type of the resource |
Content-Length | 1456 | Size of the response body in bytes |
X-Count | 15 | Number of matching applicants |
Response codes
| Response code | Description |
|---|---|
200 OK | The list of applicants was successfully returned |
400 Bad Request | One of query parameters is invalid, see the error description |
Example response
{
"123": {
"id": 123,
"type": "Child",
"registered": "2025-10-15T10:33:16+00:00",
"name": {
"full": "John Smith",
"given": "John",
"middle": null,
"family": "Smith",
"parent": "John Smith"
},
"email": "john.smith@email.com",
"phone": "+123.123345678",
"reference": "3406038",
"matriculation": null,
"citizenship": "GB",
"notes": null,
"applications": "/api/v9/applicants/123/applications",
"trackers": "/api/v9/applicants/123/trackers",
"photo": "/api/v9/applicants/123/photo",
"consents": {
"1": {
"decided": "2025-10-15T10:33:16+00:00",
"decision": "Accept",
"consent": "/api/v9/applicants/consents/1"
},
"2": {
"decided": "2025-10-15T10:33:16+00:00",
"decision": "Reject",
"consent": "/api/v9/applicants/consents/2"
},
"4": {
"decided": "2025-10-15T10:33:16+00:00",
"decision": "Reject",
"consent": "/api/v9/applicants/consents/4"
}
},
"invoices": "/api/v9/applicants/123/invoices",
"wishes": "/api/v9/applicants/123/wishes",
"documents": "/api/v9/applicants/123/documents"
}
}POST Create an applicant
Create a new applicant/lead. The owner of the new account will be notified via email, using the applicant-welcome-api template. The welcome letter will also contain the account credentials needed for the applicant to start using his/her new account. Please include any additional instructions in the template — you can configure all templates using the admin interface (look for the Settings > Templates menu).
The URI for the new applicant account that was created is returned in the Location header.
Note that since this API request will send an email before returning, it is slightly slower than other API requests. This is a deliberate choice to avoid storing the (secrets-containing) email in more intermediate queues than required, while also guaranteeing that if the request succeeds, the email was accepted upstream.
If an applicant/lead with this email address exists, a 409 Conflict will be returned, along with the URI of the offending applicant in the Location header.
POST /api/v9/applicants
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Name | Required/Optional | Description |
|---|---|---|
email | Required | A valid email address. Must be unique (see above). |
citizenship | Optional | This is optional, but highly recommended. The citizenship affects all deadlines/fees displayed for the applicant. If not provided, it will be asked when the applicant is logging in. Accepts an ISO 3166-1 alpha-2 country code. |
name | Required | Full name of the lead/applicant. 1 to 50 characters. You must provide either name or both name_given/family. |
name_given | Required | Given name of the lead/applicant. 1 to 50 characters. You must provide either name or both name_given/family. |
name_family | Required | Family name of the lead/applicant. 1 to 50 characters. You must provide either name or both name_given/family. |
phone | Optional | Phone number of the lead/applicant, for example +372 123456789. Up to 30 characters. |
notes | Optional | Any notes accompanying the lead/applicant. Up to 2048 characters. |
reference | Optional | A reference code (often an external ID). Can also be managed individually, read more. |
matriculation | Optional | A matriculation number. Can also be managed individually, read more. |
tracker_ID | Optional | ID of a tracker object to be associated with the applicant. |
Example request
curl \
-X POST \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v9/applicants?email=john.smith@email.com&citizenship=GB&name=John%20Smith"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | Media type of the resource |
Content-Length | 0 | Size of the response body in bytes |
Location | /api/applicants/12345 | URI of the created applicant |
Response codes
| Response code | Description |
|---|---|
201 Created | A new applicant/lead was successfully created |
409 Conflict | This email address is already assigned to another applicant |