HIV VL - Summary
System-wide summary and dashboard endpoints for HIV Viral Load (VL) analytics. These endpoints provide aggregated indicators, viral suppression trends, turnaround times, and provincial breakdowns across all facilities.
Common parameters
Most summary endpoints accept a common set of query parameters for filtering data by date range, geographic location, and facility attributes.
- Name
interval_dates- Type
- JSON array
- Description
Date range filter as a JSON array with two dates in
YYYY-MM-DDformat:["2025-01-01","2025-12-31"]. Defaults to the last 12 months if not provided.
- Name
province- Type
- string
- Description
Filter by province name. Supports multi-select by passing the parameter multiple times.
- Name
district- Type
- string
- Description
Filter by district name. Supports multi-select by passing the parameter multiple times.
- Name
health_facility- Type
- string
- Description
Filter by a specific health facility name.
- Name
facility_type- Type
- string
- Description
Grouping level for aggregated results. Accepted values:
"province","district","health_facility".
- Name
disaggregation- Type
- string
- Description
Enable or disable data disaggregation. Accepted values:
"True"or"False".
Request with parameters
curl -G https://api.openldr.org.mz/hiv/vl/summary/header_indicators/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
--data-urlencode 'interval_dates=["2025-01-01","2025-12-31"]' \
--data-urlencode "province=Maputo Cidade" \
--data-urlencode "district=KaMpfumo" \
--data-urlencode "facility_type=district" \
--data-urlencode "disaggregation=True"
Header indicators
Returns a single object with the main VL indicators for the selected period, including total registered, tested, suppressed, not suppressed, and rejected sample counts.
- Name
registered- Type
- integer
- Description
Total number of samples registered in the system.
- Name
tested- Type
- integer
- Description
Total number of samples that have been tested.
- Name
suppressed- Type
- integer
- Description
Total number of samples with a suppressed viral load result.
- Name
not_suppressed- Type
- integer
- Description
Total number of samples with a not suppressed viral load result.
- Name
rejected- Type
- integer
- Description
Total number of samples that were rejected.
Request
curl -G https://api.openldr.org.mz/hiv/vl/summary/header_indicators/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
--data-urlencode 'interval_dates=["2025-01-01","2025-12-31"]'
Response
{
"registered": 185420,
"tested": 172350,
"suppressed": 148920,
"not_suppressed": 23430,
"rejected": 7840
}
Number of samples
Returns an array of monthly sample counts, providing a time-series view of total samples processed.
- Name
year- Type
- integer
- Description
The year of the record.
- Name
month- Type
- integer
- Description
The month number (1-12).
- Name
month_name- Type
- string
- Description
The name of the month.
- Name
total- Type
- integer
- Description
Total number of samples in the month.
Request
curl -G https://api.openldr.org.mz/hiv/vl/summary/number_of_samples/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
--data-urlencode 'interval_dates=["2025-01-01","2025-12-31"]'
Response
[
{
"year": 2025,
"month": 1,
"month_name": "January",
"total": 15840
},
{
"year": 2025,
"month": 2,
"month_name": "February",
"total": 14920
}
]
Viral suppression
Returns an array of monthly viral suppression data, showing the breakdown of suppressed and not suppressed results over time.
- Name
year- Type
- integer
- Description
The year of the record.
- Name
month- Type
- integer
- Description
The month number (1-12).
- Name
month_name- Type
- string
- Description
The name of the month.
- Name
suppressed- Type
- integer
- Description
Number of suppressed results in the month.
- Name
not_suppressed- Type
- integer
- Description
Number of not suppressed results in the month.
Request
curl -G https://api.openldr.org.mz/hiv/vl/summary/viral_suppression/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
--data-urlencode 'interval_dates=["2025-01-01","2025-12-31"]'
Response
[
{
"year": 2025,
"month": 1,
"month_name": "January",
"suppressed": 12450,
"not_suppressed": 1980
},
{
"year": 2025,
"month": 2,
"month_name": "February",
"suppressed": 11870,
"not_suppressed": 1840
}
]
TAT
Returns an array of monthly turnaround time (TAT) averages broken down by each stage of the sample processing pipeline, from collection through validation.
- Name
year- Type
- integer
- Description
The year of the record.
- Name
month- Type
- integer
- Description
The month number (1-12).
- Name
month_name- Type
- string
- Description
The name of the month.
- Name
collection_reception- Type
- float
- Description
Average days from sample collection to laboratory reception.
- Name
reception_registration- Type
- float
- Description
Average days from laboratory reception to sample registration.
- Name
registration_analysis- Type
- float
- Description
Average days from sample registration to analysis.
- Name
analysis_validation- Type
- float
- Description
Average days from analysis to result validation.
Request
curl -G https://api.openldr.org.mz/hiv/vl/summary/tat/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
--data-urlencode 'interval_dates=["2025-01-01","2025-12-31"]'
Response
[
{
"year": 2025,
"month": 1,
"month_name": "January",
"collection_reception": 4.2,
"reception_registration": 1.3,
"registration_analysis": 2.8,
"analysis_validation": 0.7
},
{
"year": 2025,
"month": 2,
"month_name": "February",
"collection_reception": 3.9,
"reception_registration": 1.1,
"registration_analysis": 2.5,
"analysis_validation": 0.6
}
]
Suppression by province
Returns an array of viral suppression data grouped by province, showing suppressed and not suppressed counts for each province.
- Name
province- Type
- string
- Description
The name of the province.
- Name
suppressed- Type
- integer
- Description
Number of suppressed results in the province.
- Name
not_suppressed- Type
- integer
- Description
Number of not suppressed results in the province.
Request
curl -G https://api.openldr.org.mz/hiv/vl/summary/suppression_by_province/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
--data-urlencode 'interval_dates=["2025-01-01","2025-12-31"]'
Response
[
{
"province": "Maputo Cidade",
"suppressed": 18450,
"not_suppressed": 2870
},
{
"province": "Gaza",
"suppressed": 14320,
"not_suppressed": 2150
}
]
Samples history
Returns an array of monthly sample totals providing a historical view of testing volume over time. Useful for long-term trend analysis and capacity planning.
- Name
year- Type
- integer
- Description
The year of the record.
- Name
month- Type
- integer
- Description
The month number (1-12).
- Name
month_name- Type
- string
- Description
The name of the month.
- Name
total- Type
- integer
- Description
Total number of samples in the month.
Request
curl -G https://api.openldr.org.mz/hiv/vl/summary/samples_history/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
--data-urlencode 'interval_dates=["2025-01-01","2025-12-31"]'
Response
[
{
"year": 2025,
"month": 1,
"month_name": "January",
"total": 16230
},
{
"year": 2025,
"month": 2,
"month_name": "February",
"total": 15180
}
]