Delivery OData Feeds

Administrators Administrator
Methods Supported:
 
  • GET – feed is read only
Filters supported:
 
  • ID – primary key
  • Name – administrator name
Expansions supported:
 
  • Groups – associated groups

The Administrators feed contains data about users with administrator roles in the user data base. A user with an administrator role is defined as being a user with any role other than special Participant role.

Answers Answer (Media Link Entry)
Methods Supported:
 
  • GET – feed is read only
Filters supported:
 
  • QuestionID – ID of the associated Question
  • ResultID – ID of the associated Result
Expansions supported:
 
  • Question – expands the associated Question
  • Result – expands the associated Result
  • ScoringTask – expands the associated ScoringTask, due to a known issue this expansion will only return entities that are associated with a ScoringTask.

The Answers feed contains detailed information about the answers given by participants. Each question that a participant answers generates a unique record in this feed.

AnswerUploads AnswerUpload (Media Link Entry)
Methods Supported:
 
  • GET – returns AnswerUpload metadata entities
  • POST – submits new AnswerUpload file for scoring

The AnswerUpload feed is used for external delivery use cases where response data is obtained externally (e.g., through printing and scanning) and must be submitted for scoring through the API. It also maintains a record of the raw response data in its uploaded form for future audit.

Assessments Assessment
Methods Supported:
 
  • GET – feed is read only
Filters supported:
 
  • ID – primary key
  • Name – assessment name
Expansions supported:
 
  • Results – expands the associated Results

The Assessments feed provides information about the assessment catalog. That is, all the assessments that have been published for delivery.

AssessmentSnapshots AssessmentSnapshot
Methods Supported:
 
  • GET – reading snapshot entities
  • POST – creating snapshot entities
  • PATCH – some properties may be updated, see entity for details
Filters supported:
 
  • ID – primary key
  • AssessmentID – the assessment used to create the snapshot

The AssessmentSnapshots feed contains information about snapshots of assessments. Snapshots are versions of an assessment that have fixed any randomisation, such as which questions are picked and the order they are presented, including the order of any shuffled choices. Snapshots are used for making an exact record of the assessment that was delivered to the participant. At the time of writing they are used only for external delivery workflows, including printing and scanning.

AssessmentSnapshotsData AssessmentSnapshotData (Media Link Entry)
Methods Supported:
 
  • GET – feed is read only
Filters supported:
 
  • ID – primary key

An auxiliary feed to AssessmentSnapshots which contains the raw XML data describing the snapshot. Values are normally obtained by navigation from the associated deliveryodata.AssessmentSnapshot rather than directly.

Attempts Attempt
Methods Supported:
 
  • GET – reading attempt entities
  • POST – creating attempt entities
Filters supported:
 
  • ID – primary key
Expansions supported:
 
  • AttemptMetadata – expands the optional metadata
  • AnswerUpload – expands the optional associated AnswerUpload
  • AttemptList – expands the optional associated AttemptList

The Attempts feed contains an entry for each attempt at an assessment. Attempts represent the authority to take a test and link to a specific participant, a specific assessment and (sometimes) a specific snapshot. There are also properties that can be used to control the security of the test.

The attempt flow is a relatively new way of providing access to launch tests through the APIs. Currently only used for specialist use cases such as online proctoring and printing and scanning the scope of the Attempts feed is gradually widening to provide a general platform for use by external systems that maintain their own business rules.

AttemptMetadata AttemptMetadata
Methods Supported:
 
  • GET – reading attempt metadata key-value pairs
  • POST – creating attempt metadata key-value pairs
Filters supported:
 
  • ID – primary key
Expansions supported:
 
  • Attempt – expands the associated Attempt

The attempt metadata feed allows arbitrary metadata to be associated with an attempt. Although entities can be created and accessed directly from this feed they are always associated with an Attempt and can be created in a single OData call at the same time as the Attempt itself. For example:

POST <service root>/Attempts
Content-Type: application/json

{
    ExternalAttemptID: "Demo/2016-10-07.3",
    ParticipantID: 1459320309,
    AssessmentID: "9788463565326947",
    AttemptMetadata: [
        {
            Key: "S1",
            Value: "Help"
        },
        {
            Key: "S2",
            Value: "Me!"
        }
    ]
}

The response is a new Attempt record:

201 Created
Content-Type: application/json; charset=utf-8

{
    "odata.metadata": "<service root>/$metadata#Attempts/@Element",
    "ID": 180,
    "ParticipantFacingQMLobbyUrl": null,
    "ProctorFacingQMControlsWidgetUrl": "https://...",
    "ExternalAttemptID": "Demo/2016-10-07.3",
    "ParticipantID": 1459320309,
    "AssessmentID": "9788463565326947",
    "AssessmentSnapshotID": null,
    "ResultID": null,
    "LockStatus": false,
    "LockRequired": false,
    "ParticipantFacingProctorSystemWidgetUrl": null,
    "LastModifiedDateTime": "2016-10-07T16:20:00.341227Z",
    "Language": null,
    "AttemptListID": null
}

You can see the newly created metadata records by expanding the AttemptMetadata:

GET <service root>/Attempts(180)?$expand=AttemptMetadata

200 OK
Content-Type: application/json; charset=utf-8

{
    odata.metadata: "<service root>/$metadata#Attempts/@Element",
    AttemptMetadata: [
        {
            Id: 2,
            AttemptId: 180,
            Key: "S1",
            Value: "Help"
        },
        {
            Id: 3,
            AttemptId: 180,
            Key: "S2",
            Value: "Me!"
        }
    ],
    ID: 180,
    ParticipantFacingQMLobbyUrl: "qmsb:...",
    ProctorFacingQMControlsWidgetUrl: "https://...",
    ExternalAttemptID: "Demo/2016-10-07.3",
    ParticipantID: 1459320309,
    AssessmentID: "9788463565326947",
    AssessmentSnapshotID: null,
    ResultID: null,
    LockStatus: false,
    LockRequired: false,
    ParticipantFacingProctorSystemWidgetUrl: null,
    LastModifiedDateTime: "2016-10-07T16:20:00.34Z",
    Language: null,
    AttemptListID: null
}
AttemptLists AttemptList

New in version OnDemand: 2016.09

Methods Supported:
 
  • GET – reading attempt list entities
  • POST – creating attempt list entities
Filters supported:
 
  • ID – primary key
Expansions supported:
 
  • Attempts – expands the associated Attempts

The AttemptLists feed supports the arbitrary grouping of attempts allowing a pre-defined group of attempts to be managed by a single proctor or external business process.

Dimensions Dimension
Methods Supported:
 
  • GET – this feed is read only
Filters supported:
 
  • ID – primary key
Expansions supported:
 
  • Rubric – expands the associated Rubric
  • DimensionScores – expands the associated collection of scores

The Dimensions feed contains information about the scoring dimensions associated with a rubric and is used for subjective marking.

DimensionScores DimensionScore
Methods Supported:
 
  • GET – for reading individual scores
  • PUT – for updating the scores
Filters supported:
 
  • QuestionID – note that ordering is not supported
  • Order – supports $orderby only, cannot be used as a filter
Expansions supported:
 
  • Rubric – expands the associated Rubric
  • Dimension – expands the Dimension of the Rubric

The DimensionScores feed contains information about the actual scores awarded to an answer by a subjective marking process on a per-dimension basis.

Groups Group
Methods Supported:
 
  • GET – read only
Filters supported:
 
  • ID – primary key
  • Name – filtering by group name
Expansions supported:
 
  • Administrators – the administrators responsible for the group
  • Participants – the participant members of the group
  • SubGroups – the optional list of sub-groups
  • ParentGroup – the optional parent group (see warning)
  • PrintBatches – the optional list of associated PrintBatches

The Groups feed contains data about groups of participants. Entries are defined by the Group type.

Participants Participant
Methods Supported:
 
  • GET – read only
Filters supported:
 
  • ID – primary key
  • Name – filtering by participant name
Expansions supported:
 
  • Groups – the collection of groups this participant is a member of

The Participants feed contains data about users that have the special Participant role.

PrintBatches PrintBatch

The PrintBatches feed contains information about a group of users who have been assigned a particular snapshot of an assessment to take externally, typically through printing and scanning.

Questions Question
Methods Supported:
 
  • GET – read only
Filters supported:
 
  • ID – primary key
  • QuestionType – see note in entity type on space padding

The Questions feed contains records describing all the questions in the assessment catalog.

QuestionTranslations QuestionTranslation

An auxiliary feed to Questions containing translated versions of the Questions.

Results Result
Methods Supported:
 
  • GET – read only
Filters supported:
 
  • ID – primary key
  • AssessmentID – the related assessment
  • ParticipantName – for filtering by Participant
  • GroupName – for filtering by Group
  • WhenFinished – for filtering by data of submission
Expansions supported:
 
  • Answers – the answers associated with this result

The Results feed contains data about assessment results. Entries are defined by the deliveryodata.Result type.

Rubrics Rubric
Methods Supported:
 
  • GET – read only

The Rubrics feed contains the scoring rules for subjective questions.

ScoringResults ScoringResult
Methods Supported:
 
  • GET – for reading scoring results
  • PUT – for updating the score
Filters supported:
 
  • QuestionID – the question being answered
  • ResultID – the result that generated the scoring task
Expansions supported:
 
  • ScoringTask – the task
  • Rubric – the scoring rules
  • DimensionScores – the individual dimension scores

The Scoring Results feed contains the scores awarded by subjective marking. ScoringResults are associated with ScoringTasks.

ScoringTasks ScoringTask
Methods Supported:
 
  • GET – for reading scoring tasks
  • PUT – for updating the status of a scoring task
Filters supported:
 
  • QuestionID – the question being answered
  • ResultID – the result that generated the scoring task
  • Status – the status of the scoring task
Expansions supported:
 
  • Assessment – expands the assessment that was being taken
  • Question – expands the question that was answered
  • Result – expands the result that generated the scoring task
  • Answer – expands the answer that generated the scoring task
  • Group – expands the optional Group related to this task
  • ScoringResult – use with caution, see ScoringTask.ScoringResult for details

The ScoringTasks feed contains one entity for each Answer that requires subjective scoring. The scores actually awarded are in the associated ScoringResult.