Ambient Content Retrieval
Get Ambient Encounter Section Structured Data
Retrieve filled Embedded Form values from the latest completed ambient session for an encounter
Listen to this pageabout 1 min
GET
/
api
/
v1
/
ambient
/
encounter
/
{encounter_id}
/
structured-data
/
section-structured-data
cURL
curl --request GET \
--url https://sdp.suki.ai/api/v1/ambient/encounter/<encounter_id>/structured-data/section-structured-data \
--header 'sdp_suki_token: <sdp_suki_token>' \
--header 'sdp_provider_id: <sdp_provider_id>'import requests
url = "https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data"
headers = {"sdp_suki_token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {sdp_suki_token: '<api-key>'}};
fetch('https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"sdp_suki_token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("sdp_suki_token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data")
.header("sdp_suki_token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["sdp_suki_token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"section_structured_values": [
{
"loinc_code": "10164-2",
"forms": [
{
"template_id": "hpi-mood-v1",
"values": [
{
"id": "slot-symptoms",
"key": "symptoms",
"value": [
"low mood",
"poor sleep"
]
},
{
"id": "slot-duration",
"key": "symptom_duration",
"value": "in the last two weeks"
},
{
"id": "slot-onset",
"key": "onset_date",
"value": null
}
]
}
]
}
]
}{
"code": 400,
"message": "invalid request"
}{
"code": 401,
"message": "invalid token"
}{
"code": 404,
"message": "not found"
}{
"code": 500,
"message": "internal server error"
}Use this endpoint to get the filled Embedded Form values for an .
Use the Session Section Structured Data endpoint to get values for one recording. Use this endpoint to get values from the latest completed recording for the visit.
This endpoint does not merge values from earlier recordings.
For when to read by session or by encounter, and what happens when the visit is recorded again, refer to Seed and read Embedded Forms.
Code examples
- Python
- TypeScript
import requests
encounter_id = "<encounter_id>"
url = f"https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data"
headers = {
"sdp_suki_token": "<sdp_suki_token>",
"sdp_provider_id": "<sdp_provider_id>",
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
# Values from the latest completed ambient session for this encounter
for section in response.json().get("section_structured_values") or []:
print(f"Section {section.get('loinc_code')}")
for form in section.get("forms") or []:
print(f" Template {form.get('template_id')}")
for field in form.get("values") or []:
print(f" {field.get('key')}: {field.get('value')}")
else:
print(f"Failed to get encounter section structured data: {response.status_code}")
print(response.json())
const encounterId = "<encounter_id>";
const response = await fetch(
`https://sdp.suki.ai/api/v1/ambient/encounter/${encounterId}/structured-data/section-structured-data`,
{
headers: {
sdp_suki_token: "<sdp_suki_token>",
sdp_provider_id: "<sdp_provider_id>",
},
}
);
if (response.ok) {
const body = await response.json();
// Values from the latest completed ambient session for this encounter
(body.section_structured_values ?? []).forEach((section: any) => {
console.log(`Section ${section.loinc_code}`);
section.forms?.forEach((form: any) => {
console.log(` Template ${form.template_id}`);
form.values?.forEach((field: any) => {
console.log(` ${field.key}: ${JSON.stringify(field.value ?? null)}`);
});
});
});
} else {
const error = await response.json();
console.error(`Failed to get encounter section structured data: ${response.status}`, error);
}
Authorizations
Suki access token (suki_token) from Login or Register. Expires after one hour.
Headers
Optional for standard partners.
Required for:
- Bearer authentication. Use the same
provider_idreturned by the Login or Register API. - Single Auth Token authentication. Include the same
provider_idon every request assdp_provider_id.
Example:
"provider-123"
Path Parameters
UUID for the patient encounter (visit). Use the encounter_id from session create or the UUID you assigned when grouping multiple sessions under one visit.
Response
Request succeeded.
Response body for the /encounter/{encounter_id}/structured-data/section-structured-data endpoint
Embedded Form results from the latest completed ambient session for the encounter, grouped by section LOINC.
Show child attributes
Show child attributes
Last modified on October 16, 2026
Was this page helpful?
cURL
curl --request GET \
--url https://sdp.suki.ai/api/v1/ambient/encounter/<encounter_id>/structured-data/section-structured-data \
--header 'sdp_suki_token: <sdp_suki_token>' \
--header 'sdp_provider_id: <sdp_provider_id>'import requests
url = "https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data"
headers = {"sdp_suki_token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {sdp_suki_token: '<api-key>'}};
fetch('https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"sdp_suki_token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("sdp_suki_token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data")
.header("sdp_suki_token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdp.suki.ai/api/v1/ambient/encounter/{encounter_id}/structured-data/section-structured-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["sdp_suki_token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"section_structured_values": [
{
"loinc_code": "10164-2",
"forms": [
{
"template_id": "hpi-mood-v1",
"values": [
{
"id": "slot-symptoms",
"key": "symptoms",
"value": [
"low mood",
"poor sleep"
]
},
{
"id": "slot-duration",
"key": "symptom_duration",
"value": "in the last two weeks"
},
{
"id": "slot-onset",
"key": "onset_date",
"value": null
}
]
}
]
}
]
}{
"code": 400,
"message": "invalid request"
}{
"code": 401,
"message": "invalid token"
}{
"code": 404,
"message": "not found"
}{
"code": 500,
"message": "internal server error"
}