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 created applications.
URI
/api/v10/applicationsView all API requests
| API request | Return Type | Verb | Description |
|---|---|---|---|
/api/v10/applications | C | GET HEAD | List all applications that match the specified filters |
/api/v10/applications | C | POST | Create an application with minimal initial data |
/api/v10/applications/ID | R | GET HEAD | Get information about an application (data input by the application) |
/api/v9/applications/ID | R | PATCH | Update specific application data |
/api/v10/applications/ID/courses | C | GET HEAD | List all courses added to an application |
/api/v10/applications/ID/courses | C | POST | Add a course to an application |
/api/v10/applications/ID/courses/ | A | GET HEAD | Get a course added to an application |
/api/v10/applications/ID/courses/ | A | DELETE | Delete a course from an application |
/api/v10/applications/ID/courses/ID/ | A | GET HEAD | Get the priority of a course added to an application |
/api/v10/applications/ID/courses/ID/ | A | PUT | Set the priority for a course added to an application |
/api/v10/applications/ID/documents | C | GET HEAD | List all documents attached to an application |
/api/v10/applications/ID/documents | C | POST | Upload a new document to an application |
/api/v10/applications/ID/ | R | GET HEAD | Download all documents attached to an application (binary data) |
/api/v10/applications/ID/documents/ | R | GET HEAD | Download a document attached to an application (binary data) |
/api/v10/applications/ID/offers | C | GET HEAD | List all offers created for an application |
/api/v10/applications/ID/offers/ID | R | GET HEAD | Get an offer created for an application |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | Get the type of an application offer |
/api/v10/applications/ID/offers/ID/ | R | PUT | Set the type for an application offer |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | Get the subject line for an application offer |
/api/v10/applications/ID/offers/ID/ | R | PUT | Set the subject line for an application offer |
/api/applications/ID/offers/ID/ | R | GET HEAD | Get the offer letter text/comments of an application offer |
/api/v10/applications/ID/offers/ID/ | R | PUT | Set the offer letter text/comments of an application offer |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | List all attachments for an application offer |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | Get an attachment for an application offer |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | Download an attachment for an application offer (binary data) |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | List all offer letters for an application offer |
/api/v10/applications/ID/offers/ID/ | R | POST | Generate an offer letter for an application offer |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | Get an offer letter for an application offer |
/api/v10/applications/ID/offers/ID/ | R | POST | Confirm an offer for an application |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | Get the decision for an application offer |
/api/v10/applications/ID/offers/ID/ | R | PUT | Set the decision for an application offer |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | List all notes for an application offer |
/api/v10/applications/ID/offers/ID/ | R | POST | Create a new note for an application offer |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | Get a note for an application offer |
/api/v10/applications/ID/offers/ID/ | R | PUT | Update a note for an application offer |
/api/v10/applications/ID/offers/ID/ | R | GET HEAD | Get the extra score for an application offer |
/api/v10/applications/ID/offers/ID/ | R | PUT | Set the extra score for an application offer |
/api/v10/applications/ID/offers/ID/ | R | DELETE | Delete the extra score for an application offer |
/api/v10/applications/ID/tasks | C | GET HEAD | List all tasks created for an application |
/api/v10/applications/ID/tasks | C | POST | Add a new task for an application |
/api/v10/applications/ID/tasks/ID | R | GET HEAD | Get a task created for an application |
/api/v10/applications/ID/tasks/ID | R | DELETE | Delete a task for an application |
/api/v10/applications/ID/tasks/ID/ | R | GET HEAD | Get the status of a task |
/api/v10/applications/ID/tasks/ID/ | R | PUT | Set the status for a task |
/api/v10/applications/ID/tasks/ID/ | C | GET HEAD | List all documents attached to a task |
/api/v10/applications/ID/tasks/ID/ | C | POST | Upload a new document to a task |
/api/v10/applications/ID/tasks/ID/ | R | GET HEAD | Download all documents attached to a task (binary data) |
/api/v10/applications/ID/tasks/ID/ | R | GET HEAD | Download a document attached to a task (binary data) |
/api/v10/applications/ID/ | C | GET HEAD | List all interviews for an application |
/api/v10/applications/ID/interviews/ | R | GET HEAD | Get an interview for an application |
/api/v10/applications/ID/invoices | C | GET HEAD | List all invoices for an application |
/api/v10/applications/ID/invoices | C | POST | Issue an invoice for an application |
/api/v10/applications/ID/invoices/ | R | GET HEAD | Get an invoice for an application |
/api/v10/applications/ID/flags | C | GET HEAD | List all flags assigned to an application |
/api/v10/applications/ID/flags/ID | A | GET HEAD | Get a flag assigned to an application |
/api/v10/applications/ID/flags/ID | A | PUT | Assign a flag to an application |
/api/v10/applications/ID/flags/ID | A | DELETE | Remove a flag from an application |
/api/v10/applications/ID/references | C | GET HEAD | List all references submitted for an application |
/api/v10/applications/ID/references/ | R | GET HEAD | Get a reference submitted for an application |
/api/v10/applications/ID/exports | C | GET HEAD | List all exports generated from an application |
/api/v10/applications/ID/exports/ | R | GET HEAD | Get an export generated from an application |
/api/v10/applications/ID/exports/ID/ | C | GET HEAD | List all downloadable files (blobs) related to an export |
/api/v10/applications/ID/exports/ID/ | R | GET HEAD | Get a downloadable file (blob) related to an export |
/api/v10/applications/ID/pdf | C | GET HEAD | Generate a PDF printout of an application |
/api/v10/applications/ID/scores | C | GET HEAD | List all scores for an application |
/api/v10/applications/ID/freeze | R | POST | Freeze an application |
/api/v10/applications/ID/unfreeze | R | POST | Unfreeze an application |
/api/v10/applications/ID/close | R | POST | Close an application |
/api/v10/applications/flags | C | GET HEAD | List all flags configured in DreamApply |
/api/v10/applications/flags | C | POST | Create a new flag in DreamApply |
/api/v10/applications/flags/ID | R | GET HEAD | Get a flag configured in DreamApply |
/api/v10/applications/flags/ID | R | DELETE | Delete a flag and remove it from all applications |
/api/v10/applications/statuses | R | GET HEAD | List all application statuses |
/api/v10/applications/offers/types | R | GET HEAD | List all offer types |
/api/v10/applications/offers/types/ | R | GET HEAD | Get an offer type |
GET List applications
List applications that match the specified filter parameters. The number of applications is returned in the X-Count header.
DreamApply returns a maximum of 32768 items in a single response. If the expand parameter is used, the limit is capped to 16384.
Syntax
GET /api/v10/applications
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Name | Required/Optional | Description | Notes |
|---|---|---|---|
byAcademicYear | Required (either one) | A single 4-digit academic year to filter applications by. | |
byAcademicYears | A list of academic years to filter applications by. | ||
byAcademicTermID | An academic term ID to filter applications by. | ||
byCommenceYear | A single 4-digit year to filter applications by. | Use the byAcademicTermID, byAcademicYear or byAcademicYears parameters instead. | |
byApplicantIDs | Optional | A list of applicant IDs to filter applications by. Returns applications that belong to any of the specified applicants. | [1] |
byStatuses | Optional | A list of application statuses to filter by. | [1] |
byCreatedSince | Optional | An ISO 8601 datetime from which to start retrieving results. Returns applications created on or after the specified date and time. | |
byRevisedSince | Optional | An ISO 8601 datetime from which to start retrieving results. Returns applications revised on or after the specified date and time. | |
bySubmittedSince | Optional | An ISO 8601 datetime from which to start retrieving results. Returns applications submitted on or after the specified date and time. | |
byCourseIDs | Optional | A list of course IDs to filter applications by. Returns applications that contain at least one of the specified courses. | [1] |
byCourseTypes | Optional | A list of course types to filter applications by. Returns applications that contain at least one of the specified course types. | [1] |
byCourseInstitutionIDs | Optional | A list of institution IDs to filter applications by. Returns applications that contain at least one course from the specified institutions. | [1] |
byCourseIntakeIDs | Optional | A list of intake IDs to filter applications by. Returns applications that contain at least one course under the specified intakes. | [1] |
byOfferTypes | Optional | A list of offer types to filter applications by. Returns applications that contain at least one of the specified offer types. | [1], [2] |
byOfferDecisions | Optional | A list of offer decisions by filter applications by. | [1], [2] |
byOfferInstitutionIDs | Optional | A list of institution IDs to filter applications by. Returns applications that contain at least one offer from the specified institutions. | [1] |
byFlagIDs | Optional | A flag ID to filter applications by. | [1], [3] |
limit | Optional | The maximum number of applications to return. The allowed range is 1 to 32768. The default is 32768. When the expand parameter is used, the maximum is 16384. Values above the limit are capped without error. | |
expand | Optional | One or more related entities to include in the response, for example, applicant,offer. | [4] |
Notes
- Note [1]: Lists can be either comma or space separated. All list items are combined with logical
ORoperators, meaning an application is included if it matches any value in the list. - Note [2]: Limits selection to applications that have been submitted, since offers (initially in the Unreplied status) are created while submitting an application. An application may contain any number of courses, but they are turned into offers only at submission. This also applies to edits made after submission. For example, an applicant may add a course after submission, but the corresponding offer will appear only after submission.
- Note [3]: Currently, only one flag ID can be listed. This limitation will be removed at a later date.
- Note [4]: Some elements in the returned objects are links to other API requests. Using the
expandparameter, you can expand this data to the actual records, saving additional API requests. The full list of possible expansions isapplicant,flags,courses,offers,documents,tasks,scores,references,interviews. To request multiple expansions, combine them as a comma-separated list in theexpandparameter. Using this parameter caps tolimitto 16384 for performance reasons.
Example request
Request
curl
curl \
-X GET \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v10/applications?byAcademicTermID=27&byCreatedSince=2025-10-01&byFlagIds=8"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | The media type of the resource |
Content-Length | 1456 | The size of the response body in bytes |
X-Count | 15 | The number of matching applications |
Response codes
| Response code | Description |
|---|---|
200 OK | The list of applications was returned |
400 Bad Request | One of query parameters is invalid, see the error description |
Example response
Response
{
"123": {
"id": 123,
"created": "2025-10-07T07:09:15+00:00",
"revised": "2025-10-08T12:20:17+00:00",
"submitted": "2025-10-10T07:00:06+00:00",
"status": "Reopened",
"category": {
"id": 2,
"title": "International",
"colour": "#00ff00",
"mode": "Public"
},
"academic_term": "/api/v10/academic-terms/27",
"applicant": "/api/v10/applicants/321",
"flags": "/api/v10/applications/123/flags",
"courses": "/api/v10/applications/123/courses",
"offers": "/api/v10/applications/123/offers",
"exports": "/api/v10/applications/123/exports",
"documents": "/api/v10/applications/123/documents",
"references": "/api/v10/applications/123/references",
"scores": "/api/v10/applications/123/scores",
"tasks": "/api/v10/applications/123/tasks",
"pdf": "/api/v10/applications/123/pdf"
},
"124": {
"id": 124,
"created": "2025-10-27T08:22:40+00:00",
"revised": "2025-11-25T12:00:50+00:00",
"submitted": "2025-11-03T14:32:32+00:00",
"status": "Submitted",
"category": {
"id": 2,
"title": "International",
"colour": "#00ff00",
"mode": "Public"
},
"academic_term": "/api/v10/academic-terms/27",
"applicant": "/api/v10/applicants/322",
"flags": "/api/v10/applications/124/flags",
"courses": "/api/v10/applications/124/courses",
"offers": "/api/v10/applications/124/offers",
"exports": "/api/v10/applications/124/exports",
"documents": "/api/v10/applications/124/documents",
"references": "/api/v10/applications/124/references",
"scores": "/api/v10/applications/124/scores",
"tasks": "/api/v10/applications/124/tasks",
"pdf": "/api/v10/applications/124/pdf"
}
}POST Create an application
Create a new application with minimal initial data: applicant, intake and course.
Depending on the provided parameters, the 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 provided course is added to the application.
After creating an application, you can manage its content using the following requests:
- Update application data:
PATCH/api/v9/applications/ID/ - Add courses to the application:
POST/api/v10/applications/ID/courses - Set course priority:
PUT/api/v10/applications/ID/courses/ID/priority
Validation rules
The API validates the following conditions before processing the request:
- The applicant must have the citizenship set.
- The applicant must have the category set (if public categories are set up).
- The application limits must not be exceeded.
- An existing application must not be closed, withdrawn or expired.
The following limitations are not enforced during this request:
- Course-level restrictions (such as territory requirements)
- Intake limitations (such as category eligibility or territory-specific deadlines)
- Course status checks (for example,
Onlinevs.Standby)
If legacy business rules are enabled for the DreamApply instance, the request will be blocked.
Syntax
POST /api/v10/applications
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Name | Required/Optional | Description |
|---|---|---|
applicant | Required | The applicant ID. |
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
Request
curl
curl \
-X POST \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v10/applications?applicant=123&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/applications/123 | 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 |
400 Bad Request | A data validation check has failed, see the error description |
400 Bad Request | The course is already added to the application |