Skip navigation

UCAS Tariff API

The UCAS Tariff application programming interface (API) allows you to develop your own version of the Tariff calculator.

It is a way of accessing the same data set we use, and querying it to create a bespoke calculator for your website.

Download the example calculator

If you’d like to use the API to implement your own Tariff calculator, you’ll need to speak to your website developer. View the terms and conditions for using the API.

There are four versions of the API – version 4 is the latest, updated version. We have kept previous versions on this page for those who already use the API and do not wish to upgrade yet.

Please note: 

  • if you alter qualification information in the calculator, you are responsible for the generated points
  • the information will be updated annually, around May 
  • the calculator provides an indicative guide only to students of how many points each qualification is awarded

Technical instructions for the new UCAS Tariff API

Version Date Base url
Version 4 12 May 2020 api/v4/tariff
Version 3 10 August 2017 api/v3/tariff
Version 2 25 January 2017 api/v2/tariff
Version 1 14 July 2015 api/tariff/v1

Version 4

GET api/v4/tariff/list

Version 4 of the tariff API consolidates the two endpoints from v3 into a single url that returns all the qualifications data in one big JSON array. You can then manipulate this single piece of JSON in your application however you like without the need to make further API calls. 


Parameters

keyword - Defaults to null. String. Defining this parameter will return all qualification names where the name or alias contain the specified keyword.

order - Defaults to 'asc'. String asc|desc. Optionally this may be assigned as 'desc'. this parameter will reverse the order of returned results.

limit - Defaults to 'all'. Integer. Return only the specified number of qualifications in the results.

group - Defaults to FALSE. Boolean TRUE|FALSE. Returns an additional 'Groups' lookup table in priority order. The 'Qualifications' results are primarily ordered by qualification group. Within the groups qualifications will be ordered alphabetically.

 

Example:

https://www.ucas.com/api/v4/tariff/list?keyword=level&order=asc&limit=6&group=true  

Returns

HTTP/1.1 200 OK ... Content-Type: application/json [ { "code":"670c6d53", "name":"A level", "grades":[ { "grade":"A*", "score":"56" }, { "grade":"A", "score":"48" }, { "grade":"B", "score":"40" }, { "grade":"C", "score":"32" }, { "grade":"D", "score":"24" }, { "grade":"E", "score":"16" } ], "group":"A level and AS", "aliases":[ "GCE A level", "GCE Advanced level" ] }, { "code":"027950e2", "name":"A level (9 unit award)", "grades":[ { "grade":"A*A", "score":"76" }, { "grade":"AA", "score":"68" }, { "grade":"AB", "score":"64" }, { "grade":"BB", "score":"56" }, { "grade":"BC", "score":"52" }, { "grade":"CC", "score":"44" }, { "grade":"CD", "score":"42" }, { "grade":"DD", "score":"34" }, { "grade":"DE", "score":"30" }, { "grade":"EE", "score":"22" } ], "group":"A level and AS", "aliases":[ "GCE A level (9 unit award)", "GCE Advanced level (9 unit award)" ] }, { "code":"a6240a50", "name":"A level Double Award", "grades":[ { "grade":"A*A*", "score":"112" }, { "grade":"A*A", "score":"104" }, { "grade":"AA", "score":"96" }, { "grade":"AB", "score":"88" }, { "grade":"BB", "score":"80" }, { "grade":"BC", "score":"72" }, { "grade":"CC", "score":"64" }, { "grade":"CD", "score":"56" }, { "grade":"DD", "score":"48" }, { "grade":"DE", "score":"40" }, { "grade":"EE", "score":"32" } ], "group":"A level and AS", "aliases":[ "GCE A level Double Award", "GCE Advanced level Double Award" ] }, { "code":"a2c29192", "name":"AS", "grades":[ { "grade":"A", "score":"20" }, { "grade":"B", "score":"16" }, { "grade":"C", "score":"12" }, { "grade":"D", "score":"10" }, { "grade":"E", "score":"6" } ], "group":"A level and AS", "aliases":[ "AS level", "GCE Advanced Subsidiary level", "GCE AS level" ] }, { "code":"ec1802a8", "name":"Pearson BTEC Level 3 National Certificate (first teaching from September 2016)", "grades":[ { "grade":"D*", "score":"28" }, { "grade":"D", "score":"24" }, { "grade":"M", "score":"16" }, { "grade":"P", "score":"8" } ], "group":"BTEC National (RQF) (From 2016)", "aliases":[ ] }, { "code":"f509712f", "name":"Pearson BTEC Level 3 National Diploma (first teaching from September 2016)", "grades":[ { "grade":"D*D*", "score":"112" }, { "grade":"D*D", "score":"104" }, { "grade":"DD", "score":"96" }, { "grade":"DM", "score":"80" }, { "grade":"MM", "score":"64" }, { "grade":"MP", "score":"48" }, { "grade":"PP", "score":"32" } ], "group":"BTEC National (RQF) (From 2016)", "aliases":[ ] } ] }

Here the return value contains a single piece of JSON without the need for further API calls.


Version 3

GET api/v3/tariff/list

This endpoint allows you to gather the unique identifiers for qualifications based on their name.

Parameters

keyword - Defaults to null. String. Defining this parameter will return all qualification names where the name or alias contain the specified keyword.

order - Defaults to 'asc'. String asc|desc. Optionally this may be assigned as 'desc'. this parameter will reverse the order of returned results.

limit - Defaults to 'all'. Integer. Return only the specified number of qualifications in the results.

group - Defaults to FALSE. Boolean TRUE|FALSE. Returns an additional 'Groups' lookup table in priority order. The 'Qualifications' results are primarily ordered by qualification group. Within the groups qualifications will be ordered alphabetically. 

 

Example:

https://www.ucas.com/api/v3/tariff/list?keyword=level&order=asc&limit=6&group=true

Returns

HTTP/1.1 200 OK ... Content-Type: application/json { "groups": { "A level and AS": { "group": "A level and AS", "custom_order": 0 }, "BTEC National (RQF) (From 2016)": { "group": "BTEC National (RQF) (From 2016)", "custom_order": 1 }, "BTEC (QCF) (From 2010)": { "group": "BTEC (QCF) (From 2010)", "custom_order": 2 }, "BTEC National (NQF)": { "group": "BTEC National (NQF)", "custom_order": 3 }, "Access to HE Diploma": { "group": "Access to HE Diploma", "custom_order": 4 }, "AQA Technical": { "group": "AQA Technical", "custom_order": 5 }, "Cambridge Pre-U": { "group": "Cambridge Pre-U", "custom_order": 6 }, "City and Guilds Technicals": { "group": "City and Guilds Technicals", "custom_order": 7 }, "Core Maths": { "group": "Core Maths", "custom_order": 8 }, "Dance qualification": { "group": "Dance qualification", "custom_order": 9 }, "Extended Project": { "group": "Extended Project", "custom_order": 10 }, "International Baccalaureate (Composite parts)": { "group": "International Baccalaureate (Composite parts)", "custom_order": 11 }, "International qualifications": { "group": "International qualifications", "custom_order": 12 }, "Music qualification": { "group": "Music qualification", "custom_order": 13 }, "OCR Cambridge Technical": { "group": "OCR Cambridge Technical", "custom_order": 14 }, "Scottish qualifications": { "group": "Scottish qualifications", "custom_order": 15 }, "Speech and drama qualifications": { "group": "Speech and drama qualifications", "custom_order": 16 }, "Welsh Baccalaureate": { "group": "Welsh Baccalaureate", "custom_order": 17 }, "WJEC Applied qualifications": { "group": "WJEC Applied qualifications", "custom_order": 18 }, "Other": { "group": "Other", "custom_order": 19 } }, "qualifications": { "A level": { "code": "670c6d53", "subject": "A level", "group": "", "custom_order": 0 }, "A level (9 unit award)": { "code": "027950e2", "subject": "A level (9 unit award)", "group": "A level and AS", "custom_order": 1 }, "A level Double Award": { "code": "a6240a50", "subject": "A level Double Award", "group": "A level and AS", "custom_order": 2 }, "AS": { "code": "a2c29192", "subject": "AS", "group": "A level and AS", "custom_order": 3 }, "Pearson BTEC Level 3 National Certificate (first teaching from September 2016)": { "code": "ec1802a8", "subject": "Pearson BTEC Level 3 National Certificate (first teaching from September 2016)", "group": "BTEC National (RQF) (From 2016)", "custom_order": 4 }, "Pearson BTEC Level 3 National Diploma (first teaching from September 2016)": { "code": "f509712f", "subject": "Pearson BTEC Level 3 National Diploma (first teaching from September 2016)", "group": "BTEC National (RQF) (From 2016)", "custom_order": 5 } } }

Here the return value contains a unique code relative to each qualification. This can be used to return the grades and points for said qualification.

GET api/v3/tariff/view

This endpoint allows you to gather grades and points for a particular qualification.

Parameters

code - Required. String. Defining this parameter will return the grades and points for this qualification.

order - Defaults to not ordered. String asc|desc. Optionally this may be assigned as 'asc' or 'desc'. This parameter will order the returned results by grade points.

grade - Defaults to null. String. Defining this parameter will return the points for that grade.

Item
Value
Full URL https://www.ucas.com/api/v3/tariff/view?code={code}&grade={grade}
Method GET
Params code, grade, order

Example:

https://www.ucas.com/api/v3/tariff/view?code=670c6d53

Returns

HTTP/1.1 200 OK ... Content-Type: application/json { "A*":"56", "A":"48", "B":"40", "C":"32", "D":"24", "E":"16" }

Version 2

GET api/v2/tariff/list

Parameters

This endpoint allows you to gather the unique identifiers for qualifications based on their name.

keyword –  Defaults to null. String. Defining this parameter will return all qualification names where the name or alias contain the specified keyword.

order – defaults to 'asc'. String asc|desc. Optionally this may be assigned as 'desc'. this parameter will reverse the order of returned results.

limit – defaults to 'all'. Integer. Return only the specified number of qualifications in the results.

Item Value
Full URL https://www.ucas.com/api/v2/tariff/list?keyword={keyword}&order={desc|asc}&limit={number}
Method GET
Params keyword, order, limit


Example:

https://www.ucas.com/api/v2/tariff/list?keyword=level&order=asc&limit=6

Returns

1 2 3 4 5 6 7 8 9 10 11
P/1.1 200 OK ... Content-Type: application/json [ {"code":"670c6d53","subject":"A level"}, {"code":"a2c29192","subject":"AS"}, {"code":"ec1802a8","subject":"A level Double Award"HTT}, {"code":"59b01e49","subject":"A level (9 unit award)"}, {"code":"6b0b9bd8","subject":"AS Double award"}, {"code":"f509712f","subject":"Pearson BTEC Extended Diploma (QCF)"} ]


Here the return value contains a unique code relative to each qualification. This can be used to return the grades and points for said qualification. 

GET api/v2/tariff/view

This endpoint allows you to gather grades and points for a particular qualification.

Parameters

code - Required. String. Defining this parameter will return the grades and points for this qualification.

order - Defaults to not ordered. String asc|desc. Optionally this may be assigned as 'asc' or 'desc'. This parameter will order the returned results by grade points.

grade - Defaults to null. String. Defining this parameter will return the points for that grade.

 

Item Value
Full URL https://www.ucas.com/api/v2/tariff/view?code={code}&grade={grade}
Method GET
Params code, grade, order

Example:
https://www.ucas.com/api/v2/tariff/view?code=670c6d53

Returns

1 2 3 4 5 6 7 8 9 10 11
HTTP/1.1 200 OK ... Content-Type: application/json { "A*":"56", "A":"48", "B":"40", "C":"32", "D":"24", "E":"16" }

Version 1

GET api/tariff/v1/list

This endpoint allows you to gather the unique identifiers for qualifications based on their name.

Parameters

keyword –  defaults to null. String. Defining this parameter will return all qualification names containing the specified keyword.

order – defaults to 'asc'. String asc|desc. Optionally this may be assigned as 'desc'. this parameter will reverse the order of returned results.

limit – defaults to 'all'. Integer. Return only the specified number of qualifications in the results.

Item Value
Full URL https://www.ucas.com/api/tariff/v1/list?keyword={keyword}&order={desc|asc}&limit={number}
Method GET
Params keyword, order, limit


Example:

https://www.ucas.com/api/tariff/v1/list?keyword=level&order=asc&limit=6

Returns

1 2 3 4 5 6 7 8 9 10 11 HTTP/1.1 200 OK ... Content-Type: application/json { "670c6d53":"A level", "a2c29192":"AS", "a6240a50":"A level Double Award", "027950e2":"A level (9 unit award)", "7195361b":"AS Double award", "f18106cd":"Pearson BTEC Extended Diploma (QCF)" }

Here the return value contains a unique code relative to each qualification. This can be used to return the grades and points for said qualification. 

 

GET api/tariff/v1/view/{code}

This endpoint allows you to gather grades and points for a particular qualification.

Parameters

code – required. String. The eight character unique identifier must be passed as part of the URL.

grade – defaults to null. String. Defining this parameter will return the points for that grade.

order – Specifies the points order of results. May be asc or desc. Asc will return the grade with highest points first, whereas desc will return the grade with lowest points first. Irrelevant if used alongside grade.

Item Value
Full URL https://www.ucas.com/api/tariff/v1/view/{code}?grade={grade}
Method GET
Params code, grade, order


Example:

https://www.ucas.com/api/tariff/v1/view/670c6d53?order=desc

Returns

1 2 3 4 5 6 7 8 9 10 11 HTTP/1.1 200 OK ... Content-Type: application/json { "A*":"56", "A":"48", "B":"40", "C":"32", "D":"24", "E":"16" }