This is an old revision of the document!
/api/journal
HEAD, GET
List journal events from the system using the filters set as parameters. The number of journal events matching the search options is represented in the X-Count
header - use the HEAD
request to simply check if anything interesting has happened in the system. Use the GET
request to actually fetch the events and follow them up on.
This is an important API call, as in many cases you may want to pull some information from DreamApply to your systems. In order to know when something interesting has happened in the system, just poll this API call regularly, each time saving the time of the last request. For next requests, use the stored timestamp for the bySince
param.
For example, if you want to copy data to your system once an applicant's offer is Enrolled
, simply poll for the Offer was edited: ?
event. This event is logged each time an offer is edited. If you go over the list of events received, you can easily pick out the ones where the status is Enrolled
and continue to poll more information about these applicants (documents, application data etc.)
Syntax
GET /api/journal Host: apply.example.edu Authorization: DREAM apikey="..."
Parameters
Name | Description | Notes | |
---|---|---|---|
byEvents | Optional | List of journal events you are interested in | [1] |
bySince | Optional | A date from which you want to start searching from | [2] |
- Note [1]: See the list of journal events below. The list must be comma-separated. All list items are combined with logical
OR
operators - in other words a journal event is considered matching if it matches to any of the values provided in the list. - Note [2]: An ISO 8601 compatible date(time)
Response headers
Content-Type: application/json Content-Length: 1456 X-Count: 123
Response codes
400 Bad Request | One of the filters has bad parameters (see error description) |
Ordering of the results
The returned journal events are ordered chronologically, so that the oldest events come first and the most recent event is last. The order is guaranteed even if the events happened in the same second.
There is also a hard limit of maximum 1024 records returned as the number of journal events can be very large indeed. If you receive 1024 records, it is most likely being limited.
Response example
{ "123": { "logged": "2014-06-20T08:13:41+00:00", "event": "Application was created", "bind": [], "applicant": "/api/applicants/123", "application": "/api/applications/321" } }
List of journal events
Event | |
---|---|
Applicant registered | A new applicant account was created |
Applicant was deleted | Applicant account was soft-deleted |
Applicant decision: ? | Applicant made a decision (accept/reject offer etc.) |
Applicant requested to be forgotten | Applicant issued a Right to be Forgotten request |
Application was created | New application was created (applicant can have several applications) |
Application was edited | Application was saved |
Course was added to application | Should be self-explanatory |
Course was removed from application | Should be self-explanatory |
Application was submitted | Application was submitted successfully |
Application was re-submitted | Application was submitted after being reopened previously |
Application was flagged | A flag was added to the application |
Application was un-flagged | A flag was removed to the application |
Application was reopened | Application was reopened for applicant to make changes |
Application was silenced | Reminders were stopped regarding an application |
Application was un-silenced | Reminders were re-activated |
Application was migrated | Application was migrated to a different year/intake |
Application was frozen | |
Application was defrosted | |
Application was closed | Application was soft-deleted |
Application was reverted | Application soft-deletion was reverted (undelete) |
Application was marked as inactive | Application was not touched for a long time.. |
Referee was added to an application | Referee was added to an application |
Referee was removed from an application | Referee was removed from an application |
Document was added to an application | Document was added to an application |
Document was removed from an application | Document was removed from an application |
Media was added to an application | A media (direct upload or 3rd party like YouTube, SoundCloud, Vimeo, ..) was added to an application |
Media was removed from an application | A media (direct upload or 3rd party like YouTube, SoundCloud, Vimeo, ..) was removed from an application |
Application was shared with: ? | A share access was issued for an application |
Application share was revoked | A share access was revoked for an application |
Offer was edited: ? | Offer contents were changed |
Offer was confirmed: ? | Offer was sent out |
Document was uploaded | A document was uploaded |
Media was uploaded | A media file was uploaded directly to DreamApply |
Media was added | A 3rd party media Media (YouTube, SoundCloud, Vimeo, ..) was added |
Interview was started | A video interview was started by applicant |
Interview was completed | A video interview was completed by applicant |
Referee was invited | A referee was invited to submit a reference |
Referee was reminded | A reminder (one and only) was sent to the referee |
Referee committed reference | Referee finished the reference for an applicant |
Invoice was issued | A new invoice was issued |
Invoice was reminded | A payment reminder was sent in relation to an invoice |
Invoice was marked as paid | Funds were collected regarding an invoice (may be partially collected) |
Task was committed as: ? | Task status was changed but not yet resolved |
Task was resolved as: ? | Task status was changed to a status that is “successful” |
Task was commented | Comments field was changed on a task |
In some events, the name contains wildcards in the form of a question mark ?
. This is used to “group” some very similar events together, in cases where the only differentiating factor is the status that something was set to etc.