curl --request GET \
--url https://sandbox.rx.tera.health/v1/clinical-flags \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.rx.tera.health/v1/clinical-flags', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox.rx.tera.health/v1/clinical-flags"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "0190f5d8-4b2c-7d5e-9f10-b1c2d3e4f5a6",
"status": "open",
"severity": "critical",
"title": "Acute GI distress",
"rule_code": "acute_gi",
"source": "alert_rule",
"enrollment_id": "0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5",
"external_patient_id": "brand-pt-48213",
"plan_code": "ai_only",
"risk_level": "high",
"raised_risk_to": "high",
"details": {
"symptom": "vomiting",
"severity_score": 4,
"escalation_reason": null,
"values": {}
},
"triggering_records": [
{
"type": "symptom_log",
"id": "0190f5c9-7f80-7192-8cb4-3d4e5f607182",
"occurred_at": "2026-10-26T13:50:00Z"
}
],
"timeline": [
{
"occurred_at": "2026-10-26T08:00:00Z",
"kind": "injection",
"dose_mg": 0.5
},
{
"occurred_at": "2026-10-26T13:50:00Z",
"kind": "symptom",
"symptom": "vomiting",
"severity": 4,
"text": "Could not keep water down this morning"
}
],
"treatment": {
"medication": {
"ingredient": "semaglutide",
"product_name": "Wegovy",
"source": "branded",
"route": "injection"
},
"dose_mg": 0.5,
"dose_amount": null,
"dose_unit": null,
"phase": "titration",
"injection_weekday": 1,
"started_on": "2026-09-28",
"treatment_week": 5,
"effective_from": "2026-10-26T00:00:00Z"
},
"coach_note": null,
"ack_due_at": "2026-10-26T16:05:00Z",
"redelivery_count": 0,
"acknowledgement": null,
"resolution": null,
"created_at": "2026-10-26T14:05:00Z",
"updated_at": "2026-10-26T14:05:00Z"
}
],
"next_cursor": null
}List clinical flags
Your brand’s flags, oldest first so the longest-waiting come first. By default only those needing action
(open and acknowledged). On the AI-only plan every escalation lands here, so poll this as a backstop to
the clinical.flag_raised webhook.
Scope: clinical:read.
curl --request GET \
--url https://sandbox.rx.tera.health/v1/clinical-flags \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.rx.tera.health/v1/clinical-flags', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox.rx.tera.health/v1/clinical-flags"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "0190f5d8-4b2c-7d5e-9f10-b1c2d3e4f5a6",
"status": "open",
"severity": "critical",
"title": "Acute GI distress",
"rule_code": "acute_gi",
"source": "alert_rule",
"enrollment_id": "0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5",
"external_patient_id": "brand-pt-48213",
"plan_code": "ai_only",
"risk_level": "high",
"raised_risk_to": "high",
"details": {
"symptom": "vomiting",
"severity_score": 4,
"escalation_reason": null,
"values": {}
},
"triggering_records": [
{
"type": "symptom_log",
"id": "0190f5c9-7f80-7192-8cb4-3d4e5f607182",
"occurred_at": "2026-10-26T13:50:00Z"
}
],
"timeline": [
{
"occurred_at": "2026-10-26T08:00:00Z",
"kind": "injection",
"dose_mg": 0.5
},
{
"occurred_at": "2026-10-26T13:50:00Z",
"kind": "symptom",
"symptom": "vomiting",
"severity": 4,
"text": "Could not keep water down this morning"
}
],
"treatment": {
"medication": {
"ingredient": "semaglutide",
"product_name": "Wegovy",
"source": "branded",
"route": "injection"
},
"dose_mg": 0.5,
"dose_amount": null,
"dose_unit": null,
"phase": "titration",
"injection_weekday": 1,
"started_on": "2026-09-28",
"treatment_week": 5,
"effective_from": "2026-10-26T00:00:00Z"
},
"coach_note": null,
"ack_due_at": "2026-10-26T16:05:00Z",
"redelivery_count": 0,
"acknowledgement": null,
"resolution": null,
"created_at": "2026-10-26T14:05:00Z",
"updated_at": "2026-10-26T14:05:00Z"
}
],
"next_cursor": null
}Authorizations
The brand's prescriber system (its clinician tool or Beluga), with its own OAuth client separate from the
brand server's. Every write carries the individual prescriber in on_behalf_of. Tokens last 1 hour.
Query Parameters
One or more statuses, comma-separated.
open until a prescriber acknowledges it; acknowledged until resolved. dismissed flags were closed by
TeraRx as raised in error and never change risk.
open, acknowledged, resolved, dismissed info, warning, critical "critical"
Your own identifier, printable ASCII without spaces.
1 - 128^[\x21-\x7E]+$"brand-pt-48213"
Only flags changed after this time.
Page size.
1 <= x <= 100The next_cursor from the previous page. Omit it for the first page.
512
