Applications

Represents a list of applications that have been submitted by the applicant.

URI
/api/v9/applicants/ID/wishes

GET List applications

Get a list of applications that have been filed by the applicant in question.

Syntax
GET /api/v9/applicants/123/applications
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/applications"

Response headers

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

Response codes

Response codeDescription
200 OKThe list of applications was successfully returned

Example response

Response
{
  "60": {
    "created": "2025-06-20T08:30:31+00:00",
    "revised": "2025-06-20T08:30:31+00:00",
    "submitted": null,
    "status": "Prepare",
    "commence_year": "2025",
    "applicant": "/api/v9/applicants/60",
    "flags": "/api/v9/applications/60/flags",
    "courses": "/api/v9/applications/60/courses",
    "offers": "/api/v9/applications/60/offers",
    "exports": "/api/v9/applications/60/exports",
    "documents": "/api/v9/applications/60/documents"
  }
}

POST Create an application

Create a new application with minimal initial data: 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 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:

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, Online vs. Standby)
Syntax
POST /api/v9/applicants/123/applications
Host: apply.example.edu
Authorization: DREAM apikey="..."

Parameters

NameRequired/OptionalDescription
intakeRequiredThe ID of the intake with which the course is associated
courseRequiredThe 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/v9/applicants/123/applications?intake=1&course=2"

Response headers

HeaderValueDescription
Content-Typetext/html; charset=UTF-8Media type of the resource
Content-Length0Size of the response body in bytes
Location/api/applicants/123/applications/321URI of the created/updated application

Response codes

Response codeDescription
201 CreatedA new application was successfully created/
The existing application was updated
400 Bad RequestThe required parameters are not set, see the error description
400 Bad RequestA data validation check has failed, see the error description
400 Bad RequestThe course is already added to the application