Either the session ID or assessment ID must be provided. NOTE: This endpoint should be called once the assessment has finished processing (see poll assessment for more info).
const https = require('https');
function getV3ApiListScores() {
  
  const headers = {
    Authorization: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c',
    'Content-Type': 'application/json'
  };
  
  const options = {
    hostname: 'rest.eus.canaryspeech.com',
    port: 443,
    path: '/v3/api/list-scores',
    method: 'GET',
    qs: { sessionId: 'abc123', assessmentId: 'abc123', includeErrors: 'abc123' },
    headers: headers
  };
  
  const request = https.request(options, (response) => {
    if (response.statusCode !== 200) throw new Error(response.statusCode);
    
    response.on('data', (d) => {
      const { scores } = JSON.parse(d);
      // ...
    });
  });
  
  request.on('error', (err) => {
    throw new Error(err);
  });
  
  request.end();
  
}
import * as https from 'https';
function getV3ApiListScores(): void {
  
  const headers = {
    Authorization: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c',
    'Content-Type': 'application/json'
  };
  
  const options = {
    hostname: 'rest.eus.canaryspeech.com',
    port: 443,
    path: '/v3/api/list-scores',
    method: 'GET',
    qs: { sessionId: 'abc123', assessmentId: 'abc123', includeErrors: 'abc123' },
    headers: headers
  };
  
  const request = https.request(options, (response) => {
    if (response.statusCode !== 200) throw new Error(response.statusCode);
    
    response.on('data', (d) => {
      const { scores } = JSON.parse(d) as Record<string, unknown>;
      // ...
    });
  });
  
  request.on('error', (err) => {
    throw new Error(err);
  });
  
  request.end();
}
import requests
def get_v3_api_list_scores():
    url = 'https://rest.eus.canaryspeech.com/v3/api/list-scores'
    
    headers = {
        'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c',
        'Content-Type': 'application/json'
    }
    
    response = requests.get(
        url,
        params={
            'sessionId': 'abc123',
            'assessmentId': 'abc123',
            'includeErrors': 'abc123'
        },
        headers=headers,
    )
    
    if response.status_code !== 200:
        raise Exception(response.status_code)
    
    response_obj = response.json()
    scores = response_obj['scores']
    
    # ...
import UIKit
func getV3ApiListScores() -> void {
    
    let url = URL("https://rest.eus.canaryspeech.com/v3/api/list-scores?sessionId=abc123&assessmentId=abc123&includeErrors=abc123")
    
    let headers: [String: String] = [
        "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
        "Content-Type": "application/json"
    ]
    
    var request = URLRequest(url: url)
    request.httpMethod = "GET"
    request.allHTTPHeaderFields = headers
    
    let task = URLSession.shared.dataTask(with: request) { data, response, error in
        guard
            let data = data,
            let response = response as? HTTPURLResponse,
            error == nil
        else {
            print("error", error ?? URLError(.badServerResponse)
            return
        }
        
        guard (200 ... 299) ~= response.statusCode else {
            print("statusCode = \(response.statusCode)")
            print("response = \(response)")
            return
        }
        
        do {
            let responseObj = try JSONDecoder().decode(GetV3ApiListScoresResponse.self, data)
            // ...
        } catch {
            print(error)
        }
    }
    }
}
struct GetV3ApiListScoresResponse: Decodable {
    let scores: [undefined]
}
import 'dart:convert';
import 'package:http/http.dart' as http;
Future<void> function getV3ApiListScores() async {
  final queryParams = { 'sessionId': 'abc123', 'assessmentId': 'abc123', 'includeErrors': 'abc123' };
  
  final uri = Uri.https('rest.eus.canaryspeech.com', 'v3/api/list-scores', queryParams);
  
  final headers = {
    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c',
    'Content-Type': 'application/json'
  };
  
  final request = http.Request('GET', uri);
  request.headers.addAll(headers)
  
  final client = http.Client();
  try {
    final responseStream = await client.send(request);
    final statusCode = responseStream.statusCode;
    
    if (statusCode < 200 || statusCode >= 300) {
      throw Error(statusCode.toString());
    }
    
    final responseBytes = await responseStream.stream.toBytes();
    final responseString = utf8.decode(responseBytes);
    final response = json.decode(responseString);
    
    final scores = response['scores'] as List<dynamic>;
    
    // ...
  } catch (e) {
    print(e);
  }
}
An object containing any error information if present. Will only be present if includeErrors is set to true and an error occurred in scoring.