Overview
Convert lab report and DXA scan PDFs into structured, standardized biomarker data via a simple REST API.
Terra Lab Reports API
Upload a clinical lab report or a DXA body-composition/bone-density scan and receive structured biomarker data — extracted, standardized, and delivered to your webhook or available via REST.
Both go to the same endpoint. Terra identifies which it received and tells you in report_type.
Key Features
Multi-Format Upload — Upload clinical lab reports or DXA scans as PDF, PNG, JPEG, GIF, or WebP (up to 20 MB)
Automatic Report-Type Detection — Terra classifies each upload as a lab report or a scan; no parameter to set, and the result is reported in
report_typeSite-Scoped Scan Results — Scan measurements carry the anatomical site they were taken at, so the same measure at fifteen places stays fifteen distinct results
Biomarker Standardization — Results are fuzzy-matched against a 4,200+ biomarker reference dataset, producing a canonical
biomarkerslug and UCUM-compliant unit codesReference Ranges with Context — Extracted ranges include demographic context (sex, age, pregnancy status, menstrual cycle phase)
Async Processing — Upload returns immediately with a session ID; results arrive via webhook or polling
Webhook Delivery — Full session payload is delivered automatically to your configured destination on completion
Flexible Querying — List and filter sessions by reference ID, date range, limit, and offset
API Endpoints
POST
/v2/reports
Upload a lab report
GET
/v2/reports
List sessions
GET
/v2/reports/{session_id}
Retrieve session details
POST
/v2/reports/{session_id}/reprocess
Reprocess a session
DELETE
/v2/reports/{session_id}
Delete a session
Base URL: https://access.tryterra.co/api
Documentation
Quick Start — Upload, poll, and retrieve in 3 steps
Core Concepts — Session lifecycle, data model, async processing
API Reference — Full endpoint specifications
Webhook Payload — Payload format and field specs
Biomarker Reference — Standardization, UCUM codes, common biomarkers
Best Practices — Error handling, idempotency, rate limits
Last updated
Was this helpful?