Applications

Represents a list of created applications.

URI
/api/v10/applications

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

NameRequired/OptionalDescriptionNotes
byAcademicYearRequired (either one)A single 4-digit academic year to filter applications by.
byAcademicYearsA list of academic years to filter applications by.
byAcademicTermIDAn academic term ID to filter applications by.
byCommenceYearDeprecatedA single 4-digit year to filter applications by.Use the byAcademicTermID, byAcademicYear or byAcademicYears parameters instead.
byApplicantIDsOptionalA list of applicant IDs to filter applications by. Returns applications that belong to any of the specified applicants.[1]
byStatusesOptionalA list of application statuses to filter by.[1]
byCreatedSinceOptionalAn ISO 8601 datetime from which to start retrieving results. Returns applications created on or after the specified date and time.
byRevisedSinceOptionalAn ISO 8601 datetime from which to start retrieving results. Returns applications revised on or after the specified date and time.
bySubmittedSinceOptionalAn ISO 8601 datetime from which to start retrieving results. Returns applications submitted on or after the specified date and time.
byCourseIDsOptionalA list of course IDs to filter applications by. Returns applications that contain at least one of the specified courses.[1]
byCourseTypesOptionalA list of course types to filter applications by. Returns applications that contain at least one of the specified course types.[1]
byCourseInstitutionIDsOptionalA list of institution IDs to filter applications by. Returns applications that contain at least one course from the specified institutions.[1]
byCourseIntakeIDsOptionalA list of intake IDs to filter applications by. Returns applications that contain at least one course under the specified intakes.[1]
byOfferTypesOptionalA list of offer types to filter applications by. Returns applications that contain at least one of the specified offer types.[1], [2]
byOfferDecisionsOptionalA list of offer decisions by filter applications by.[1], [2]
byOfferInstitutionIDsOptionalA list of institution IDs to filter applications by. Returns applications that contain at least one offer from the specified institutions.[1]
byFlagIDsOptionalA flag ID to filter applications by.[1], [3]
limitOptionalThe 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.
expandOptionalOne 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 OR operators, 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 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. Using this parameter caps to limit to 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

HeaderValueDescription
Content-Typeapplication/jsonThe media type of the resource
Content-Length1456The size of the response body in bytes
X-Count15The number of matching applications

Response codes

Response codeDescription
200 OKThe list of applications was returned
400 Bad RequestOne 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:

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/v10/applications
Host: apply.example.edu
Authorization: DREAM apikey="..."

Parameters

NameRequired/OptionalDescription
applicantRequiredThe applicant ID.
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/v10/applications?applicant=123&intake=1&course=2"

Response headers

HeaderValueDescription
Content-Typetext/html; charset=UTF-8The media type of the resource
Content-Length0The size of the response body in bytes
Location/api/applications/123The URI 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