Courses
API version
Select a version to change the base URI
in syntax and code examples. Learn about versions:
in syntax and code examples. Learn about versions
Represents a list of courses added to an application.
/api/v10/applications/ID/coursesGET 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”.
GET /api/v10/applications/123/courses
Host: apply.example.edu
Authorization: DREAM apikey="..."Example request
curl \
-X GET \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v10/applications/123/courses"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | The media type of the resource |
Content-Length | 1456 | The size of the response body in bytes |
X-Count | 2 | The number of courses added to the application |
Response codes
| Response code | Description |
|---|---|
200 OK | The list of courses was successfully returned |
Example 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.
POST /api/v10/applications/ID/courses
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Name | Required/Optional | Description |
|---|---|---|
intake | Required | The ID of the intake with which the course is associated |
course | Required | The course ID |
Example request
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
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | The media type of the resource |
Location | /api/applications/123/courses/321 | The URI of the added course |
Response codes
| Response code | Description |
|---|---|
201 Created | The course was successfully added to the application |
400 Bad Request | The course is already added to the application |
400 Bad Request | The request contains invalid or incompatible values, see the error description |