Score

Represents a single score on the scoresheet (points & metadata).

URI
/api/v9/scoresheets/ID/scores/ID

GET Get a score

Return information about a scoresheet score.

Syntax
GET /api/v9/scoresheets/123/scores/321
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/scoresheets/123/scores/321"

Response headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the resource
Content-Length1234Size of the response body in bytes

Response codes

Response codeDescription
200 OKThe score data was successfully returned
404 Not FoundThe score was not found

Example response

Response
{
  "scored": "2025-12-17T08:45:44+00:00",
  "scoresheet": "/api/v9/scoresheets/4",
  "application": "/api/v9/applications/123",
  "offer": null,
  "points": "87.00",
  "comments": "Copied from transcript",
  "date": "2025-02-01",
  "reference": "BG450-009",
  "subject": null,
  "language": "en",
}

PUT Set a score

Set the points of a scoresheet score to a particular value, along with any additional metadata that is specified.

The difference between the PUT and PATCH methods comes down to the fact that PUT will cleanly overwrite all the metadata, while PATCH only touches the metadata that is specified in the request. The “points” value must be specified in both cases. Metadata fields are all optional.

This will still run all validation checks and will not permit illegal point values to be entered that fall out of the accepted range as set in the scoresheet settings. If setting mapped values (for example if 5 = Excellent), the numeric value must be sent.

Syntax
PUT /api/v9/scoresheets/123/scores/321
Host: apply.example.edu
Authorization: DREAM apikey="..."

Request headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the resource
AuthorizationDREAM apikey="YOUR-API-KEY"DreamApply API key

Raw request body

Write the points and metadata into the request body as a JSON object.

Note that the points value must be a string. You can set 0 points (which is perfectly valid) as 0 or 0.0 or 0.00, as you please. But you cannot clear the points using this request.

Request body
{
  "points": "3.14",
  "comments": "Some comments",
  "date": "2025-01-30",
  "language": "it",
  "reference": "Diploma nr. 789",
  "subject": "Mathematics"
}

The metadata fields are validated and sanitised, similarly to the admin interface.

  • comments: up to 2048 characters
  • date: a valid YYYY-MM-DD date (must not be in the future)
  • language: a valid ISO 639-1 Alpha2 abbreviation
  • reference: up to 64 characters
  • subject: up to 64 characters

However, the API will allow omitting a metadata field, even if it has been marked as required and is enforced as such for regular administrators or applicants.

Alternatively, it is also possible to pass the parameters as URL query parameters, such as ?points=10&language=es.

Example request

Request
curl
curl \
  -X PUT \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  -H "Content-Type: application/json" \
  -d '{
  "points": "80.00",
  "comments": "Some comments",
  "date": "2025-01-30",
  "language": "it",
  "reference": "Diploma nr. 789",
  "subject": "Mathematics"
}' \
  "https://apply.example.edu/api/v9/scoresheets/123/scores/321"

Response headers

HeaderValueDescription
Content-Typetext/plainMedia type of the resource
Content-Length0Size of the response body in bytes

Response codes

Response codeDescription
204 No ContentThe points (and metadata) were successfully saved
404 Not FoundThe scoresheet does not have this score
400 Bad RequestThe points value (or one of the metadata values) did not pass the validation tests

PATCH Set a score

Set the points of a scoresheet score to a particular value. Any specified metadata will also be updated. Other metadata will remain unchanged.

The difference between the PUT and PATCH methods comes down to the fact that PUT will cleanly overwrite all the metadata, while PATCH only touches the metadata that is specified in the request. The “points” value must be specified in both cases. Metadata fields are all optional.

This will still run all validation checks and will not permit illegal point values to be entered that fall out of the accepted range as set in the scoresheet settings. If setting mapped values (for example if 5 = Excellent), the numeric value must be sent.

Syntax
PATCH /api/v9/scoresheets/123/scores/321
Host: apply.example.edu
Authorization: DREAM apikey="..."

Raw request body

Write the points and metadata into the request body as a JSON object.

Note that the points value must be a string. You can set 0 points (which is perfectly valid) as “0” or “0.0” or “0.00”, as you please. But you cannot clear the points using this request.

Request body
{
  "points": "3.14",
  "comments": "Some comments",
  "date": "2025-01-30",
  "language": "it",
  "reference": "Diploma nr. 789",
  "subject": "Mathematics"
}

The metadata fields are validated and sanitised, similarly to the admin interface.

  • comments: up to 2048 characters
  • date: a valid YYYY-MM-DD date (must not be in the future)
  • language: a valid ISO 639-1 Alpha2 abbreviation
  • reference: up to 64 characters
  • subject: up to 64 characters

However, the API will allow omitting a metadata field, even if it has been marked as required and is enforced as such for regular administrators or applicants.

Alternatively, it is also possible to pass the parameters as URL query parameters, such as ?points=10&language=es.

Example request

Request
curl
curl \
  -X PATCH \
  -H "Authorization: DREAM apikey=\"YOUR-API-KEY\"" \
  -H "Content-Type: application/json" \
  -d '{
  "points": "80.00",
  "comments": "Some comments",
  "date": "2025-01-30",
  "language": "it",
  "reference": "Diploma nr. 789",
  "subject": "Mathematics"
}' \
  "https://apply.example.edu/api/v9/scoresheets/123/scores/321"

Response headers

HeaderValueDescription
Content-Typetext/plainMedia type of the resource
Content-Length0Size of the response body in bytes

Response codes

Response codeDescription
204 No ContentThe points (and metadata) were successfully saved
404 Not FoundThe scoresheet does not have this score
400 Bad RequestThe points value (or one of the metadata values) did not pass the validation tests