Journal
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 the DreamApply journal and provides access to journal events that occur in the system.
/api/v10/journalGET List events
List journal events that match the specified filter parameters. The number of events is returned in the X-Count header.
This API request is important for synchronizing data from DreamApply with external systems. To detect when relevant events occur in the system, use this API request to poll the API regularly and store either of the following values:
logged: The event timestampid: The incremental ID of the last processed event
For subsequent requests, use the stored timestamp or ID in the bySince parameter. For example, if the last processed event was 123, the next request should use ?bySince=124. This request will return events starting from 124 (inclusive), skipping all events up to and including 123.
For example, to copy data to your system when an applicant is assigned a specific offer type, poll for the Offer was edited: ? event. DreamApply logs this event each time an offer is edited. Go over the list of returned events, identify those that match the required offer type and continue to retrieve the required data such as applicants, documents or applications.
For performance reasons, this request returns events for the previous 6 months only. If you need access to earlier events, contact the DreamApply team to request an exemption.
GET /api/v10/journal
Host: apply.example.edu
Authorization: DREAM apikey="..."Parameters
| Name | Required/Optional | Description | Notes |
|---|---|---|---|
byEvents | Required | A list of journal events to return. For details, see Event list. | [1] |
bySince | Optional | An ISO datetime or journal event ID from which to start retrieving results (inclusive). | [2] |
byUntil | Optional | An ISO datetime or journal event ID at which to stop retrieving results (inclusive). | [2] |
byAcademicYear | Optional | A single 4-digit academic year to filter events by. | [5] |
byAcademicYears | Optional | A list of academic years to filter events by. | [5] |
byAcademicTermID | Optional | An academic term ID to filter events by. | [5] |
order | Optional | Specifies the sort order for results. Allowed values: newest-first, oldest-first. The default is oldest-first. If an invalid value is provided, the default value is used. For details, see Ordering and grouping events. | [3] |
limit | Optional | The maximum number of events to return. The allowed range is 1 to 1024. The default is 1024. When the expand parameter is used, the maximum is 512. Values above the limit are capped without error. | [3] |
expand | Optional | One or more related entities to include in the response, for example, applicant,offer. | [4] |
Notes
- Note [1]: The list must be comma-separated. All list items are combined with logical
ORoperators, meaning a journal event is included if it matches any value in the list. For details, see Event list. - Note [2]: An ISO 8601 compatible datetime or the journal event ID to start from (inclusive). The event IDs are sequential integers, so you can save the last processed ID and issue the next request with
bySince=$lastID+1. - Note [3]: For backwards compatibility reasons, the default order/limit are set to
oldest-firstand 1024, respectively. In many cases, for example, when polling for new events, you can fetch the last 10 items. To do this, setordertonewest-firstandlimitto 10. - Note [4]: Some elements in the returned objects are links to other API requests. Using the
expandparameter, you can expand this data to the actual records, saving additional API requests. The full list of possible expansions isadministrator,applicant,application,course,institution,invoice,offer,document,flag,tracker. To request multiple expansions, combine them as a comma-separated list in theexpandparameter. Use of this parameter caps tolimitto 512 for performance reasons. Theinvoiceexpansion is not available when the API key is limited to an institution. - Note [5]: Some events are not associated with any applications and these filters are thus unavailable. If you choose an incompatible event and set the
byAcademicTermIDorbyAcademicYearfilter, an error will be returned.
Example request
curl \
-X GET \
-H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
"https://apply.example.edu/api/v10/journal?byEvents=Application%20was%20submitted&order=newest-first&limit=5&expand=application"Response headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | The media type of the resource |
Content-Length | 1456 | The size of the response body |
X-Count | 15 | The number of matching journal events |
Response codes
| Response code | Description |
|---|---|
200 OK | The list of matching journal events was successfully returned |
400 Bad Request | One of query parameters is invalid, see the error description |
Example response
{
"1000": {
"id": 1000,
"logged": "2026-05-28T09:32:31+00:00",
"event": "Application was submitted",
"bind": [],
"applicant": "/api/v10/applicants/321",
"application": {
"id": 123,
"created": "2026-05-28T09:31:41+00:00",
"revised": "2026-05-28T09:32:17+00:00",
"submitted": "2026-05-28T09:32:31+00:00",
"status": "Reopened",
"category": {
"id": 2,
"title": "International",
"colour": "#00ff00",
"mode": "Public"
},
"academic_term": "/api/v10/academic-terms/10",
"applicant": "/api/v10/applicants/321",
"flags": "/api/v10/applications/123/flags",
"courses": "/api/v10/applications/123/courses",
"offers": "/api/v10/applications/123/offers",
"exports": "/api/v10/applications/123/exports",
"documents": "/api/v10/applications/123/documents",
"references": "/api/v10/applications/123/references",
"scores": "/api/v10/applications/123/scores",
"tasks": "/api/v10/applications/123/tasks",
"pdf": "/api/v10/applications/123/pdf",
"interviews": "/api/v10/applications/123/interviews"
}
},
"1001": {
"id": 1001,
"logged": "2026-05-15T06:47:58+00:00",
"event": "Application was submitted",
"bind": [],
"applicant": "/api/v10/applicants/322",
"application": {
"id": 124,
"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/322",
"flags": "/api/v10/applications/124/flags",
"courses": "/api/v10/applications/124/courses",
"offers": "/api/v10/applications/124/offers",
"exports": "/api/v10/applications/124/exports",
"documents": "/api/v10/applications/124/documents",
"references": "/api/v10/applications/124/references",
"scores": "/api/v10/applications/124/scores",
"tasks": "/api/v10/applications/124/tasks",
"pdf": "/api/v10/applications/124/pdf",
"interviews": "/api/v10/applications/124/interviews"
}
}
}