Applications

Represents a list of applications created or submitted by an applicant.

URI
/api/v10/applicants/ID/wishes

GET List applications

List all applications created or submitted by an applicant.

Syntax
GET /api/v10/applicants/123/applications
Host: apply.example.edu
Authorization: DREAM apikey="..."

Parameters

NameRequired/OptionalDescriptionNotes
expandOptionalOne 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

Request
curl
curl \
  -X GET \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  "https://apply.example.edu/api/v10/applicants/123/applications?expand=flags"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonThe media type of the resource
Content-Length1234The size of the response body in bytes
X-Count2The number of returned applications

Response codes

Response codeDescription
200 OKThe list of applications was successfully returned

Example response

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:

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, Online vs. Standby
Syntax
POST /api/v10/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/v10/applicants/123/applications?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/applicants/123/applications/321The 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 for details
400 Bad RequestA data validation check has failed, see the error description for details
400 Bad RequestThe course is already added to the application