Courses

Represents a list of courses that have been added to this application.

URI
/api/v9/applications/ID/courses

GET List courses

Get a list of course associations for the application in question.

An application can contain multiple courses (or “priorities”) that the applicant has chosen to apply to.

Courses is the technical name given to resources that applicants “can apply to”. In some educational systems students may apply to programmes, in others, to courses. Furthermore, in exchange setups courses represent the mobilities that can be applied to. In all these cases (course, programme, mobility etc.) the technical term will still remain “course”.

This request does not return the courses themselves, but rather represents the relationships between an application and the courses that have been added to it. Follow the course URI in the response to retrieve further information about the course in question.

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

Response headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the resource
Content-Length1456Size of the response body in bytes
X-Count2Number of courses added to the application

Response codes

Response codeDescription
200 OKThe list of courses was successfully returned

Example response

Response
{
  "1": {
    "priority": 1,
    "submitted": "2025-09-29T07:44:26+00:00",
    "deadline": "2025-06-01T23:59:59+00:00",
    "course": "/api/v9/courses/1",
    "intake": "/api/v9/intakes/2",
    "modifier": null
  },
  "2": {
    "priority": 2,
    "submitted": "2025-10-02T12:31:47+00:00",
    "deadline": "2025-06-01T23:59:59+00:00",
    "course": "/api/v9/courses/2",
    "intake": "/api/v9/intakes/2",
    "modifier": "On-campus housing"
  }
}

POST Add a course to the application

Add a course (priority) to an application.

The added course is assigned the lowest priority in the application by default. To change the course priority, use PUT /api/v9/applications/ID/courses/ID/priority.

The course is added to the application regardless of the set course-level restrictions, such as territory requirements.

Syntax
POST /api/v9/applications/ID/courses
Host: apply.example.edu
Authorization: DREAM apikey="..."

Parameters

NameRequired/OptionalDescription
intakeRequiredThe ID of the intake with which the course is associated
courseRequiredThe course ID

Example request

Request
curl
curl \
  -X POST \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  "https://apply.example.edu/api/v9/applications/123/courses?intake=1&course=2"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the resource
Location/api/applications/123/courses/321URI of the added course

Response codes

Response codeDescription
201 CreatedThe course was successfully added to the application
400 Bad RequestThe course is already added to the application
400 Bad RequestThe request contains invalid or incompatible values, see the error description