Applications
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 applications created or submitted by an applicant.
/api/v10/applicants/ID/wishesGET List applications
List all applications created or submitted by an applicant.
GET /api/v10/applicants/123/applications
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Name | Required/Optional | Description | Notes |
|---|---|---|---|
expand | Optional | One or more related entities to include in the response, for example, applicant,flags. | [1] |
Notes
Note [1]: Some elements in the returned objects are links to other API requests. Using the expand parameter, you can expand this data to the actual records, saving additional API requests. The full list of possible expansions is applicant,flags,courses,offers,documents,tasks,scores,references,interviews. To request multiple expansions, combine them as a comma-separated list in the expand parameter.
Example request
curl \
-X GET \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v10/applicants/123/applications?expand=flags"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | The media type of the resource |
Content-Length | 1234 | The size of the response body in bytes |
X-Count | 2 | The number of returned applications |
Response codes
| Response code | Description |
|---|---|
200 OK | The list of applications was successfully returned |
Example response
{
"321": {
"id": 321,
"created": "2026-05-15T06:47:50+00:00",
"revised": "2026-05-15T07:02:11+00:00",
"submitted": "2026-05-15T06:47:58+00:00",
"status": "Reopened",
"category": {
"id": 2,
"title": "International",
"colour": "#00ff00",
"mode": "Public"
},
"academic_term": "/api/v10/academic-terms/10",
"applicant": "/api/v10/applicants/123",
"flags": {
"1": {
"assigned": "2026-05-28T08:49:39+00:00",
"flag": "/api/v10/applications/flags/1"
}
},
"courses": "/api/v10/applications/321/courses",
"offers": "/api/v10/applications/321/offers",
"exports": "/api/v10/applications/321/exports",
"documents": "/api/v10/applications/321/documents",
"references": "/api/v10/applications/321/references",
"scores": "/api/v10/applications/321/scores",
"tasks": "/api/v10/applications/321/tasks",
"pdf": "/api/v10/applications/321/pdf",
"interviews": "/api/v10/applications/321/interviews"
},
"322": {
"id": 322,
"created": "2026-04-22T12:10:21+00:00",
"revised": "2026-05-18T13:04:28+00:00",
"submitted": "2026-05-15T11:16:11+00:00",
"status": "Submitted",
"category": {
"id": 2,
"title": "International",
"colour": "#00ff00",
"mode": "Public"
},
"academic_term": "/api/v10/academic-terms/11",
"applicant": "/api/v10/applicants/123",
"flags": {
"2": {
"assigned": "2026-06-28T10:50:00+00:00",
"flag": "/api/v10/applications/flags/2"
}
},
"courses": "/api/v10/applications/322/courses",
"offers": "/api/v10/applications/322/offers",
"exports": "/api/v10/applications/322/exports",
"documents": "/api/v10/applications/322/documents",
"references": "/api/v10/applications/322/references",
"scores": "/api/v10/applications/322/scores",
"tasks": "/api/v10/applications/322/tasks",
"pdf": "/api/v10/applications/322/pdf",
"interviews": "/api/v10/applications/322/interviews"
}
}POST Create an application
Create a new application with minimal initial data: intake and course.
Depending on the provided parameters, this API request can result in two possible outcomes:
- Create a new application: If no application exists for the applicant and the intake, a new standalone application is created
- Add a course to the application: If an application already exists for the applicant in the intake, the specified course is added to the application.
After creating an application, you can manage its content using the following requests:
- Update the application data:
PATCH/api/v10/applications/ID/ - Add courses to the application:
POST/api/v10/applications/ID/courses - Set the course priority:
PUT/api/v10/applications/ID/courses/ID/priority
Validation rules
Before processing this API request, DreamApply validates the following conditions:
- The applicant must have the citizenship set.
- The applicant must have the category set (if public categories are configured for the DreamApply instance).
- The application limits must not be exceeded.
- An existing application must not be closed, withdrawn or expired.
The following limitations are not enforced:
- Course-level restrictions, such as territory requirements
- Intake limitations, such as category eligibility or territory-specific deadlines
- Course status checks, for example,
Onlinevs.Standby
POST /api/v10/applicants/123/applications
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Name | Required/Optional | Description |
|---|---|---|
intake | Required | The ID of the intake with which the course is associated |
course | Required | The ID of the course to be added to the application |
Example request
curl \
-X POST \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v10/applicants/123/applications?intake=1&course=2"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | text/html; charset=UTF-8 | The media type of the resource |
Content-Length | 0 | The size of the response body in bytes |
Location | /api/applicants/123/applications/321 | The URI of the created/updated application |
Response codes
| Response code | Description |
|---|---|
201 Created | A new application was successfully created/ The existing application was updated |
400 Bad Request | The required parameters are not set, see the error description for details |
400 Bad Request | A data validation check has failed, see the error description for details |
400 Bad Request | The course is already added to the application |