Courses

Represents a list of courses added to an application.

URI
/api/v10/applications/ID/courses

GET List courses

List all course associations for an application. The application can contain multiple courses (priorities) that the applicant has chosen to apply to.

This API request does not return the courses themselves. It represents relationships between an application and courses added to it. Follow the course URI in the response to retrieve further information about a specific course.

Courses is the technical term for the resources to which applicants apply. In some educational systems, these resources can be referred to as programmes or courses. Additionally, in exchange setups, courses represent the mobilities available for application. In all variations — courses, programmes, mobilities — the technical term still remains “course”.

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

Response headers

HeaderValueDescription
Content-Typeapplication/jsonThe media type of the resource
Content-Length1456The size of the response body in bytes
X-Count2The number 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/v10/courses/1",
    "intake": "/api/v10/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/v10/courses/2",
    "intake": "/api/v10/intakes/2",
    "modifier": "On-campus housing"
  }
}

POST Add a course to the application

Add a course (priority) to an application.

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

This API request adds a course to the application regardless of the configured course-level restrictions, such as territory requirements.

Syntax
POST /api/v10/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/v10/applications/123/courses?intake=1&course=2"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonThe media type of the resource
Location/api/applications/123/courses/321The URI 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