List data requests
curl --request GET \
--url https://sandbox.rx.tera.health/v1/data-requests \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.rx.tera.health/v1/data-requests', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox.rx.tera.health/v1/data-requests"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "7a2e4c61-0b3d-4f58-9a17-2c4e6f8a0b13",
"enrollment_id": "0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5",
"external_patient_id": "brand-pt-48213",
"kind": "amend",
"status": "processing",
"requested_at": "2026-10-26T14:05:00Z",
"completed_at": null,
"export": null,
"amendment": {
"details": {
"record_type": "symptom_log",
"record_id": "0190f5c9-7f80-7192-8cb4-3d4e5f607182",
"description": "The severity was logged as 5 by mistake.",
"requested_change": "Severity should be 2."
},
"respond_by": "2026-12-25T14:05:00Z",
"decision": null,
"decision_note": null,
"decided_at": null
}
}
],
"next_cursor": null
}Data requests
List data requests
Your brand’s data requests, newest first.
Scope: data_requests:read.
GET
/
v1
/
data-requests
List data requests
curl --request GET \
--url https://sandbox.rx.tera.health/v1/data-requests \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.rx.tera.health/v1/data-requests', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox.rx.tera.health/v1/data-requests"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "7a2e4c61-0b3d-4f58-9a17-2c4e6f8a0b13",
"enrollment_id": "0190f5c2-3a1b-7c4d-8e9f-a0b1c2d3e4f5",
"external_patient_id": "brand-pt-48213",
"kind": "amend",
"status": "processing",
"requested_at": "2026-10-26T14:05:00Z",
"completed_at": null,
"export": null,
"amendment": {
"details": {
"record_type": "symptom_log",
"record_id": "0190f5c9-7f80-7192-8cb4-3d4e5f607182",
"description": "The severity was logged as 5 by mistake.",
"requested_change": "Severity should be 2."
},
"respond_by": "2026-12-25T14:05:00Z",
"decision": null,
"decision_note": null,
"decided_at": null
}
}
],
"next_cursor": null
}Authorizations
A brand's server, one OAuth client per brand and environment. Get a token with the
client_credentials grant and send it as Authorization: Bearer <token>. Tokens last 1 hour.
A brand server reads status and ids only; it never reads clinical content. A platform partner holds one
client for all its brands and gets one token per brand, naming it with tenant_id.
Query Parameters
Available options:
received, processing, completed, rejected Example:
"processing"
export: a copy of the patient's coaching records for your brand, as a download.delete: removes the patient's coaching records for your brand, except what the law requires TeraRx to keep (the audit log).amend: the HIPAA right to amend. You decide within 60 days ofrequested_at.
Available options:
export, delete, amend Example:
"export"
Page size.
Required range:
1 <= x <= 100The next_cursor from the previous page. Omit it for the first page.
Maximum string length:
512
