The Intron Health API follows a simple two-step process:
All API requests require an API key to be included in the headers:
Authorization: Bearer [access-key]
https://infer.intron.health/file/v1/upload
Field | Type | Description | Required | Options | Default |
---|---|---|---|---|---|
audio_file_name |
String | non-unique file name | yes | ||
audio_file_url |
String | url to a readable file | yes | ||
Post processing options | |||||
use_diarization |
String | get the transcript text as a diarized response | no | TRUE | FALSE | |
use_category |
String | set the category of post-processing to use on the file | no |
|
file_category_telehealth |
Post processing options for the file categories
Field | Type | Description | Required | Options | Default |
---|---|---|---|---|---|
get_summary |
String | get a summary of the transcript | no | TRUE | FALSE |
Field | Type | Description | Required | Options | Default |
---|---|---|---|---|---|
get_summary |
String | get a summary of the transcript | no | TRUE | FALSE | |
get_entity_list |
String | get extracted entities from the transcript | no | TRUE | FALSE | |
get_treatment_plan |
String | get extracted treatment plan from the transcript | no | TRUE | FALSE | |
get_soap_note |
String | get extracted SOAP note from the transcript | no | TRUE | FALSE | |
get_clerking |
String | get extracted clerking from the transcript | no | TRUE | FALSE | |
get_icd_codes |
String | get the extracted icd/billing codes | no | TRUE | FALSE | |
get_suggestions |
String | get suggestions of important questions to ask or instructions to give patient | no | TRUE | FALSE | |
get_differential_diagnosis |
String | get the differential diagnosis of the patient | no | TRUE | FALSE | |
get_followup_instructions |
String | get follow up instructions for the patient | no | TRUE | FALSE | |
get_practice_guidelines |
String | get practice guidelines for the patient | no | TRUE | FALSE |
Field | Type | Description | Required | Options | Default |
---|---|---|---|---|---|
get_summary |
String | get a summary of the transcript | no | TRUE | FALSE | |
get_entity_list |
String | get extracted entities from the transcript | no | TRUE | FALSE | |
get_treatment_plan |
String | get extracted treatment plan from the transcript | no | TRUE | FALSE | |
get_op_note |
String | get the extracted operation note | no | TRUE | FALSE | |
get_icd_codes |
String | get the extracted icd/billing codes | no | TRUE | FALSE | |
get_suggestions |
String | get suggestions of important questions to ask or instructions to give patient | no | TRUE | FALSE |
Field | Type | Description | Required | Options | Default |
---|---|---|---|---|---|
get_summary |
String | get a summary of the transcript | no | TRUE | FALSE | |
get_call_center_results |
String | get the resolution of a call | no | TRUE | FALSE | |
get_call_center_agent_score |
String | get the performance score for the agent in a call | no | TRUE | FALSE | |
get_call_center_agent_score_category |
String | get the performance assessment | no | TRUE | FALSE | |
get_call_center_product_info |
String | get the product information discussed in the call | no | TRUE | FALSE | |
get_call_center_product_insights |
String | get ideas to improve the product based on customer feedback in the call | no | TRUE | FALSE | |
get_call_center_compliance |
String | get the compliance check of the call | no | TRUE | FALSE | |
get_call_center_feedback |
String | get the feedback of the call | no | TRUE | FALSE | |
get_call_center_sentiment |
String | get caller sentiment analysis | no | TRUE | FALSE |
curl --location 'https://infer.intron.health/file/v1/upload' \
--header 'Authorization: Bearer api-key' \
--form 'audio_file_name="my_file_2"' \
--form 'audio_file_blob=@"/C:/Users/aaaa/file.wav"'
import requests
url = "https://infer.intron.health/file/v1/upload"
payload = {
"audio_file_name":"file-1"
}
files = {
'audio_file_blob': open(file_path, 'rb')
}
headers = {
"Authorization": f"Bearer {api_key}"
}
response = requests.request("POST", url, headers=headers, files=files, data=payload)
print(response.text)
const formData = new FormData();
formData.append('audio_file_blob', file);
formData.append('audio_file_name', file.name);
const requestOptions = {
method: "POST",
headers: {
'Authorization': `Bearer ${apiKey}`
},
body: forData
};
fetch("https://infer.intron.health/file/v1/upload", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
{
"data": {
"file_id": "12a9760f-b165-4404-91d0-a65d4cdt78fs"
},
"message": "file queued for processing",
"status": "Ok"
}
{
"status": "Ok",
"message": "file status found",
"data": {
"processing_status": "FILE_TRANSCRIBED",
"audio_file_name": "file-1",
"audio_transcript": "hello world",
"processed_audio_duration_in_seconds": 20,
"transcript_summary": "Brief overview of the consultation discussing GERD symptoms",
"transcript_soap_note": "SOAP Note:\n\nSubjective:\n- Patient reports heartburn and acid reflux\n- Symptoms worse at night\n\nObjective:\n- No visible throat inflammation\n- Normal vital signs\n\nAssessment:\n- GERD likely diagnosis\n\nPlan:\n- Prescribed PPI medication\n- Dietary modifications recommended",
"transcript_entity_list": "Medical Entity Extraction:\n1. Patient Complaints:\n- Heartburn\n- Acid reflux\n2. Medications:\n- PPI prescribed\n3. Diagnosis:\n- GERD",
"transcript_treatment_plan": "Treatment Plan:\n1. PPI medication daily\n2. Avoid trigger foods\n3. Follow-up in 2 weeks",
"transcript_suggestions": "General Suggestions:\n- Schedule follow-up in 2 weeks\n\nDifferential Diagnosis:\n- Consider H. pylori infection\n- Rule out Barrett's esophagus\n\nFollow-up Instructions:\n- Monitor symptoms daily\n- Keep food diary\n\nPractice Guidelines:\n- ACG Guidelines for GERD Management\n- Standard acid suppression protocol",
"transcript_billing_codes": "ICD-11: DA42.0 - Gastro-esophageal reflux disease\nSNOMED: 235595009 - GERD\nCPT: 99213 - Office visit, established patient",
"transcript_clerking": "Detailed clerking notes formatted in standard medical format"
}
}
curl --location --request GET 'https://infer.intron.health/file/v1/upload' \
--header 'Authorization: Bearer api-key' \
--form 'audio_file_name="my_file_2"' \
--form 'audio_file_blob=@"/C:/Users/aaaa/file.wav"' \
--form 'use_diarization="TRUE"'
import requests
url = "https://infer.intron.health/file/v1/upload"
payload = {
"audio_file_name":"file-1",
'use_diarization:"TRUE"
}
files = {
'audio_file_blob': open(file_path, 'rb')
}
headers = {
"Authorization": f"Bearer {api_key}"
}
response = requests.request("POST", url, headers=headers, files=files, data=payload)
print(response.text)
const formData = new FormData();
formData.append('audio_file_blob', file);
formData.append('audio_file_name', file.name);
formData.append('use_diarization', "TRUE");
const requestOptions = {
method: "POST",
headers: {
'Authorization': `Bearer ${apiKey}`
},
body: forData
};
fetch("https://infer.intron.health/file/v1/upload", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
{
"data": {
"file_id": "12a9760f-b165-4404-91d0-a65d4cdt78fs"
},
"message": "file queued for processing",
"status": "Ok"
}
{
"status": "Ok",
"message": "file status found",
"data": {
"processing_status": "FILE_TRANSCRIBED",
"audio_file_name": "file-1",
"audio_transcript": "hello world",
"processed_audio_duration_in_seconds": 20,
"transcript_summary": "Customer called regarding Premium Plan upgrade",
"transcript_results": "Call Resolution:\n- Issue resolved successfully\n- Customer satisfied with solution\n\nCaller Sentiment:\n- Initially frustrated\n- Ended call positively\n\nProduct Information:\n- Product: Premium Plan\n- Brand: Example Corp\n- Model: Enterprise Edition",
"transcript_agent_score": "Numerical Score:\n- Overall Score: 42/50\n- Welcome/Introduction: 5/5\n- Problem Resolution: 12/15\n\nCategorical Assessment:\n- Performance Level: Green\n- Areas of Excellence: Customer handling, product knowledge",
"transcript_product_insight": "Product Feedback:\n- Upgrade process could be simplified\n- Customers requesting more payment options",
"transcript_compliance": "Compliance Assessment:\n- All required protocols followed\n- Security verification completed\n- Proper disclosures provided",
"transcript_feedback": "Agent Feedback:\n- Excellent handling of initial frustration\n- Clear explanation of upgrade process\n- Consider faster security verification"
}
}
curl --location --request GET 'https://infer.intron.health/file/v1/upload' \
--header 'Authorization: Bearer api-key' \
--form 'audio_file_name="my_file_2"' \
--form 'audio_file_blob=@"/C:/Users/aaaa/file.wav"' \
--form 'use_category'='file_category_general' \
--form 'get_summary'='TRUE'
import requests
url = "https://infer.intron.health/file/v1/upload"
payload = {
"audio_file_name":"file-1",
"use_category":"file_category_general",
"get_summary":"TRUE"
}
files = {
'audio_file_blob': open(file_path, 'rb')
}
headers = {
"Authorization": f"Bearer {api_key}"
}
response = requests.request("POST", url, headers=headers, files=files, data=payload)
print(response.text)
const formData = new FormData();
formData.append('audio_file_blob', file);
formData.append('audio_file_name', file.name);
formData.append('use_category', "file_category_general");
formData.append('get_summary', "TRUE");
const requestOptions = {
method: "POST",
headers: {
'Authorization': `Bearer ${apiKey}`
},
body: forData
};
fetch("https://infer.intron.health/file/v1/upload", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
{
"data": {
"file_id": "12a9760f-b165-4404-91d0-a65d4cdt78fs"
},
"message": "file queued for processing",
"status": "Ok"
}
{
"status": "Ok",
"message": "file status found",
"data": {
"processing_status": "FILE_TRANSCRIBED",
"audio_file_name": "file-1",
"audio_transcript": "hello world",
"transcript_summary": "MarkDown formated text",
"processed_audio_duration_in_seconds": 20
}
}
curl --location --request GET 'https://infer.intron.health/file/v1/upload' \
--header 'Authorization: Bearer api-key' \
--form 'audio_file_name="my_file_2"' \
--form 'audio_file_blob=@"/C:/Users/aaaa/file.wav"' \
--form 'use_category'='file_category_telehealth' \
--form 'get_soap_note'='TRUE' \
--form 'get_summary'='TRUE' \
--form 'get_entity_list'='TRUE' \
--form 'get_treatment_plan'='TRUE' \
--form 'get_clerking'='TRUE' \
--form 'get_suggestions'='TRUE' \
--form 'get_icd_codes'='TRUE' \
--form 'get_differential_diagnosis'='TRUE' \
--form 'get_followup_instructions'='TRUE' \
--form 'get_practice_guidelines'='TRUE'
import requests
url = "https://infer.intron.health/file/v1/upload"
payload = {
"audio_file_name":"file-1",
"use_category":"file_category_telehealth",
"get_soap_note":"TRUE",
"get_summary":"TRUE",
"get_entity_list":"TRUE",
"get_treatment_plan":"TRUE",
"get_clerking":"TRUE",
"get_suggestions":"TRUE",
"get_icd_codes":"TRUE",
"get_differential_diagnosis":"TRUE",
"get_followup_instructions":"TRUE",
"get_practice_guidelines":"TRUE"
}
files = {
'audio_file_blob': open(file_path, 'rb')
}
headers = {
"Authorization": f"Bearer {api_key}"
}
response = requests.request("POST", url, headers=headers, files=files, data=payload)
print(response.text)
const formData = new FormData();
formData.append('audio_file_blob', file);
formData.append('audio_file_name', file.name);
formData.append('use_category', "file_category_general");
formData.append('get_soap_note', "TRUE");
formData.append('get_summary', "TRUE");
formData.append('get_entity_list', "TRUE");
formData.append('get_treatment_plan', "TRUE");
formData.append('get_clerking', "TRUE");
formData.append('get_suggestions', "TRUE");
formData.append('get_icd_codes', "TRUE");
formData.append('get_differential_diagnosis', "TRUE");
formData.append('get_followup_instructions', "TRUE");
formData.append('get_practice_guidelines', "TRUE");
const requestOptions = {
method: "POST",
headers: {
'Authorization': `Bearer ${apiKey}`
},
body: forData
};
fetch("https://infer.intron.health/file/v1/upload", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
{
"data": {
"file_id": "12a9760f-b165-4404-91d0-a65d4cdt78fs"
},
"message": "file queued for processing",
"status": "Ok"
}
{
"status": "Ok",
"message": "file status found",
"data": {
"processing_status": "FILE_TRANSCRIBED",
"audio_file_name": "file-1",
"audio_transcript": "hello world",
"processed_audio_duration_in_seconds": 20,
"transcript_summary": "Customer called regarding Premium Plan upgrade",
"transcript_soap_note": "SOAP note of the patient",
"transcript_entity_list": "List of entities extracted from the transcript",
"transcript_treatment_plan": "Treatment plan of the patient",
"transcript_clerking": "Clerking of the patient",
"transcript_icd_codes": "ICD/Billing codes extracted from the transcript",
"transcript_suggestions": "Suggestions of important questions to ask or instructions to give patient",
"transcript_differential_diagnosis": "Differential diagnosis of the patient",
"transcript_followup_instructions": "Follow up instructions for the patient",
"transcript_practice_guidelines": "Practice guidelines for the patient"
}
}