Skip to content

Create ECG analysis tasks

POST
/v3/orgs/{organization_path}/tasks
curl --request POST \
--url https://api.cardio.ai/v3/orgs/example/tasks \
--header 'Content-Type: application/json' \
--header 'X-Api-Token: <X-Api-Token>' \
--data '{ "upload_id": "example", "auto_complete": true, "investigation_id": "example", "device_id": "example", "indications": [ "example" ], "searching_tags": [ "example" ], "patient_id": "example", "patient_first_name": "example", "patient_last_name": "example", "patient_gender": "FEMALE", "patient_birth_date": "2026-04-15", "patient_age": 1, "patient_height": 1, "patient_weight": 1, "recording_start_time": "2026-04-15T12:00:00Z", "recording_time_zone": "example" }'

Creates one or more ECG analysis tasks based on uploaded files.

Input scenarios

Single ECG with multiple files

If a single ECG record consists of several files, such as MIT-BIH .hea plus signal files, upload the files together as an archive. The backend treats all related files inside the archive as one ECG record and creates one task.

Multiple ECG records in archive

If an archive contains multiple ECG records, the backend creates a separate task for each detected record.

Single file upload

If uploaded data is not an archive, the upload is interpreted as exactly one ECG record and creates one task.

Draft task

If no ECG file or archive is included, the backend creates a draft task without an ECG record.

Patient and recording information override

Patient and recording fields in the request override values detected in ECG files. When one archive contains several ECG records, the same override values are applied to every created task. For precise per-record metadata, upload one ECG record per request.

Field defaults

Omitted fields may be filled from organization or user profile settings for ordering information, report configuration, and notification recipients.

organization_path
required
string

Unique organization path from organization settings.

Create task request.

Media type application/json

Request payload for creating a new task, including upload, patient, and recording details.

object
upload_id

Upload session ID. Omit it to create a draft task without ECG data.

string
auto_complete

Indicates whether the task should be fully processed automatically without manual approval.

boolean
investigation_id

Hospital administration code assigned to the investigation.

string
device_id

Identifier or type code of the recording device.

string
indications

Patient symptoms or conditions prompting the medical investigation.

Array<string>
searching_tags

Additional tags for searching and filtering.

Array<string>
patient_id

Unique patient code in the hospital administration.

string
patient_first_name

Patient first name.

string
patient_last_name

Patient last name.

string
patient_gender

Patient gender.

string
Allowed values: FEMALE MALE UNDIFFERENTIATED
patient_birth_date

Patient date of birth in ISO 8601 date format, for example 1970-01-31.

string format: date
patient_age

Patient age in years.

integer format: uint32
patient_height

Patient height in centimeters.

integer format: uint32
patient_weight

Patient weight in grams.

integer format: uint32
recording_start_time

Recording start time in UTC, for example 2024-06-23T18:30:00Z.

string format: date-time
recording_time_zone

IANA time zone identifier, for example Europe/London.

string

Successful response containing the IDs of the created task or tasks.

Media type application/json

Response payload containing the created task IDs.

object
created_task_ids
required

IDs of the newly created tasks.

Array<integer>
Example generated
{
"created_task_ids": [
1
]
}

Bad Request - missing or invalid parameters.

Media type application/json
string
Example generated
example

Unauthorized - missing, expired, or invalid token.

Media type application/json
string
Example generated
example

Forbidden - the provided token is not authorized to call this endpoint.

Media type application/json
string
Example generated
example

Unsupported Media Type - Content-Type must be application/json.

Media type application/json
string
Example generated
example

Too Many Requests - rate limit exceeded.

Media type application/json
string
Example generated
example