CardioX API allows developers to use our powerful neural engine and database to obtain HR and AI BP™ parameters from Apple watch ECG reading.

This is a 2 step API:

- First request - ECG scanner - requires a PDF file generated by native Apple Watch ECG app. Response provides users’ name, age, heart rate and ECG points.

- Second request - AI BP™ - requires the following parameters: users’ sex, date of birth and ECG points provided by ECG scanner response. AI BP™ reading is a final value generated by the service.

Please refer to the instructions below:

Ecg Scanner

Service purpose
Parsing a pdf document generated by native iPhone ECG app.

Service IP endpoint

Service methods

  • FileUpload (POST /api/FileUpload HTTP/1.1)

Method returns name, age, heart rate and ECG points from the uploaded pdf document.

Request requirements

  1. Content-Type: application/pdf
  2. Pdf document to parse

Sample Request

POST /api/FileUpload HTTP/1.1

Host: ecgscanner.azurewebsites.net

Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW


Content-Disposition: form-data; name=""; filename="ECG-2020-05-24-22_450300.pdf"

Content-Type: application/pdf




JSON object with requested data.

Sample Response

{"Name":"Name surname","Age":29,"HeartRate":82,"EcgPoints":[0.43965518,


Blood pressure AI

Service purpose
Determination of AI BP™ based on ECG points

Service IP endpoint

Service methods

  • PredictXGB (POST /api/PredictXGB HTTP/1.1)

Method returns AI BP™ as a result from 10.000 point of ECG.

Request requirements

  1. Content-Type: application/json
  2. Sex: F or M
  3. BirthDate in the following format: YYYY-MM-DD
  4. CreationDate in the following format: YYYY-MM-DD
  5. DataArray: data array must be 10,000 long

All fields are required except for creationDate.
Data can be normalized or not, normalization occurs if necessary on the server side.

Handled exceptions

  1. If there is no data: "No data"
  2. If the data length is not 10.000: "The number of points should be equal to 10,000"
  3. If sex is not specified: “No sex in the data”
  4. If birthday is not specified: “No birthDate in the data”

Sample Request

curl --location --request POST '’' \

--header 'Content-Type: application/json' \ --data-raw '{"sex":"F","birthDate":"1971-07-14","dataArray":[0.80324268759929, 0.79875712550229, 0.79805625642463, 0.80539201943744, 0.81118587047939, 0.81384917297449, 0.80595271469956,

Sample Response


*AI BP™=Blood Pressure

Get in touch

    This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.