Overview
The display advert API displays the vacancies listed on our flagship Find an Apprenticeship (FAA) website. Using this API, you are able to return a full list of all live vacancies (or subsets thereof based on parameters like distance, employer, how recently (in days) they were posted, or whether they're linked to your UKPRN if you're a training provider), or drill down into individual vacancies to return more detail.
Documents
- display-advert-api.json
- Uploaded schema
Who can use this API
This is primarily aimed at training providers, but anybody that wants to return a list of apprenticeship vacancies can use this API.
If you are working with a specific employer or training provider, you can request an API key from them directly, which will return results specific to that organisation. Otherwise, you can request your own unfiltered subscription by visiting the project site.
Instructions for how to subscribe to this API are available here: https://developer.apprenticeships.education.gov.uk/
Technologies
C#; JSON; RESTful
Environments
| Environment | Base URL |
|---|---|
| live | https://api.apprenticeships.education.gov.uk/vacancies |
You need to sign in to subscribe to an API environment or view your existing subscriptions.
Current release
| Release name | Available from |
|---|---|
| 2 | 08 April 2026 |
Operations
GET GET list of Account Legal Entities.
- Description
-
Get a list of Account Legal Entities that are connected to your subscription. This can be used to further filter results in
GET vacancyrequest. If you are a provider only Accounts that have given permission for you to act on there behalf will show in the list. If you are an employer then only legal entities that have a signed agreement will be in the list. If you are not an employer or provider a forbidden response will be returned. - URL template
- /accountlegalentities
Show / Hide additional information
Parameters
| Name | Type | Location | Field | Description |
|---|---|---|---|---|
| X-Version | string | Header | Required | - |
| X-Version | string | Header | Required | - |
Response Codes
| Status code | Description |
|---|---|
| 200 | OK |
| 403 | Forbidden |
Example Request
curl -X GET \
"https://{{baseURL}}/accountlegalentities" \
-H "X-Version: example" \
-H "X-Version: example"
GET GET list of course routes. The routes can then be used to filter results in `GET Vacancy` endpoint.
- Description
-
GET list of course routes. The routes can then be used to filter results in
GET Vacancyendpoint. - URL template
- /referencedata/courses/routes
Show / Hide additional information
Parameters
| Name | Type | Location | Field | Description |
|---|---|---|---|---|
| X-Version | string | Header | Required | - |
| X-Version | string | Header | Required | - |
Response Codes
| Status code | Description |
|---|---|
| 200 | OK |
Example Request
curl -X GET \
"https://{{baseURL}}/referencedata/courses/routes" \
-H "X-Version: example" \
-H "X-Version: example"
GET GET list of courses.
- Description
-
GET list of courses.
- URL template
- /referencedata/courses
Show / Hide additional information
Parameters
| Name | Type | Location | Field | Description |
|---|---|---|---|---|
| X-Version | string | Header | Required | - |
| X-Version | string | Header | Required | - |
Response Codes
| Status code | Description |
|---|---|
| 200 | OK |
Example Request
curl -X GET \
"https://{{baseURL}}/referencedata/courses" \
-H "X-Version: example" \
-H "X-Version: example"
GET GET list of vacancies
- Description
-
Returns list of Vacancies based on your subscription.
- If
FilterBySubscriptionistruethen for employer subscriptions this will automatically filter by your account. - If
FilterBySubscriptionistruethen for providers it will automatically filter by UKPRN. - If you provide a
AccountLegalEntityPublicHashedIdit must come fromGET accountslegalentitiesor a forbidden result will be returned.
Examples
Get all of a subscription's vacancies sorted by age descending (oldest first):
/vacancy?Sort=AgeDesc&FilterBySubscription=trueGet all vacancies within a 20 mile radius of Coventry (52.408056, -1.510556), sorted by distance (closest first) for standards 123 and 345:
/vacancy?Lat=52.408056&Lon=-1.510556&Sort=DistanceAsc&DistanceInMiles=20&StandardLarsCode=123&StandardLarsCode=345Get all nationwide vacancies for route 'example' posted within the last 30 days, page 5, size 10:
/vacancy?PageNumber=5&PageSize=10&Routes=example&NationWideOnly=true&PostedInLastNumberOfDays=30 - If
- URL template
- /vacancy
Show / Hide additional information
Parameters
| Name | Type | Location | Field | Description |
|---|---|---|---|---|
| ExcludeRecruitingNationally | boolean | Query | Optional | If not set returns all If `true` returns non Nation Wide apprenticeship adverts only If `false` returns all apprenticeship adverts including Nation Wide |
| EmployerName | string | Query | Optional | - |
| PageNumber | integer | Query | Optional | Page number you wish to get - defaults to 1 |
| PageSize | integer | Query | Optional | Page size you wish to get - defaults to 10 |
| AccountLegalEntityPublicHashedId | string | Query | Optional | If `FilterBySubscription` is `true` then you can supply the `AccountLegalEntityPublicHashedId` you wish to filter by, obtained from `GET AccountLegalEntities`. You can only supply a value that is linked to your account, or as a Provider you have permission to act on behalf of. |
| Ukprn | integer | Query | Optional | The UKPRN which you wish to return adverts by. If `FilterBySubscription` is `true` and you have a Provider subscription, the value in your subscription will be used. |
| Routes | array | Query | Optional | You can supply a maximum of 2 routes to be filtered by, these can be obtained from `GET referencedata/courses/routes`. If there are `StandardLarsCode` values supplied the route filtering will be ignored. |
| Lat | number | Query | Optional | Latitude to search from, must be supplied with `Longitude` and `DistanceInMiles` |
| Lon | number | Query | Optional | Longitude to search from, must be supplied with `Latitude` and `DistanceInMiles` |
| Sort | string | Query | Optional | If not supplied, defaults to `VacancySort.AgeDesc` `AgeDesc` From newest to oldest apprenticeship adverts `AgeAsc` From oldest to newest apprenticeship adverts `DistanceDesc` From furthest to closest away apprenticeship adverts - can only be used if `Lat`, `Lon` and `DistanceInMiles` supplied `DistanceAsc` From closest to furthest away apprenticeship adverts - can only be used if `Lat`, `Lon` and `DistanceInMiles` supplied `ExpectedStartDateDesc` Ordering by apprenticeship adverts that are closest to starting `ExpectedStartDateAsc` Ordering by apprenticeship adverts that are further in the future to starting |
| DistanceInMiles | integer | Query | Optional | To be used with `Lat` and `Lon` to provide apprenticeship adverts that fall into that radius |
| PostedInLastNumberOfDays | integer | Query | Optional | - |
| StandardLarsCode | array | Query | Optional | The Id or Ids of the standard you are searching for - can be obtained from `GET referencedata/courses`. If supplied will cause any route filtering to be ignored |
| FilterBySubscription | boolean | Query | Optional | If set to `true` - then filters by the AccountId or UKPRN linked to your subscription. |
| X-Version | string | Header | Required | - |
| AdditionalDataSources | array | Header | Optional | - |
| X-Version | string | Header | Required | - |
Response Codes
| Status code | Description |
|---|---|
| 200 | OK |
| 403 | Forbidden |
Example Request
curl -X GET \
"https://{{baseURL}}/vacancy" \
-H "X-Version: example" \
-H "X-Version: example"
GET GET vacancy by reference number
- Description
-
Returns details of a specific vacancy. If no vacancy found then a 404 response is returned.
- URL template
- /vacancy/{vacancyReference}
Show / Hide additional information
Parameters
| Name | Type | Location | Field | Description |
|---|---|---|---|---|
| vacancyReference | string | Path | Required | Vacancy reference in the following format 10001122 |
| X-Version | string | Header | Required | - |
| X-Version | string | Header | Required | - |
Response Codes
| Status code | Description |
|---|---|
| 200 | OK |
| 404 | Not Found |
Example Request
curl -X GET \
"https://{{baseURL}}/vacancy/{vacancyReference}" \
-H "X-Version: example" \
-H "X-Version: example"
Back to top