This is an old revision of the document!


/api/journal

FIXME This API call is at the moment only available for invited testers.

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.

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.

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.)
Application was created New application was created (applicant can have several applications)
Application was edited Application was saved
Application was submitted Application was submitted successfully
Application was re-submitted Application was submitted after being reopened previously
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 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..
Application was flagged A flag was added to the application
Offer was edited: ? Offer contents were changed
Offer was confirmed: ? Offer was sent out
Course was added to application Should be self-explanatory
Course was removed from application Should be self-explanatory
Document was uploaded A document was uploaded
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 collected 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.