Back

API References for AP Higher Education Score Reports

Get technical information for implementing the AP Higher Education Score Reports Web Service Download API, including code samples to get you started.

API References

Below are the API references for implementing the AP Higher Education Web Service Download API. Additional code samples are provided here to get you started. 

Login API

webServiceAuth - Login
METHOD
POST 
REQUEST 
https://aposrd-api-gw.collegeboard.org/aposrd-api-prod/webServiceAuth
DESCRIPTION
Log in using your email address and password. This endpoint allows the user to get an access token that can be used in subsequent API endpoint calls to generate, download, and record the successful download.

This is the only API call where the "X-CB-Catapult-Authorization-Token" header is simply “CBLogin”; all remaining API calls must use the token that is found in this API call response.
PAYLOAD (sample)

headers: 
 {
    'Content-Type': 'application/json', 
    Accept: 'application/json', 
    'X-CB-Catapult-Authorization-Token': 'CBLogin', 
    'X-CB-Catapult-Authentication-Token': 'CBLogin Web Service', 

body: 

    "u": "[email protected]", 
    "p": "examplepasswordbase64encoded" 

FieldRequiredDescription
uYesEmail address as a string.  

IMPORTANT: You must first activate and validate access by logging in to AP Higher Education Score Reports and accepting the site terms of use. 
pYesPassword as a base64-encoded string.

RESPONSE (sample) 
Accept: application/json 

    "success": true, 
    "message": "Successfully authenticated.", 
    "authToken": "examplevalidauthtoken" 
}

FieldRequiredDescription
successYesBoolean. If true, the login was successful and the response payload will have the authToken value populated.
messageYes Describes the result. Useful for debugging in the event success is false.
authTokenYes (If success is true)Will be present only on successful authentications. This auth token must be provided as the x-cb-catapult-authorization-token header in all subsequent API calls and when downloading a file. 

File Generation API

fileGeneration - File Generation

METHOD 
POST 
REQUEST 
https://aposrd-api-gw.collegeboard.org/aposrd-api-prod/fileGeneration 
DESCRIPTION 
Generate a file for the DI code that your previously entered account login credentials have access to. This API call will generate the file and return a pre-signed URL where you will download the file via a GET call. The downloadld returned is required for the record download API call that occurs after the file is successfully retrieved. 
PAYLOAD (sample) 
headers: 

    'Content-Type': 'application/json', 
    Accept: 'application/json', 
    'X-CB-Catapult-Authorization-Token': 'Auth token here', 
    'X-CB-Catapult-Authentication-Token': 'CBLogin Web Service', 

body: 

    "diCode": "0123", 
    "format": "TXT", 
    "downloadType": "full" 

FieldRequiredDescription
diCodeYesDI code you wish to generate a file for. This is a string format. 

You can find your institution’s DI code in your score report email notifications next to your organization's name. This is also known as a CEEB code, CB code, or score send code. The DI code associated with your organization is typically 4-5 characters but can be up to 6 characters.

IMPORTANT: The account login credentials must have access to the institution you are attempting to download files for. Also, if you manage multiple campuses with different DI codes, you must make this call individually for each DI code you manage downloads for.
formatYesThe file format you wish to generate. Must contain string value of TXT or CSV.
downloadTypeYesMust contain string value of full or new.  

The full value will generate a file containing all score reports from the start of the current reporting year (typically the most recent July 1) to the current time.    

The new value will generate a file containing all new score reports from the last time these account credentials generated a data file for this DI code to the current time.  

If this is the first download for the user account, the last time will default to the start of the current reporting year.

RESPONSE (sample)
Accept: application/json

    "success": true, 
    "message": "Successfully generated file.", 
    "url": "filedownloadurlhere", 
    "fileName": "AP_HED_Scores_0000_07032025_120644.txt",
    "downloadId": "uuid" 
}

FieldRequiredDescription
successYesBoolean. If true the file generation was successful and the response payload will have the url, fileName, and downloadId values populated. 
messageYesDescribes the result. Useful for debugging in the event success is false.
urlYes (if success is true)Will be present on successful file generations. This will be a pre-signed URL where the file may be retrieved using a GET call with the below headers. 

    Accept: 'application/json, text/plain, /', 
    'x-cb-catapult-authentication-token': 'CBLogin Web Service', 
    'x-cb-catapult-authorization-token': 'Auth token here', 
fileNameYes (if success is true)Present on successful file generations. File name will be in the below formats: 
AP_HED_Scores_DICode_MMDDYYYY_HHmmSS.txt
Or
AP_HED_Scores_DICode_MMDDYYY_HHmmSS.csv
Ex. AP_HED_Scores_0123_07012025_031520.csv
downloadldYes (if success is true)Will be present on successful file generations. This is a Universally Unique Identifier (UUID) string  that will be used to log the download success after your script has successfully downloaded the file found in the url property of this response. 

Record Successful Download API

webServiceDownloaded - File Successfully Downloaded
 

METHOD  POST 
REQUEST 
https://aposrd-api-gw.collegeboard.org/aposrd-api-prod/webServiceDownloaded 
DESCRIPTION 
After successfully downloading a file, make this API call to record the download in our system. This is required so that we can accurately track which score reports you have successfully downloaded. The new downloadType in the fileGeneration API call will not work as expected if this call is not successfully made after a download occurs. The downloadId value passed in must be the uuid returned from the fileGeneration API call. 

PAYLOAD (sample) 
headers: 

    'Content-Type': 'application/json', 
    Accept: 'application/json', 
    'X-CB-Catapult-Authorization-Token': 'Auth token here', 
    'X-CB-Catapult-Authentication-Token': 'CBLogin Web Service', 

body: 

    "downloadId": "uuid" 
    "format": "TXT" 

FieldRequiredDescription
downloadldYesDownload Id that was received in the fileGeneration API response. 
formatYesThe file format that was generated. Must contain string value of TXT or CSV

RESPONSE (sample) 
Accept: application/json 

    "success": true, 
    "message": "Download recorded successfully." 

FieldRequiredDescription
successYesBoolean indicating the download was successfully logged as completed. 
messageYes Describes the result. Useful for debugging in the event success is false.