Tasks

Represents a list of tasks created for the application.

URI
/api/v9/applications/ID/tasks

GET List tasks

List all tasks that have been generated for the application in question. Use the HEAD verb to see if there are any tasks yet. The X-Count header will indicate the number of tasks.

Tasks are created automatically for each application by the Business Rules Engine, depending on the rules set up for each client. The tasks can be completely customized in their title, description (e.g instructions) and available statuses for the applicant to pick.

This subsystem of DreamApply will see some internal changes in the near future, hence only the critical functionalities have been exposed by the API in order to avoid possible back-compat breaks in otherwise non-critical areas. Namely, the class (type of task) and status name are exposed, along with some other metadata. These should provide for most use cases.

In the future, also the status descriptions will be exposed — titles, instructions, information about reminders etc.

Syntax
GET /api/v9/applications/123/tasks
Host: apply.example.edu
Authorization: DREAM apikey="..."

Example request

Request
curl
curl \
  -X GET \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  "https://apply.example.edu/api/v9/applications/123/tasks"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the resource
Content-Length1234Size of the response body in bytes
X-Count4Number of tasks created for this application

Response values

NameDescription
createdDate when the task was created
remindedDate when the applicant was last reminded. If null then no reminders yet.
committedDate when the task was last saved by the applicant or admin (last modified). If null then has not yet been touched by anybody and is in its initial status.
resolvedDate when the task was finally resolved. If null, then the task is still not resolved - a sufficiently advanced status has not been assigned.
classThis is essentially the type of the task.
statusThe status that is currently assigned to the task. Note that this is the name of the status and should be a reliable identifier. In some cases, the title (as opposed to the name) of the status that is actually displayed, may be different. Name of the status (here) should be as concise as possible, title may be much more verbose, along with an even more verbose description. So you may think of the name as a ‘slug’.
notesNotes made by applicant or admin, separately.

Response codes

Response codeDescription
200 OKThe list of tasks was successfully returned

Example response

Response
{
  "20": {
    "id": 20,
    "created": "2025-12-03T13:11:08+00:00",
    "reminded": "2025-15-03T13:10:00+00:00",
    "committed": null,
    "resolved": null,
    "class": "checklist-language-english",
    "title": "Proof of English language proficiency",
    "status": "I have NOT yet taken a language test",
    "notes": {
      "applicant": "I need help",
      "administrator": null
    }
  },
  "21": {
    "id": 21,
    "created": "2025-12-03T13:11:08+00:00",
    "reminded": "2025-15-03T13:10:00+00:00",
    "committed": null,
    "resolved": null,
    "class": "checklist-entry-se",
    "title": "Entry qualification documents",
    "status": "I have finished high school / secondary school. I am preparing the documents for submission (final diploma and academic records)",
    "notes": {
      "applicant": null,
      "administrator": "Looks good!"
    }
  }
}

POST Assign a task

Create a new task for the application in question. If required in the task template (class), a notice/reminder will also be sent to the applicant.

Syntax
POST /api/v9/applications/123/tasks
Host: apply.example.edu
Authorization: DREAM apikey="..."

Parameters

NameRequired/OptionalDescription
taskClassIDRequiredThe ID of the task template (class) to use

Example request

Request
curl
curl \
  -X POST \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  "https://apply.example.edu/api/v9/applications/123/tasks?taskClassID=15"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the resource
Content-Length0Size of the response body in bytes
Location/api/applications/123/tasks/321URI of the assigned task

Response codes

Response codeDescription
201 CreatedA new task was created, see also the returned Location header
409 ConflictA task form this template (class) already exists in this application