Get started
Connect to the API
Connect to the API by integrating local provider CRM systems with it.
A unique authentication token is needed to connect to the API.
Each token is associated with a single provider and will give providers access to appropriate CPD participant data.
Authentication tokens do not expire.
Request an authentication token
Providers must contact us to request a token for production and sandbox environments.
DfE will send a unique authentication token via secure email.
How to use an authentication token
Include an authentication token in all requests to the API by adding an Authorization
request header (not as part of the URL) in the following format:
Authorization: Bearer {token}
Unauthenticated requests will receive an UnauthorizedResponse
with a 401
error code.
Access YAML format API specs
Provider development teams can also access the OpenAPI spec in YAML formats:
Providers can use API testing tools such as Postman to make test API calls. Providers can import the API as a collection by using Postman’s import feature and copying in the YAML URL of the API spec.
Production and sandbox environments
The API is available via production (live) and sandbox (testing) environments.
Production environment
The production environment is the live environment which processes real data.
API v1:
https://manage-training-for-early-career-teachers.education.gov.uk/api/v1
API v2:
https://manage-training-for-early-career-teachers.education.gov.uk/api/v2
API v3:
https://manage-training-for-early-career-teachers.education.gov.uk/api/v3
Sandbox environment
The sandbox environment is used to test API integrations without affecting real data.
API v1:
https://sb.manage-training-for-early-career-teachers.education.gov.uk/api/v1
API v2:
https://sb.manage-training-for-early-career-teachers.education.gov.uk/api/v2
API v3:
https://sb.manage-training-for-early-career-teachers.education.gov.uk/api/v3
Test the ability to submit ECF declarations in the sandbox ahead of time
Rate limits
Providers are limited to 1,000 requests per 5 minutes when using the API in the production environment. If the limit is exceeded, providers will see 429
HTTP status codes.
This limit on requests for each authentication key is calculated on a rolling basis.
Syncing data best practice
Performing a full sync once a week
We recommend you sync all records in the API twice a week without using the updated_since
filters. DfE can coordinate ‘windows’ for providers to do this when the service has a low background load. Contact us if you need further details.
Regular polling
To ensure you never miss any declarations, participants, transfers or unfunded mentors, we recommend making regular poll requests to the relevant GET endpoints
several times daily. Use the updated_since
filter and the default pagination of [100] records per page.
Continue this until the API response is empty.
Polling windows
Always poll 2 windows back from your last successful update request. This guarantees that all participant data is captured. For example:
- at 3:15pm enter the following request -
/api/v3/participants/ecf?filter[updated_since]=2025-01-28T13:15:00Z
- at 4:15pm enter the following request -
/api/v3/participants/ecf?filter[updated_since]=2025-01-28T14:15:00Z
Try polling randomly rather than on the hour to prevent system overload.