{ "openapi": "3.0.1", "info": { "title": "Display advert API", "description": "\n### Display recruitment adverts from Find an apprenticeship. ### \n**Note.** It is not recommended to use The Display Advert API directly from a browser and as such we have not enabled CORS for this API. Instead, we recommend you call the API intermittently to retrieve the latest vacancies, store those vacancies in your own data store, and then change your website to read those vacancies from your own data store.", "version": "1" }, "servers": [ { "url": "https://api.apprenticeships.education.gov.uk/vacancies" } ], "paths": { "/accountlegalentities": { "get": { "tags": [ "AccountLegalEntities" ], "summary": "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 vacancy` request.\r\nIf 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\r\nlegal 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.", "operationId": "get-accountlegalentities", "parameters": [ { "name": "X-Version", "in": "header", "schema": { "type": "string" }, "required": true, "example": "1" } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/GetAccountLegalEntitiesListResponse" }, "examples": { "default": { "value": null } } }, "application/json": { "schema": { "$ref": "#/components/schemas/GetAccountLegalEntitiesListResponse" }, "example": { "accountLegalEntities": [ { "accountLegalEntityName": "string", "accountLegalEntityPublicHashedId": "string", "accountPublicHashedId": "string", "accountName": "string" } ] } }, "text/json": { "schema": { "$ref": "#/components/schemas/GetAccountLegalEntitiesListResponse" }, "example": { "accountLegalEntities": [ { "accountLegalEntityName": "string", "accountLegalEntityPublicHashedId": "string", "accountPublicHashedId": "string", "accountName": "string" } ] } } } }, "403": { "description": "Forbidden", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "examples": { "default": { "value": null } } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string" } } } } } } }, "/referencedata/courses": { "get": { "tags": [ "ReferenceData" ], "parameters": [ { "name": "X-Version", "in": "header", "schema": { "type": "string" }, "required": true, "example": "1" } ], "summary": "GET list of courses.", "description": "GET list of courses.", "operationId": "get-referencedata-courses", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/GetTrainingCoursesListResponse" }, "examples": { "default": { "value": null } } }, "application/json": { "schema": { "$ref": "#/components/schemas/GetTrainingCoursesListResponse" }, "example": { "trainingCourses": [ { "larsCode": 0, "title": "string", "route": "string" } ] } }, "text/json": { "schema": { "$ref": "#/components/schemas/GetTrainingCoursesListResponse" }, "example": { "trainingCourses": [ { "larsCode": 0, "title": "string", "route": "string" } ] } } } } } } }, "/vacancy": { "get": { "tags": [ "Vacancy" ], "summary": "GET list of vacancies", "description": "### Returns list of Vacancies based on your subscription. ###\r\n- If `FilterBySubscription` is `true` then for employer subscriptions this will automatically filter by your account.\r\n- If `FilterBySubscription` is `true` then for providers it will automatically filter by UKPRN.\r\n- If you provide a `AccountLegalEntityPublicHashedId` it must come from `GET accountslegalentities` or a forbidden result will be returned.\r\n### Examples ###\r\nGet all of a subscription's vacancies sorted by age descending (oldest first):\r\n```\r\n/vacancy?Sort=AgeDesc&FilterBySubscription=true\r\n```\r\nGet all vacancies within a 20 mile radius of Coventry (52.408056, -1.510556), sorted by distance (closest first) for standards 123 and 345:\r\n```\r\n/vacancy?Lat=52.408056&Lon=-1.510556&Sort=DistanceAsc&DistanceInMiles=20&StandardLarsCode=123&StandardLarsCode=345\r\n```\r\nGet all nationwide vacancies for route 'example' posted within the last 30 days, page 5, size 10:\r\n```\r\n/vacancy?PageNumber=5&PageSize=10&Routes=example&NationWideOnly=true&PostedInLastNumberOfDays=30\r\n```", "operationId": "get-vacancy", "parameters": [ { "name": "PageNumber", "in": "query", "description": "Format - int32. Page number you wish to get - defaults to 1", "schema": { "type": "integer", "format": "int32" } }, { "name": "X-Version", "in": "header", "schema": { "type": "string" }, "required": true, "example": "1" }, { "name": "PageSize", "in": "query", "description": "Format - int32. Page size you wish to get - defaults to 10", "schema": { "type": "integer", "format": "int32" } }, { "name": "AccountLegalEntityPublicHashedId", "in": "query", "description": "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.", "schema": { "type": "string" } }, { "name": "Ukprn", "in": "query", "description": "Format - int32. 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.", "schema": { "type": "integer", "format": "int32" } }, { "name": "Routes", "in": "query", "description": "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.", "schema": { "maxItems": 2, "type": "array", "items": { "type": "string" } } }, { "name": "Lat", "in": "query", "description": "Format - double. Latitude to search from, must be supplied with `Longitude` and `DistanceInMiles`", "schema": { "type": "number", "format": "double" } }, { "name": "Lon", "in": "query", "description": "Format - double. Longitude to search from, must be supplied with `Latitude` and `DistanceInMiles`", "schema": { "type": "number", "format": "double" } }, { "name": "Sort", "in": "query", "description": "If not supplied, defaults to `VacancySort.AgeDesc`\r\n`AgeDesc` From newest to oldest apprenticeship adverts\r\n`AgeAsc` From oldest to newest apprenticeship adverts\r\n`DistanceDesc` From furthest to closest away apprenticeship adverts - can only be used if `Lat`, `Lon` and `DistanceInMiles` supplied\r\n`DistanceAsc` From closest to furthest away apprenticeship adverts - can only be used if `Lat`, `Lon` and `DistanceInMiles` supplied\r\n`ExpectedStartDateDesc` Ordering by apprenticeship adverts that are closest to starting\r\n`ExpectedStartDateAsc` Ordering by apprenticeship adverts that are further in the future to starting", "schema": { "$ref": "#/components/schemas/VacancySort" } }, { "name": "DistanceInMiles", "in": "query", "description": "Format - int32. To be used with `Lat` and `Lon` to provide apprenticeship adverts that fall into that radius", "schema": { "type": "integer", "format": "int32" } }, { "name": "NationWideOnly", "in": "query", "description": "If not set returns all\r\nIf `true` returns Nation Wide apprenticeship adverts only\r\nIf `false` returns non Nation Wide apprenticeship adverts only", "schema": { "type": "boolean" } }, { "name": "PostedInLastNumberOfDays", "in": "query", "description": "Format - int32.", "schema": { "type": "integer", "format": "int32" } }, { "name": "StandardLarsCode", "in": "query", "description": "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", "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "FilterBySubscription", "in": "query", "description": "If set to `true` - then filters by the AccountId or UKPRN linked to your subscription.", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/GetVacanciesListResponse" }, "examples": { "default": { "value": null } } }, "application/json": { "schema": { "$ref": "#/components/schemas/GetVacanciesListResponse" }, "example": { "vacancies": [ { "closingDate": "string", "description": "string", "employerName": "string", "hoursPerWeek": 0, "isDisabilityConfident": true, "isNationalVacancy": true, "numberOfPositions": 0, "postedDate": "string", "providerName": "string", "startDate": "string", "title": "string", "ukprn": 0, "vacancyReference": "string", "vacancyUrl": "string", "course": { "larsCode": 0, "title": "string", "level": 0, "route": "string" }, "wage": { "wageAmount": 0, "wageAmountLowerBound": 0, "wageAmountUpperBound": 0, "wageAdditionalInformation": "string", "wageType": "ApprenticeshipMinimum", "workingWeekDescription": "string", "wageUnit": "Unspecified" }, "location": { "lat": 0, "lon": 0 }, "address": { "addressLine1": "string", "addressLine2": "string", "addressLine3": "string", "addressLine4": "string", "postcode": "string" }, "distance": 0, "employerContactPhone": "string", "employerContactName": "string", "employerContactEmail": "string", "employerWebsiteUrl": "string", "apprenticeshipLevel": "string", "expectedDuration": "string" } ], "total": 0, "totalFiltered": 0, "totalPages": 0 } }, "text/json": { "schema": { "$ref": "#/components/schemas/GetVacanciesListResponse" }, "example": { "vacancies": [ { "closingDate": "string", "description": "string", "employerName": "string", "hoursPerWeek": 0, "isDisabilityConfident": true, "isNationalVacancy": true, "numberOfPositions": 0, "postedDate": "string", "providerName": "string", "startDate": "string", "title": "string", "ukprn": 0, "vacancyReference": "string", "vacancyUrl": "string", "course": { "larsCode": 0, "title": "string", "level": 0, "route": "string" }, "wage": { "wageAmount": 0, "wageAmountLowerBound": 0, "wageAmountUpperBound": 0, "wageAdditionalInformation": "string", "wageType": "ApprenticeshipMinimum", "workingWeekDescription": "string", "wageUnit": "Unspecified" }, "location": { "lat": 0, "lon": 0 }, "address": { "addressLine1": "string", "addressLine2": "string", "addressLine3": "string", "addressLine4": "string", "postcode": "string" }, "distance": 0, "employerContactPhone": "string", "employerContactName": "string", "employerContactEmail": "string", "employerWebsiteUrl": "string", "apprenticeshipLevel": "string", "expectedDuration": "string" } ], "total": 0, "totalFiltered": 0, "totalPages": 0 } } } }, "403": { "description": "Forbidden", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "examples": { "default": { "value": null } } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string" } } } } } } }, "/referencedata/courses/routes": { "get": { "tags": [ "ReferenceData" ], "parameters": [ { "name": "X-Version", "in": "header", "schema": { "type": "string" }, "required": true, "example": "1" } ], "summary": "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 Vacancy` endpoint.", "operationId": "get-referencedata-courses-routes", "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/GetRouteResponseItem" }, "examples": { "default": { "value": null } } }, "application/json": { "schema": { "$ref": "#/components/schemas/GetRouteResponseItem" }, "example": { "name": "string" } }, "text/json": { "schema": { "$ref": "#/components/schemas/GetRouteResponseItem" }, "example": { "name": "string" } } } } } } }, "/vacancy/{vacancyReference}": { "get": { "tags": [ "Vacancy" ], "summary": "GET vacancy by reference number", "description": "Returns details of a specific vacancy. If no vacancy found then a 404 response is returned.", "operationId": "get-vacancy-vacancyreference", "parameters": [ { "name": "vacancyReference", "in": "path", "description": "Vacancy reference in the following format 10001122", "required": true, "schema": { "type": "string" } }, { "name": "X-Version", "in": "header", "schema": { "type": "string" }, "required": true, "example": "1" } ], "responses": { "200": { "description": "Success", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/GetVacancyResponse" }, "examples": { "default": { "value": null } } }, "application/json": { "schema": { "$ref": "#/components/schemas/GetVacancyResponse" }, "example": { "closingDate": "string", "description": "string", "employerName": "string", "hoursPerWeek": 0, "isDisabilityConfident": true, "isNationalVacancy": true, "numberOfPositions": 0, "postedDate": "string", "providerName": "string", "startDate": "string", "title": "string", "ukprn": 0, "vacancyReference": "string", "vacancyUrl": "string", "course": { "larsCode": 0, "title": "string", "level": 0, "route": "string" }, "wage": { "wageAmount": 0, "wageAmountLowerBound": 0, "wageAmountUpperBound": 0, "wageAdditionalInformation": "string", "wageType": "ApprenticeshipMinimum", "workingWeekDescription": "string", "wageUnit": "Unspecified" }, "location": { "lat": 0, "lon": 0 }, "address": { "addressLine1": "string", "addressLine2": "string", "addressLine3": "string", "addressLine4": "string", "postcode": "string" }, "distance": 0, "employerContactPhone": "string", "employerContactName": "string", "employerContactEmail": "string", "employerWebsiteUrl": "string", "apprenticeshipLevel": "string", "expectedDuration": "string", "trainingDescription": "string", "fullDescription": "string", "outcomeDescription": "string", "employerDescription": "string", "skills": [ "string" ], "qualifications": [ { "weighting": "Essential", "qualificationType": "string", "subject": "string", "grade": "string" } ], "thingsToConsider": "string" } }, "text/json": { "schema": { "$ref": "#/components/schemas/GetVacancyResponse" }, "example": { "closingDate": "string", "description": "string", "employerName": "string", "hoursPerWeek": 0, "isDisabilityConfident": true, "isNationalVacancy": true, "numberOfPositions": 0, "postedDate": "string", "providerName": "string", "startDate": "string", "title": "string", "ukprn": 0, "vacancyReference": "string", "vacancyUrl": "string", "course": { "larsCode": 0, "title": "string", "level": 0, "route": "string" }, "wage": { "wageAmount": 0, "wageAmountLowerBound": 0, "wageAmountUpperBound": 0, "wageAdditionalInformation": "string", "wageType": "ApprenticeshipMinimum", "workingWeekDescription": "string", "wageUnit": "Unspecified" }, "location": { "lat": 0, "lon": 0 }, "address": { "addressLine1": "string", "addressLine2": "string", "addressLine3": "string", "addressLine4": "string", "postcode": "string" }, "distance": 0, "employerContactPhone": "string", "employerContactName": "string", "employerContactEmail": "string", "employerWebsiteUrl": "string", "apprenticeshipLevel": "string", "expectedDuration": "string", "trainingDescription": "string", "fullDescription": "string", "outcomeDescription": "string", "employerDescription": "string", "skills": [ "string" ], "qualifications": [ { "weighting": "Essential", "qualificationType": "string", "subject": "string", "grade": "string" } ], "thingsToConsider": "string" } } } }, "404": { "description": "Not Found", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "examples": { "default": { "value": null } } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" }, "example": { "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string" } } } } } } } }, "components": { "schemas": { "GetAccountLegalEntitiesItem": { "type": "object", "properties": { "accountLegalEntityName": { "type": "string", "nullable": true }, "accountLegalEntityPublicHashedId": { "type": "string", "nullable": true }, "accountPublicHashedId": { "type": "string", "nullable": true }, "accountName": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetAccountLegalEntitiesListResponse": { "type": "object", "properties": { "accountLegalEntities": { "type": "array", "items": { "$ref": "#/components/schemas/GetAccountLegalEntitiesItem" }, "nullable": true } }, "additionalProperties": false }, "GetRouteResponseItem": { "type": "object", "properties": { "name": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetTrainingCoursesListResponse": { "type": "object", "properties": { "trainingCourses": { "type": "array", "items": { "$ref": "#/components/schemas/GetTrainingCoursesListResponseItem" }, "nullable": true } }, "additionalProperties": false }, "GetTrainingCoursesListResponseItem": { "type": "object", "properties": { "larsCode": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true }, "route": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetVacanciesListResponse": { "type": "object", "properties": { "vacancies": { "type": "array", "items": { "$ref": "#/components/schemas/GetVacanciesListResponseItem" }, "nullable": true }, "total": { "type": "integer", "format": "int64" }, "totalFiltered": { "type": "integer", "format": "int64" }, "totalPages": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "GetVacanciesListResponseItem": { "type": "object", "properties": { "closingDate": { "type": "string", "format": "date-time" }, "description": { "type": "string", "nullable": true }, "employerName": { "type": "string", "nullable": true }, "hoursPerWeek": { "type": "number", "format": "double" }, "isDisabilityConfident": { "type": "boolean" }, "isNationalVacancy": { "type": "boolean" }, "numberOfPositions": { "type": "integer", "format": "int64" }, "postedDate": { "type": "string", "format": "date-time" }, "providerName": { "type": "string", "nullable": true }, "startDate": { "type": "string", "format": "date-time" }, "title": { "type": "string", "nullable": true }, "ukprn": { "type": "integer", "format": "int32" }, "vacancyReference": { "type": "string", "nullable": true }, "vacancyUrl": { "type": "string", "nullable": true }, "course": { "$ref": "#/components/schemas/GetVacancyCourseItem" }, "wage": { "$ref": "#/components/schemas/GetVacancyWageItem" }, "location": { "$ref": "#/components/schemas/VacancyLocation" }, "address": { "$ref": "#/components/schemas/GetVacancyAddressItem" }, "distance": { "type": "number", "format": "double", "nullable": true }, "employerContactPhone": { "type": "string", "nullable": true }, "employerContactName": { "type": "string", "nullable": true }, "employerContactEmail": { "type": "string", "nullable": true }, "employerWebsiteUrl": { "type": "string", "nullable": true }, "apprenticeshipLevel": { "type": "string", "nullable": true }, "expectedDuration": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetVacancyAddressItem": { "type": "object", "properties": { "addressLine1": { "type": "string", "nullable": true }, "addressLine2": { "type": "string", "nullable": true }, "addressLine3": { "type": "string", "nullable": true }, "addressLine4": { "type": "string", "nullable": true }, "postcode": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetVacancyCourseItem": { "type": "object", "properties": { "larsCode": { "type": "integer", "format": "int32" }, "title": { "type": "string", "nullable": true }, "level": { "type": "integer", "format": "int32" }, "route": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetVacancyQualification": { "type": "object", "properties": { "weighting": { "$ref": "#/components/schemas/QualificationWeighting" }, "qualificationType": { "type": "string", "nullable": true }, "subject": { "type": "string", "nullable": true }, "grade": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetVacancyResponse": { "type": "object", "properties": { "closingDate": { "type": "string", "format": "date-time" }, "description": { "type": "string", "nullable": true }, "employerName": { "type": "string", "nullable": true }, "hoursPerWeek": { "type": "number", "format": "double" }, "isDisabilityConfident": { "type": "boolean" }, "isNationalVacancy": { "type": "boolean" }, "numberOfPositions": { "type": "integer", "format": "int64" }, "postedDate": { "type": "string", "format": "date-time" }, "providerName": { "type": "string", "nullable": true }, "startDate": { "type": "string", "format": "date-time" }, "title": { "type": "string", "nullable": true }, "ukprn": { "type": "integer", "format": "int32" }, "vacancyReference": { "type": "string", "nullable": true }, "vacancyUrl": { "type": "string", "nullable": true }, "course": { "$ref": "#/components/schemas/GetVacancyCourseItem" }, "wage": { "$ref": "#/components/schemas/GetVacancyWageItem" }, "location": { "$ref": "#/components/schemas/VacancyLocation" }, "address": { "$ref": "#/components/schemas/GetVacancyAddressItem" }, "distance": { "type": "number", "format": "double", "nullable": true }, "employerContactPhone": { "type": "string", "nullable": true }, "employerContactName": { "type": "string", "nullable": true }, "employerContactEmail": { "type": "string", "nullable": true }, "employerWebsiteUrl": { "type": "string", "nullable": true }, "apprenticeshipLevel": { "type": "string", "nullable": true }, "expectedDuration": { "type": "string", "nullable": true }, "trainingDescription": { "type": "string", "nullable": true }, "fullDescription": { "type": "string", "nullable": true }, "outcomeDescription": { "type": "string", "nullable": true }, "employerDescription": { "type": "string", "nullable": true }, "skills": { "type": "array", "items": { "type": "string" }, "nullable": true }, "qualifications": { "type": "array", "items": { "$ref": "#/components/schemas/GetVacancyQualification" }, "nullable": true }, "thingsToConsider": { "type": "string", "nullable": true } }, "additionalProperties": false }, "GetVacancyWageItem": { "type": "object", "properties": { "wageAmount": { "type": "number", "format": "double", "nullable": true }, "wageAmountLowerBound": { "type": "number", "format": "double", "nullable": true }, "wageAmountUpperBound": { "type": "number", "format": "double", "nullable": true }, "wageAdditionalInformation": { "type": "string", "nullable": true }, "wageType": { "$ref": "#/components/schemas/WageType" }, "workingWeekDescription": { "type": "string", "nullable": true }, "wageUnit": { "$ref": "#/components/schemas/WageUnit" } }, "additionalProperties": false }, "ProblemDetails": { "type": "object", "properties": { "type": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "status": { "type": "integer", "format": "int32", "nullable": true }, "detail": { "type": "string", "nullable": true }, "instance": { "type": "string", "nullable": true } }, "additionalProperties": {} }, "QualificationWeighting": { "enum": [ "Essential", "Desired" ], "type": "string" }, "VacancyLocation": { "type": "object", "properties": { "lat": { "type": "number", "format": "double", "nullable": true }, "lon": { "type": "number", "format": "double", "nullable": true } }, "additionalProperties": false }, "VacancySort": { "enum": [ "AgeDesc", "AgeAsc", "DistanceDesc", "DistanceAsc", "ExpectedStartDateDesc", "ExpectedStartDateAsc" ], "type": "string" }, "WageType": { "enum": [ "ApprenticeshipMinimum", "NationalMinimum", "Custom", "CompetitiveSalary" ], "type": "string" }, "WageUnit": { "enum": [ "Unspecified", "Weekly", "Monthly", "Annually" ], "type": "string" } }, "securitySchemes": { "apiKeyHeader": { "type": "apiKey", "name": "Ocp-Apim-Subscription-Key", "in": "header" } } }, "security": [ { "apiKeyHeader": [] } ] }