Get Aggregate Oral Reading Measures for Students
Use this to calculate the aggregate Lexile oral reading measure for the aggregate of performances.
Overview
- Send a list of
performanceIDs
that you received as a response using the Get Oral Reading Measures for Students call. - Send student performance data from one or more performances and a Lexile oral readability measure for the text associated with each performance to receive an aggregate Lexile oral reading measure.
Use the inputType
parameter to indicate which you are trying to use
and make sure you pass the correct parameters for the inputType
you
selected.
URI
reader/performance/ability/aggregate
Parameters
You can include these parameters in your request. If you're making a request with the
performanceID inputType
, you will need to pass performance ids
received from a Get Oral Reading Measures for Students call.
If you're making a request with the characteristics inputType
, you
will not need to pass performanceId
but will need to use the
parameters in the Table 3 table.
Parameter | Format | Description |
---|---|---|
Authorization |
String | Your access token should be included in the header of your request.
If you need an accessToken , use Retrieve an Auth Token to generate
it.This needs to have the structure "Bearer {accessToken}" |
inputType |
String | Indicates the type of information being sent with the request. Can
be:
|
annotatePerformances |
Boolean | This indicates whether you want to get an Lexile oral reading measure
for each performance or want to receive a single aggregate measurement.
Values you can pass are:
|
performanceIds inputType
might look
like:text_file = requests.get( "https://s3.amazonaws.com/mmincstatic/oralreadingexamples/example.txt" ).content audio_file = requests.get( "https://s3.amazonaws.com/mmincstatic/oralreadingexamples/example.wav" ).content body = {"textFile": text_file, "audioFile": audio_file} response = requests.post( ( "https://oralreading-analyzer.lexile.com/reader/performance/ability" "?inputType=audio" ), files=body, headers={"Authorization": f"Bearer {access_token}"}, ) performance_id = response.json()["performanceId"] Post to aggregate endpoint with list of performance IDS body = {"performanceIds": [performance_id, performance_id, performance_id]} response = requests.post( ( "https://oralreading-analyzer.lexile.com/reader/performance/ability/aggregate" "?inputType=performanceIds" ), json=body, headers={"Authorization": f"Bearer {access_token}"}, )
A performanceIds inputType
request includes these parameters:
Parameter | Format | Description |
---|---|---|
performanceID |
Integer | A list of the identifiers assigned to a single audio and text pair. |
characteristics inputType
might look
like:body = { "performanceCharacteristics": [ { "oral_reading_difficulty": {"measure": {"value": 100}}, "wcpm": 120, "accuracy": 0.75, }, { "oral_reading_difficulty": {"measure": {"value": 100}}, "wcpm": 120, "accuracy": 0.75, }, ] } response = requests.post( ( "https://oralreading-analyzer.lexile.com/reader/performance/ability/aggregate" "?inputType=characteristics" ), json=body, headers={"Authorization": f"Bearer {access_token}"}, )
A characteristics inputType
request includes these parameters:
Parameter | Format | Description |
---|---|---|
wcpm |
Number | Words correct per minute. Example: 160 |
accuracy |
Number | The accuracy of words spoken compared to the text. This will be a
number between zero and one. Example: 0.9 |
oralReadingDifficulty |
Object | This the Lexile® oral readability measure for a text. It contains:
displayName .
This is the name used for the measurement. |
Responses
annotateMeasurement
is true
, the response will
contain an annotation
object and an aggregate
object. What your receive in the response for each object will depend on the
inputType
used. Please refer to the table that matches your
inputType
.annotateMeasurement
is false
.performanceIds inputType
response will look
like:{ "annotations":"None", "oralReadingAbility":{ "measure":{ "value":-1840, "uncertainty":193, "display":"BR1840L" }, "displayName":"Lexile Oral Reading Measure" } }, "feedback": { "behaviors": { "APPROPRIATE_RATE": 0.75, "TOO_SLOW": 0.01, "TOO_FAST": 0.62, "VARIED_RATE": 0.08, "NON_SIGHT_CORRECT": 1.0, "NON_SIGHT_OKAY": 0.07, "NON_SIGHT_SKIP": 0.03, "NON_SIGHT_GUESS": 0.02, "SIGHT_AUTOMATIC": 1.0, "SIGHT_SLOW": 0.0, "SIGHT_SKIPS": 0.03, "SIGHT_GUESSES": 0.0, "PAUSING_GOOD": 0.75, "RUN_ON": 0.87, "TOO_MUCH_PAUSING": 0.16, "GOOD_INTONATION": 0.75, "BAD_INTONATION": 0.89 }, "readingAdvice": "Good job correctly reading larger and harder words. Remember to pause at the ends of sentences." }, "apiVersion":"apiVersion" }
Parameter | Format | Description |
---|---|---|
performanceID |
Integer | A list of the identifiers assigned to a single audio and text pair. |
feedback |
String | Providing feedback based on performance. This object contains:
|
apiVersion |
String | The current version number for the API. |
characteristics inputType
response will look
like:{ "annotations":"None", "measure":{ "value":100, "display":"100L" }, "displayName":"Lexile Oral Readability Measure" }, "oralReadingAbility":{ "measure":{ "value":-245, "uncertainty":136, "display":"BR245L" }, "displayName":"Lexile Oral Reading Measure" } }, "apiVersion":"apiVersion" }
Parameter | Format | Description |
---|---|---|
oralReadingAbility |
Object | This is the Lexile oral reading measure for a student. It
contains:
displayName . This is the name used for the
measurement. |
apiVersion |
String | The current version number for the API. |
Additionally, these response codes may be returned:
Code | Description | Example |
---|---|---|
200 | The call was successful. |
|
400 | The request wasn't successful due to invalid input, a misspelled
parameter, or a missing required parameter. For example, you could receive this error when the audio is too soft or the file is too short to be measured. |
|
422 | The request wasn't successful due to the audio file not meeting the 50% accuracy threshold. |
|
503 | The service is unavailable. |
|