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 programmes/courses added to the catalog.
/api/v10/coursesView all API requests
| API request | Return Type | Verb | Description |
|---|---|---|---|
/api/v10/courses | C | GET HEAD | List all courses that match the specified filters |
/api/v10/courses | C | POST | Create a new blank course in the catalog |
/api/v10/courses/ID/ | R | GET HEAD | Get a course from the catalog |
GET List courses
List courses that match the specified filter parameters. The number of courses is returned in the X-Count header.
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/courses
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Header | Required/Optional | Description | Notes |
|---|---|---|---|
byInstitutionIds | Optional | A list of institution IDs to which the course belongs. | [1] |
byStatuses | Optional | A list of course statuses, currently limited to: Online, Standby, Draft, Archived, Template, Closed. | [1] |
byTypes | Optional | A list of course types. | [1] |
byModes | Optional | A list of course modes. | [1] |
byCodes | Optional | A list of public codes associated with courses. To find these codes, see the General > Code settings for a specific course. Filtering by internal codes is not supported. | [1] |
Notes
Note [1]: Lists can be either comma or space separated. All list items are combined with logical OR operators, meaning a course is included if it matches any value in the list.
Example request
curl \
-X GET \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v10/courses?byStatuses=Online&byTypes=UG"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | The media type of the resource |
Content-Length | 1234 | The size of the response body in bytes |
X-Count | 3 | The number of courses added to the catalog |
Response codes
| Response code | Description |
|---|---|
200 OK | The list of courses was successfully returned |
Example response
{
"16": {
"id": 16,
"status": "Online",
"updated": "2025-10-28T07:13:25+00:00",
"institution": "/api/v10/institutions/1",
"intakes": {
"9": "/api/v10/intakes/9",
"10": "/api/v10/intakes/10"
},
"featured": true,
"type": "UG",
"awards": [
{
"abbr": "BSc",
"full": "Bachelor of Science"
}
],
"name": "Data Structures and Algorithms",
"mode": "FT",
"duration": "2 years",
"credits": "18.0",
"language": "en~de",
"country": "BE",
"location": "Antwerp",
"code": "IT100",
"accreditation": "01/01/2023 until 31/12/2028",
"quota": 150,
"prospect": {
"uri": "engtech.edu/cs"
},
"department": "/api/v10/institutions/1/departments/4"
},
"18": {
"id": 18,
"status": "Online",
"updated": "2025-10-28T07:12:19+00:00",
"institution": "/api/v10/institutions/1",
"intakes": {
"9": "/api/v10/intakes/9",
"10": "/api/v10/intakes/10"
},
"featured": true,
"type": "UG",
"awards": [
{
"abbr": "BSc",
"full": "Bachelor of Science"
}
],
"name": "Applied Math",
"mode": "FT",
"duration": "2 years",
"credits": "18.0",
"language": "en~de",
"country": "BE",
"location": "Antwerp",
"code": null,
"accreditation": "01/01/2023 until 31/12/2028",
"quota": 150,
"prospect": {
"uri": "engtech.edu/cs"
},
"department": "/api/v10/institutions/1/departments/4"
}
}POST Create a course
Create a new blank course.
Use this API request to automatically import a list of courses from an external system, such as a Student Information System (SIS), into DreamApply.
Fully configuring a course in DreamApply requires an extensive set of fields, including settings for admission requirements, intakes, motivation letters and fees. Because external systems rarely store this data with the required level of detail, we recommend doing the following:
- Use this API request to import a basic list of courses containing core data.
- Fine-tune and fully configure the remaining course settings in the DreamApply portal using the dedicated data management tools.
POST /api/v10/courses
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Parameter | Required/Optional | Description |
|---|---|---|
institution | Required | The institution ID to which the course belongs. |
type | Required | The course type code: undergraduate, postgraduate and so on. To get possible type classificator values, use classificators or check System > Classificators in the DreamApply portal. |
mode | Required | The course mode code: full time, part time and so on. To get possible mode classificator values, use classificators or check System > Classificators in the DreamApply portal. |
name | Required | The course name. The allowed length is up to 2048 characters. |
awards_abbr | Optional | The abbreviation of the course award: BSc, MSc and so on. |
awards_full | Optional | The full name of the course award, for example, Bachelor of Science. The allowed length is up to 2048 characters. |
language | Optional | The course language, accepts a 2-letter (alpha-2) ISO language code. |
country | Optional | The course country, accepts an ISO 3166-1 alpha-2 country code. |
location | Optional | The location where the studies take place: city, district and so on. The allowed length is up to 256 characters. |
code | Optional | Any text to uniquely identify the course in another system, such as SIS or course catalogue. The allowed length is up to 128 characters. |
prospect_uri | Optional | A URL where the applicant can learn more about the course/programme. |
Example request
curl \
-X POST \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v10/courses?institution=1&type=UG&mode=PT&name=Data%20and%20AI"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | The media type of the resource |
Content-Length | 0 | The size of the response body in bytes |
Location | /api/courses/12345 | The URI of the created course |
Response codes
| Response code | Description |
|---|---|
201 Created | A new course was successfully created |
422 Unprocessable Entity | There were some validation errors (see the returned text) |