{ "runId": "550e8400-e29b-41d4-a716-446655440000", "status": "accepted", "message": "Request accepted. Results will be delivered to your webhook."}
{
"error": "Validation error",
"details": [
{
"path": "labResults",
"message": "Array must contain at least 1 element(s)"
}
]
}
{
"error": "Unauthorized",
"message": "Invalid or missing API key"
}
{
"error": "Too many concurrent requests",
"message": "You have 7 active lab-results requests. Maximum is 7.",
"activeCount": 7,
"limit": 7
}
{
"error": "<string>",
"message": "<string>"
}
API Reference
POST /api/v1/lab-results
Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID.
Results are delivered asynchronously to your webhook URL.
Use Case:
This endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (/api/v1/agent) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on:
Interpreting abnormal values in context
Identifying clinically significant patterns
Providing evidence-based recommendations
Generating patient-friendly explanations
Processing Flow:
Request validation and API key authentication
Immediate response with runId and status: "accepted" (returns in ~1 second)
"Request accepted. Results will be delivered to your webhook."
⌘I
{"docsConfig":{"theme":"willow","$schema":"https://mintlify.com/docs.json","name":"Helios API Documentation","colors":{"primary":"#006AD4","light":"#007FFF","dark":"#006AD4"},"logo":{"light":"https://mintcdn.com/helios-61e0d432/dmbC4s5fKlz17W1I/logo/light.svg?fit=max\u0026auto=format\u0026n=dmbC4s5fKlz17W1I\u0026q=85\u0026s=d7bbcbb93d69ed5b098d89b7701e9c82","dark":"https://mintcdn.com/helios-61e0d432/dmbC4s5fKlz17W1I/logo/dark.svg?fit=max\u0026auto=format\u0026n=dmbC4s5fKlz17W1I\u0026q=85\u0026s=ef324a67dc9dc6fdedaf7652b3d7a793"},"favicon":"favicon.svg","api":{"playground":{"display":"none"}},"appearance":{"default":"light","strict":true},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://www.heliosai.health/dashboard"}},"footer":{"socials":{"website":"https://heliosai.health","linkedin":"https://www.linkedin.com/company/helios-intelligence"}},"seo":{"indexing":"navigable"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"helios-61e0d432","hasAudioNarration":false,"actualSubdomain":"helios-61e0d432","customDomains":["docs.heliosai.health"],"gitSource":{"type":"github","owner":"helios-intelligence","repo":"helios-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae94599e5b11aa510b3c0e6:success","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":11},{"language":"default","tag":"Documentation","count":6},{"language":"default","tag":"Getting Started","count":6},{"language":"default","tag":"Agents","count":2},{"language":"default","tag":"Overview","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/post-apiv1lab-results","slug":"/api-reference/post-apiv1lab-results","pageMetadata":{"title":"POST /api/v1/lab-results","description":"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID.\nResults are delivered asynchronously to your webhook URL.\n\n**Use Case:**\nThis endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (`/api/v1/agent`) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on:\n- Interpreting abnormal values in context\n- Identifying clinically significant patterns\n- Providing evidence-based recommendations\n- Generating patient-friendly explanations\n\n**Processing Flow:**\n1. Request validation and API key authentication\n2. Immediate response with `runId` and `status: \"accepted\"` (returns in ~1 second)\n3. Background analysis continues (typically 3-6 minutes)\n4. Status updates sent to your webhook during processing\n5. Final results delivered to your webhook URL\n\n**Element Limits:**\n- Lab Results: Max 200 (sorted by date if dates provided, most recent first)\n- Conditions: Max 100\n- Medications: Max 30\n- Allergies: Max 20\n- Family History: Max 20\n\n**Pricing:** $0.65 per request","deprecated":null,"version":null,"openapi":"/openapi/v1.json post /api/v1/lab-results","href":"/api-reference/post-apiv1lab-results","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID.\\nResults are delivered asynchronously to your webhook URL.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Use Case:\"\n }), \"\\nThis endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (\", _jsx(_components.code, {\n children: \"/api/v1/agent\"\n }), \") which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Interpreting abnormal values in context\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Identifying clinically significant patterns\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Providing evidence-based recommendations\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Generating patient-friendly explanations\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Processing Flow:\"\n })\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Request validation and API key authentication\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Immediate response with \", _jsx(_components.code, {\n children: \"runId\"\n }), \" and \", _jsx(_components.code, {\n children: \"status: \\\"accepted\\\"\"\n }), \" (returns in ~1 second)\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Background analysis continues (typically 3-6 minutes)\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Status updates sent to your webhook during processing\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Final results delivered to your webhook URL\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Element Limits:\"\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Lab Results: Max 200 (sorted by date if dates provided, most recent first)\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Conditions: Max 100\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Medications: Max 30\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Allergies: Max 20\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Family History: Max 20\"\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Pricing:\"\n }), \" $0.65 per request\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"POST /api/v1/lab-results","description":"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID.\nResults are delivered asynchronously to your webhook URL.\n\n**Use Case:**\nThis endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (`/api/v1/agent`) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on:\n- Interpreting abnormal values in context\n- Identifying clinically significant patterns\n- Providing evidence-based recommendations\n- Generating patient-friendly explanations\n\n**Processing Flow:**\n1. Request validation and API key authentication\n2. Immediate response with `runId` and `status: \"accepted\"` (returns in ~1 second)\n3. Background analysis continues (typically 3-6 minutes)\n4. Status updates sent to your webhook during processing\n5. Final results delivered to your webhook URL\n\n**Element Limits:**\n- Lab Results: Max 200 (sorted by date if dates provided, most recent first)\n- Conditions: Max 100\n- Medications: Max 30\n- Allergies: Max 20\n- Family History: Max 20\n\n**Pricing:** $0.65 per request","deprecated":null,"version":null,"openapi":"/openapi/v1.json post /api/v1/lab-results","href":"/api-reference/post-apiv1lab-results","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"POST /api/v1/lab-results","description":"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID.\nResults are delivered asynchronously to your webhook URL.\n\n**Use Case:**\nThis endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (`/api/v1/agent`) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on:\n- Interpreting abnormal values in context\n- Identifying clinically significant patterns\n- Providing evidence-based recommendations\n- Generating patient-friendly explanations\n\n**Processing Flow:**\n1. Request validation and API key authentication\n2. Immediate response with `runId` and `status: \"accepted\"` (returns in ~1 second)\n3. Background analysis continues (typically 3-6 minutes)\n4. Status updates sent to your webhook during processing\n5. Final results delivered to your webhook URL\n\n**Element Limits:**\n- Lab Results: Max 200 (sorted by date if dates provided, most recent first)\n- Conditions: Max 100\n- Medications: Max 30\n- Allergies: Max 20\n- Family History: Max 20\n\n**Pricing:** $0.65 per request","operationId":"analyzeLabResults","requestBody":"8d5876f0-26a8-4bc5-aa01-0e1300822750","responses":{"200":"ac9b7c78-aeb3-434e-9b0b-8549332e37a9","400":"07d10cf8-2bcc-464a-9e80-78ccb72c1f2f","401":"9b46d3e3-3152-4d5d-827f-1fe18d0ccb08","429":"6d463c20-f20b-468d-b910-09a437f79842","500":"f81dbeda-e24f-4eeb-896f-9e4fe1787252"},"method":"post","type":"path","servers":["bd5df04c-e9a4-4ad7-8a41-4c812ab7a877"],"security":["28c35dc1-73c6-4ba2-9d1e-17d2c93a5ff6"],"path":"/api/v1/lab-results","baseUrlOptions":["https://api.heliosai.health"],"title":"POST /api/v1/lab-results","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["labResults"],"properties":{"labResults":{"type":"array","description":"Array of lab test results to analyze. Dates are recommended for proper recency-based sorting. Max 200 labs processed.","minItems":1,"items":{"type":"object","required":["name","value"],"description":"A single lab test result","properties":{"name":{"type":"string","description":"Lab test name","example":"Creatinine","isRequired":true,"uniqueKey":"labResults.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","description":"Result value (may include unit)","example":"1.8 mg/dL","isRequired":true,"uniqueKey":"labResults.items.[INDEX].value","typeLabel":"string"},"flag":{"type":"string","description":"Abnormality flag","enum":["High","Low","Normal","Critical"],"example":"High","uniqueKey":"labResults.items.[INDEX].flag","typeLabel":"enum\u003cstring>"},"referenceRange":{"type":"string","description":"Normal reference range","example":"0.7-1.3 mg/dL","uniqueKey":"labResults.items.[INDEX].referenceRange","typeLabel":"string"},"date":{"type":"string","description":"Date of the lab test (ISO 8601 or YYYY-MM-DD). Recommended for proper recency sorting.","example":"2025-01-15","uniqueKey":"labResults.items.[INDEX].date","typeLabel":"string"},"unit":{"type":"string","description":"Unit of measurement (if not in value)","example":"mg/dL","uniqueKey":"labResults.items.[INDEX].unit","typeLabel":"string"},"category":{"type":"string","description":"Lab category for DB matching","example":"Renal","uniqueKey":"labResults.items.[INDEX].category","typeLabel":"string"},"notes":{"type":"string","description":"Additional context","uniqueKey":"labResults.items.[INDEX].notes","typeLabel":"string"}},"uniqueKey":"labResults.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"labResults","typeLabel":"object[]"},"patientContext":{"type":"object","description":"Patient context for lab interpretation","properties":{"name":{"type":"string","description":"Patient name or identifier","example":"Patient","uniqueKey":"patientContext.name","typeLabel":"string"},"age":{"type":"string","description":"Patient age","example":"58","uniqueKey":"patientContext.age","typeLabel":"string"},"gender":{"type":"string","description":"Patient gender","example":"male","uniqueKey":"patientContext.gender","typeLabel":"string"},"conditions":{"type":"array","description":"Medical conditions (max 100)","items":{"type":"object","required":["name"],"description":"Medical condition for lab interpretation context","properties":{"name":{"type":"string","description":"Condition name","example":"Type 2 Diabetes Mellitus","isRequired":true,"uniqueKey":"patientContext.conditions.items.[INDEX].name","typeLabel":"string"},"status":{"type":"string","description":"Condition status","example":"active","uniqueKey":"patientContext.conditions.items.[INDEX].status","typeLabel":"string"},"onsetDate":{"type":"string","description":"When the condition started","example":"2019-03","uniqueKey":"patientContext.conditions.items.[INDEX].onsetDate","typeLabel":"string"},"notes":{"type":"string","description":"Additional context","uniqueKey":"patientContext.conditions.items.[INDEX].notes","typeLabel":"string"}},"uniqueKey":"patientContext.conditions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"patientContext.conditions","typeLabel":"object[]"},"medications":{"type":"array","description":"Current medications (max 30)","items":{"type":"object","required":["name"],"description":"Medication for lab interpretation context","properties":{"name":{"type":"string","description":"Medication name","example":"Metformin","isRequired":true,"uniqueKey":"patientContext.medications.items.[INDEX].name","typeLabel":"string"},"dosage":{"type":"string","description":"Dosage amount","example":"500mg","uniqueKey":"patientContext.medications.items.[INDEX].dosage","typeLabel":"string"},"frequency":{"type":"string","description":"How often taken","example":"twice daily","uniqueKey":"patientContext.medications.items.[INDEX].frequency","typeLabel":"string"},"status":{"type":"string","description":"Medication status","example":"active","uniqueKey":"patientContext.medications.items.[INDEX].status","typeLabel":"string"}},"uniqueKey":"patientContext.medications.items.[INDEX]","typeLabel":"object"},"uniqueKey":"patientContext.medications","typeLabel":"object[]"},"allergies":{"type":"array","description":"Known allergies (max 20)","items":{"type":"string","uniqueKey":"patientContext.allergies.items.[INDEX]","typeLabel":"string"},"uniqueKey":"patientContext.allergies","typeLabel":"string[]"},"familyHistory":{"type":"array","description":"Family history items (max 20)","items":{"type":"string","uniqueKey":"patientContext.familyHistory.items.[INDEX]","typeLabel":"string"},"uniqueKey":"patientContext.familyHistory","typeLabel":"string[]"},"vitalSigns":{"type":"array","description":"Recent vital signs","items":{"type":"object","required":["display","value"],"description":"Vital sign measurement","properties":{"display":{"type":"string","description":"Vital sign name","example":"Systolic blood pressure","isRequired":true,"uniqueKey":"patientContext.vitalSigns.items.[INDEX].display","typeLabel":"string"},"value":{"type":"string","description":"Measurement value","example":"142","isRequired":true,"uniqueKey":"patientContext.vitalSigns.items.[INDEX].value","typeLabel":"string"},"unit":{"type":"string","description":"Unit of measurement","example":"mmHg","uniqueKey":"patientContext.vitalSigns.items.[INDEX].unit","typeLabel":"string"},"referenceRange":{"type":"string","description":"Normal reference range","example":"90-120 mmHg","uniqueKey":"patientContext.vitalSigns.items.[INDEX].referenceRange","typeLabel":"string"},"interpretation":{"type":"string","description":"Interpretation","example":"High","uniqueKey":"patientContext.vitalSigns.items.[INDEX].interpretation","typeLabel":"string"},"date":{"type":"string","description":"Measurement date","example":"2025-01-15","uniqueKey":"patientContext.vitalSigns.items.[INDEX].date","typeLabel":"string"}},"uniqueKey":"patientContext.vitalSigns.items.[INDEX]","typeLabel":"object"},"uniqueKey":"patientContext.vitalSigns","typeLabel":"object[]"},"socialHistory":{"type":"string","description":"Social history (smoking, alcohol, diet, exercise)","uniqueKey":"patientContext.socialHistory","typeLabel":"string"},"clinicalNotes":{"type":"string","description":"Free-text clinical notes","uniqueKey":"patientContext.clinicalNotes","typeLabel":"string"}},"uniqueKey":"patientContext","typeLabel":"object"},"webhookUrl":{"type":"string","format":"uri","description":"URL where analysis results will be delivered via webhook","example":"https://your-server.com/webhook/helios","uniqueKey":"webhookUrl","typeLabel":"string\u003curi>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"minimal":{"title":"minimal","value":{"webhookUrl":"https://your-server.com/webhook/helios","labResults":[{"name":"Hemoglobin A1c","value":"7.2%","flag":"High","referenceRange":"4.0-5.6%","date":"2025-01-15"}]}},"withPatientContext":{"title":"withPatientContext","value":{"webhookUrl":"https://your-server.com/webhook/helios","labResults":[{"name":"Creatinine","value":"1.8","unit":"mg/dL","flag":"High","referenceRange":"0.7-1.3 mg/dL","date":"2025-01-15","category":"Renal"},{"name":"eGFR","value":"38","unit":"mL/min/1.73m2","flag":"Low","referenceRange":">60 mL/min/1.73m2","date":"2025-01-15","category":"Renal"},{"name":"Hemoglobin A1c","value":"8.1%","flag":"High","referenceRange":"4.0-5.6%","date":"2025-01-15"}],"patientContext":{"name":"Patient","age":"58","gender":"male","conditions":[{"name":"Type 2 Diabetes Mellitus","status":"active","onsetDate":"2018-03"},{"name":"Essential Hypertension","status":"active","onsetDate":"2019-06"},{"name":"Chronic Kidney Disease, Stage 3b","status":"active","onsetDate":"2023-11"}],"medications":[{"name":"Metformin","dosage":"1000mg","frequency":"twice daily","status":"active"},{"name":"Lisinopril","dosage":"20mg","frequency":"once daily","status":"active"}],"familyHistory":["Father: Type 2 Diabetes (onset age 52)","Mother: Coronary Artery Disease (onset age 61)"]}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"ac9b7c78-aeb3-434e-9b0b-8549332e37a9":{"description":"Request accepted - analysis started in background","headers":{"X-Concurrent-Limit":{"description":"Maximum concurrent requests allowed (default: 7)","schema":{"type":"integer","example":7}},"X-Concurrent-Active":{"description":"Currently active lab-results requests (including this one)","schema":{"type":"integer","example":2}},"X-Concurrent-Remaining":{"description":"Available slots for additional requests","schema":{"type":"integer","example":5}}},"content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string","format":"uuid","description":"Unique identifier for this analysis run","example":"550e8400-e29b-41d4-a716-446655440000","isRequired":true,"uniqueKey":"runId","typeLabel":"string\u003cuuid>"},"status":{"type":"string","enum":["accepted"],"description":"Request was accepted and processing has started","example":"accepted","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable status message","example":"Request accepted. Results will be delivered to your webhook.","uniqueKey":"message","typeLabel":"string"}},"required":["runId","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"runId":"550e8400-e29b-41d4-a716-446655440000","status":"accepted","message":"Request accepted. Results will be delivered to your webhook."}}},"exampleType":"generated"}},"exampleType":"generated"},"07d10cf8-2bcc-464a-9e80-78ccb72c1f2f":{"description":"Validation error - invalid request body","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Validation error","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Field path with the error","example":"data.recentAbnormalLabs.0.value","uniqueKey":"details.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Validation error message","example":"Required","uniqueKey":"details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"details.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"details","typeLabel":"object[]"}},"required":["error","details"],"uniqueKey":"","typeLabel":"object"},"example":{"error":"Validation error","details":[{"path":"labResults","message":"Array must contain at least 1 element(s)"}]},"examples":{"Example":{"title":"Example","value":{"error":"Validation error","details":[{"path":"labResults","message":"Array must contain at least 1 element(s)"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"9b46d3e3-3152-4d5d-827f-1fe18d0ccb08":{"description":"Unauthorized - invalid or missing API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error type","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","uniqueKey":"message","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":"Unauthorized","message":"Invalid or missing API key"},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized","message":"Invalid or missing API key"}}},"exampleType":"examples"}},"exampleType":"examples"},"6d463c20-f20b-468d-b910-09a437f79842":{"description":"Too many concurrent requests","headers":{"X-Concurrent-Limit":{"description":"Maximum concurrent requests allowed","schema":{"type":"integer","example":7}},"X-Concurrent-Active":{"description":"Currently active requests","schema":{"type":"integer","example":7}},"X-Concurrent-Remaining":{"description":"Available slots","schema":{"type":"integer","example":0}},"Retry-After":{"description":"Suggested wait time in seconds before retrying","schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Too many concurrent requests","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","example":"You have 7 active lab-results requests. Maximum is 7.","uniqueKey":"message","typeLabel":"string"},"activeCount":{"type":"integer","example":7,"uniqueKey":"activeCount","typeLabel":"integer"},"limit":{"type":"integer","example":7,"uniqueKey":"limit","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Too many concurrent requests","message":"You have 7 active lab-results requests. Maximum is 7.","activeCount":7,"limit":7}}},"exampleType":"generated"}},"exampleType":"generated"},"f81dbeda-e24f-4eeb-896f-9e4fe1787252":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error type","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","uniqueKey":"message","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"28c35dc1-73c6-4ba2-9d1e-17d2c93a5ff6":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key provided by Helios Intelligence","scopes":[]}}},"servers":{"bd5df04c-e9a4-4ad7-8a41-4c812ab7a877":{"url":"https://api.heliosai.health","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key provided by Helios Intelligence","scopes":[]},"schema":{"title":"x-api-key","type":"string","description":"API key provided by Helios Intelligence","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi/v1.json"},"subdomain":"helios-61e0d432","siteName":"Helios API Documentation","title":"POST /api/v1/lab-results - Helios API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-02-06T14:44:02.602Z","originalFileLocation":"api-reference/post-apiv1lab-results.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID. Results are delivered asynchronously to your webhook URL. Use Case: This endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (/api/v1/agent) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on: - Interpreting abnormal values in context - Identifying clinically significant patterns - Providing evidence-based recommendations - Generating patient-friendly explanations Processing Flow: 1. Request validation and API key authentication 2. Immediate response with runId and status: \u0026quot;accepted\u0026quot; (returns in ~1 second) 3. Background analysis continues (typically 3-6 minutes) 4. Status updates sent to your webhook during processing 5. Final results delivered to your webhook URL Element Limits: - Lab Results: Max 200 (sorted by date if dates provided, most recent first) - Conditions: Max 100 - Medications: Max 30 - Allergies: Max 20 - Family History: Max 20 Pricing: $0.65 per request\">\u003cmeta data-mint-head name=\"application-name\" content=\"Helios API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"POST /api/v1/lab-results - Helios API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID. Results are delivered asynchronously to your webhook URL. Use Case: This endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (/api/v1/agent) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on: - Interpreting abnormal values in context - Identifying clinically significant patterns - Providing evidence-based recommendations - Generating patient-friendly explanations Processing Flow: 1. Request validation and API key authentication 2. Immediate response with runId and status: \u0026quot;accepted\u0026quot; (returns in ~1 second) 3. Background analysis continues (typically 3-6 minutes) 4. Status updates sent to your webhook during processing 5. Final results delivered to your webhook URL Element Limits: - Lab Results: Max 200 (sorted by date if dates provided, most recent first) - Conditions: Max 100 - Medications: Max 30 - Allergies: Max 20 - Family History: Max 20 Pricing: $0.65 per request\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Helios API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.heliosai.health/api-reference/post-apiv1lab-results\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://helios-61e0d432.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=POST+%2Fapi%2Fv1%2Flab-results\u0026amp;description=Submit+lab+results+for+AI-powered+analysis+and+interpretation.+The+API+validates+your+request+and+immediately+returns+a+run+ID.%0AResults+are+delivered+asynchrono\u0026amp;theme=f365d392df46b519220f4732\u0026amp;signature=72863dcad7afb4d15f353065207d3a645754732cb70c4ee6fdc451711334f4b6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"POST /api/v1/lab-results - Helios API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID. Results are delivered asynchronously to your webhook URL. Use Case: This endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (/api/v1/agent) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on: - Interpreting abnormal values in context - Identifying clinically significant patterns - Providing evidence-based recommendations - Generating patient-friendly explanations Processing Flow: 1. Request validation and API key authentication 2. Immediate response with runId and status: \u0026quot;accepted\u0026quot; (returns in ~1 second) 3. Background analysis continues (typically 3-6 minutes) 4. Status updates sent to your webhook during processing 5. Final results delivered to your webhook URL Element Limits: - Lab Results: Max 200 (sorted by date if dates provided, most recent first) - Conditions: Max 100 - Medications: Max 30 - Allergies: Max 20 - Family History: Max 20 Pricing: $0.65 per request\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://helios-61e0d432.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=POST+%2Fapi%2Fv1%2Flab-results\u0026amp;description=Submit+lab+results+for+AI-powered+analysis+and+interpretation.+The+API+validates+your+request+and+immediately+returns+a+run+ID.%0AResults+are+delivered+asynchrono\u0026amp;theme=f365d392df46b519220f4732\u0026amp;signature=72863dcad7afb4d15f353065207d3a645754732cb70c4ee6fdc451711334f4b6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/helios-61e0d432/4M3elG6M65VAr3Rg/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Helios API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#006AD4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.heliosai.health/api-reference/post-apiv1lab-results\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/post-apiv1lab-results.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.heliosai.health/#organization\",\"name\":\"Helios API Documentation\",\"url\":\"https://docs.heliosai.health\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/helios-61e0d432/dmbC4s5fKlz17W1I/logo/light.svg?fit=max\u0026auto=format\u0026n=dmbC4s5fKlz17W1I\u0026q=85\u0026s=d7bbcbb93d69ed5b098d89b7701e9c82\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.heliosai.health#website\",\"name\":\"Helios API Documentation\",\"url\":\"https://docs.heliosai.health\",\"publisher\":{\"@id\":\"https://docs.heliosai.health/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.heliosai.health/api-reference/post-apiv1lab-results#webpage\",\"url\":\"https://docs.heliosai.health/api-reference/post-apiv1lab-results\",\"name\":\"POST /api/v1/lab-results\",\"description\":\"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID. Results are delivered asynchronously to your webhook URL. Use Case: This endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (/api/v1/agent) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on: - Interpreting abnormal values in context - Identifying clinically significant patterns - Providing evidence-based recommendations - Generating patient-friendly explanations Processing Flow: 1. Request validation and API key authentication 2. Immediate response with runId and status: \\\"accepted\\\" (returns in ~1 second) 3. Background analysis continues (typically 3-6 minutes) 4. Status updates sent to your webhook during processing 5. Final results delivered to your webhook URL Element Limits: - Lab Results: Max 200 (sorted by date if dates provided, most recent first) - Conditions: Max 100 - Medications: Max 30 - Allergies: Max 20 - Family History: Max 20 Pricing: $0.65 per request\",\"dateModified\":\"2026-02-06T14:44:02.602Z\",\"isPartOf\":{\"@id\":\"https://docs.heliosai.health#website\"},\"breadcrumb\":{\"@id\":\"https://docs.heliosai.health/api-reference/post-apiv1lab-results#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.heliosai.health/api-reference/post-apiv1lab-results#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.heliosai.health/api-reference/post-apiv1agent\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"POST /api/v1/lab-results\",\"item\":\"https://docs.heliosai.health/api-reference/post-apiv1lab-results\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.heliosai.health/api-reference/post-apiv1lab-results#apireference\",\"headline\":\"POST /api/v1/lab-results\",\"name\":\"POST /api/v1/lab-results\",\"description\":\"Submit lab results for AI-powered analysis and interpretation. The API validates your request and immediately returns a run ID. Results are delivered asynchronously to your webhook URL. Use Case: This endpoint is optimized for lab result interpretation. Unlike the general EHR Agent (/api/v1/agent) which performs element selection from comprehensive health data, the Lab Results Agent accepts lab tests directly and focuses on: - Interpreting abnormal values in context - Identifying clinically significant patterns - Providing evidence-based recommendations - Generating patient-friendly explanations Processing Flow: 1. Request validation and API key authentication 2. Immediate response with runId and status: \\\"accepted\\\" (returns in ~1 second) 3. Background analysis continues (typically 3-6 minutes) 4. Status updates sent to your webhook during processing 5. Final results delivered to your webhook URL Element Limits: - Lab Results: Max 200 (sorted by date if dates provided, most recent first) - Conditions: Max 100 - Medications: Max 30 - Allergies: Max 20 - Family History: Max 20 Pricing: $0.65 per request\",\"url\":\"https://docs.heliosai.health/api-reference/post-apiv1lab-results\",\"mainEntityOfPage\":{\"@id\":\"https://docs.heliosai.health/api-reference/post-apiv1lab-results#webpage\"},\"dateModified\":\"2026-02-06T14:44:02.602Z\",\"publisher\":{\"@id\":\"https://docs.heliosai.health/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.heliosai.health#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Helios API Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Helios API Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/post-apiv1lab-results.md","siteName":"Helios API Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/welcome"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Overview","icon":"code","href":"/api-reference/introduction"}]},{"group":"Agents","pages":[{"title":"EHR Agent","icon":"file-medical","href":"/api-reference/ehr-agent"},{"title":"Lab Results Agent","icon":"flask-vial","href":"/api-reference/lab-results"}]},{"group":"API Reference","pages":[{"title":"POST /api/v1/agent","description":"Submit health data for AI analysis. The API validates your request and immediately returns a run ID.\nResults are delivered asynchronously to your webhook URL.\n\n**Processing Flow:**\n1. Request validation and API key authentication\n2. Immediate response with `runId` and `status: \"accepted\"` (returns in ~1 second)\n3. Background analysis continues (5-8 minutes for Light Agent, 10-13 minutes for Deep Agent)\n4. Status updates sent to your webhook during processing\n5. Final results delivered to your webhook URL\n\n**Agent Types:**\n- `light`: Fast analysis (5-8 minutes), $0.65/run\n- `deep`: Comprehensive analysis (10-13 minutes), $3.50/run","deprecated":null,"version":null,"openapi":"/openapi/v1.json post /api/v1/agent","href":"/api-reference/post-apiv1agent"},{"title":"POST /api/v1/lab-results","deprecated":null,"version":null,"openapi":"/openapi/v1.json post /api/v1/lab-results","href":"/api-reference/post-apiv1lab-results"},{"title":"Ehr agent webhook","description":"Sent to your webhook URL when EHR Agent analysis is complete (success or error).\n\n**Webhook Delivery:**\n- Webhooks are delivered via HTTP POST to the `webhookUrl` you provide in your request\n- We retry failed deliveries up to 3 times with exponential backoff (immediate, 5s, 15s delays)\n- Your endpoint should return a 2xx status code within 30 seconds to acknowledge receipt\n- If all retries fail, the webhook is logged but not redelivered\n\n**Webhook Security:**\nAll webhooks are signed with HMAC-SHA256 using your company's webhook secret. You must verify the signature to ensure authenticity.\n\n**Webhook Headers:**\n- `X-Helios-Signature`: HMAC-SHA256 signature in format `sha256=\u003chex>`\n- `X-Helios-Timestamp`: Unix timestamp (seconds) when webhook was sent\n- `X-Helios-Run-ID`: The unique run ID for this analysis\n\n**Signature Verification:**\n1. Get the raw request body (as string, before JSON parsing)\n2. Check timestamp is recent (within 5 minutes) to prevent replay attacks\n3. Compute expected signature: `sha256=HMAC-SHA256(webhook_secret, raw_body)`\n4. Compare signatures using timing-safe comparison\n\n**Example Verification (Node.js):**\n```typescript\nimport { createHmac, timingSafeEqual } from 'crypto'\n\nfunction verifyWebhook(rawBody: string, signature: string, timestamp: string, webhookSecret: string): boolean {\n // Check timestamp is recent (within 5 minutes)\n const now = Math.floor(Date.now() / 1000)\n const webhookTime = parseInt(timestamp, 10)\n if (Math.abs(now - webhookTime) > 300) {\n return false\n }\n\n // Compute expected signature\n const expected = 'sha256=' + createHmac('sha256', webhookSecret)\n .update(rawBody)\n .digest('hex')\n\n // Timing-safe comparison\n if (expected.length !== signature.length) return false\n return timingSafeEqual(Buffer.from(expected), Buffer.from(signature))\n}\n```\n\nSee full documentation at: https://docs.heliosai.health/webhooks","version":null,"deprecated":null,"openapi":"/openapi/v1.json webhook analysisComplete","href":"/api-reference/ehr-agent-webhook"},{"title":"Lab results agent webhook","version":null,"deprecated":null,"openapi":"/openapi/v1.json webhook labResultsComplete","href":"/api-reference/lab-results-agent-webhook"}]}]}]},"basePath":"","title":"POST /api/v1/lab-results - Helios API Documentation","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}