Skip to main content
Creating a new NHS England: NHS England and NHS Digital will merge on 1 February 2023. Learn more.

Ambulance Data Submission - FHIR API

Submit ambulance data to our Data Processing Service (DPS) for analysis and review by NHS England and ambulance trusts, using our Ambulance Data Submission - FHIR API (formerly Ambulance Analytics).

This specification is written from an OAS file.


Use this API to submit ambulance data to our Data Processing Service (DPS) so that it can be made available for analysis and review by NHS England and ambulance trusts.

Ambulance data is information relating to emergency calls (999, 111 and others), received at an Emergency Operations Centre (EOC) and processed into a Computer Aided Despatch (CAD) system, including:

  • call details
  • response details - including response times and episode outcome times patient
  • contact details - including patient demographics, patient response details, patient information, injury information, patient assessment, medication, observations, diagnoses, conveying outcome, safeguarding and public health information

You can:

  • post ambulance data individually or in batches

You cannot:

  • read any of the records stored in DPS

The API is asynchronous - when you submit data, it acknowledges receipt without validating or processing the data first. To receive error notifications, you need to use MESH. The following diagram illustrates the end-to-end process:

Ambulance Overview

The following describes the end-to-end process:

  1. The ambulance trust system sends the ambulance data to the Ambulance Data Submission API.
  2. The Ambulance Data Submission (ADS) API forwards the ambulance data to our Data Processing System (DPS).
  3. If there is an error, DPS sends an error notification to MESH.
  4. The ambulance trust system retrieves the error notification from MESH.
  5. An ADS User views the ambulance data in our NHS Digital ADS Dashboards.
  6. The NHS Digital ADS Dashboards get the ambulance data from DPS.

Who can use this API

This API can only be used where there is a legal basis to do so. Make sure you have a valid use case before you go too far with your development. You must do this before you can go live (see ‘Onboarding’ below).

The following API is related to this one:

API status and roadmap

This API is in production.

To see our roadmap, or to suggest, comment or vote on features for this API, see our interactive product backlog.

If you have any other queries, contact us.

Service level

This API is a bronze service, meaning it is operational and supported only during business hours (8am to 6pm), Monday to Friday excluding bank holidays.

For more details, see service levels.


This API is RESTful and uses HTTP POST to submit data.

It conforms to the FHIR global standard for health care data exchange, specifically to FHIR R4 (v4.0.1), except that it does not support the capabilities interaction.

It includes some country-specific FHIR extensions, which are built against FHIR UK Core, specifically UK.core.r4.v2/2.0.8.

For details of FHIR message payload, see the Ambulance Data Set FHIR Implementation Guide.

Network access

This API is available on the internet and, indirectly, on the Health and Social Care Network (HSCN).

For more details, see Network access for APIs.

Security and authorisation

Application-restricted access

This API is application-restricted, meaning we authenticate the calling application but not the end user.

You can use this access mode as follows:

  • unattended (end user not present), for example periodically submit ambulance data from ambulance trust systems to DPS

To use this access mode, use the following security pattern:

Environments and testing

Sandbox testing

Environment Base URL
Integration test

Our sandbox environment:

  • is for early developer testing
  • only covers a limited set of scenarios
  • is stateless, so it does not actually persist any updates
  • is open access, so does not allow you to test authorisation

For more details on sandbox testing, or to try out the sandbox using our "Try this API" feature, see the documentation for each endpoint.

Integration testing

Our integration test environment:

  • is for formal integration testing
  • is for receiving data quality reports of test data


You need to get your software approved by us before it can go live with this API. We call this onboarding. The onboarding process can sometimes be quite long, so it’s worth planning well ahead.

To onboard for this API, follow the Supplier Conformance Assessment List (SCAL) process.

When following the SCAL process, note that:

  • In step 8: you need to review and complete the ADS API risk log to show that you have understood and mitigated the various risks. You might be asked to provide some evidence to prove that controls have been put in place. You’ll find the risk log embedded within the ADS API tab in the SCAL.
  • In step 10: when you complete the Service Desk Registration Form, send it to
  • In step 11: submit your completed SCAL to
  • In step 14: to request production access, contact us at


We use standard HTTP status codes to show whether an API request succeeded or not. They are usually in the range:

  • 200 to 299 if it succeeded, including code 202 if it was accepted by an API that needs to wait for further action
  • 400 to 499 if it failed because of a client error by your application
  • 500 to 599 if it failed because of an error on our server

Errors specific to each API are shown in the Endpoints section, under Response. See our reference guide for more on errors.


Submit Ambulance Data

post /$process-message


Use this endpoint to submit ambulance data to DPS.


This endpoint does not validate the submitted payload, it only acknowledges receipt of the payload. See the FHIR implementation guide for how to structure the payload data.


HTTP status: 200

Data received and sent to DPS.


Content type: application/json



Name Description

The submission ID for the message you sent.

Last edited: 14 December 2022 12:55 pm