Changelog
Signup for API Updates
This changelog lists all updates, additions, and changes to the Tenovi APIs. To receive email notifications whenever new updates are published, complete the form and we'll keep you in the loop.
Subscribe for UpdatesExpanded Error Messages & Debugging Guide
The Common Error Messages guide has been rebuilt into a comprehensive Error Messages & Debugging reference covering every error the HWI API can return, what each means, and how to resolve it.
What’s new
- Quick reference status-code index — a table of every HTTP status the API returns (
200–500), each linking straight to the relevant section. - A debugging checklist — an ordered set of first checks (status code before body, trailing slashes, environment keys,
CLIENT_DOMAINmatch, rate limiting, capturing details for500s) for when you don’t yet have an exact error message. - How errors are structured — the difference between general
detailerrors and field-keyed400validation errors. - Fuller status-code coverage — dedicated sections for
401,403,404, and429, plus400,405,415, and500. - Endpoint-specific validation tables — the
400messages each endpoint can return (Devices, Device Properties, Patients, Measurements, Webhooks, and Replacements), what triggers them, and how to fix them.
New Patient Records Documentation & Migration Guide
We’ve added a dedicated Patients section to the docs covering how to manage patient records as the stable identity layer of your integration.
New pages
- Patients Overview — why the patient object matters, why
external_idis the stable spine of an integration, and how to build patient-first from day one. - Patients Object — the full field reference for the
hwi-patientsendpoint, including create, retrieve, update, and delete calls, address verification behavior, and how patient records relate to HWI Devices and webhooks. - Migrating to the Patient Object — a step-by-step guide for accounts that already activate devices with an
external_idbut have never populated the rest of the patient record. It walks through backfilling existing records and adopting explicit patient create/update calls in your device activation flow.
Also documented
- The
hwi-patientslist endpoint is always paginated — it returns a paginated response object whether or not?page=is supplied. See the Pagination Guide for details. - If you already activate devices with an inline
external_id, you are encouraged to adopt explicithwi-patientscreate/update calls so addresses are verified before a device ships and patient data stays consistent across every linked device.
AI-Friendly Docs: llms.txt & Downloadable AI Prompts
We’ve made the Tenovi docs easier to use with AI coding assistants.
llms.txt support
The full documentation site is now published in the llms.txt standard — a plain-text, LLM-friendly format you can point your AI layer at:
llms.txt— a concise index of the docsllms-full.txt— the entire docs site in a single file
Links are available in the site footer, sidebar, and homepage.
Downloadable AI prompts for recipes
All Recipes now include a ready-to-use AI prompt you can hand to your assistant of choice. Rather than adapting a fixed code sample, the prompt interviews you and generates a working script in the language of your choice. Browse the Recipes overview for the recipes that include a downloadable prompt.
Quick Start: Authentication Walkthrough
The Quick Start Guide now includes a complete authentication section — the client-specific base URL, the Api-Key authorization header, and a copy-paste cURL example — so you can make your first request immediately after generating an API key.
Device Name Change: Tenovi BPM - L is now Tenovi BPM - Wide Range
The blood pressure monitor cuff previously named Tenovi BPM - L has been renamed to Tenovi BPM - Wide Range (22 - 45cm cuff). The device, sensor code, and functionality are unchanged — only the device name has been updated.
We automatically map the legacy Tenovi BPM - L name to the new Tenovi BPM - Wide Range name, so existing integrations will continue to work. Updating to the new name is not required, but it is encouraged.
For comprehensive information on all device types available for order on your specific account, use the hwi-device-types endpoint — it returns the current, valid device names for use when activating devices.
See the Tenovi BPM device docs for the full list of available cuff sizes.
Automatic Retry for Failed Measurement Webhooks
Failed measurement webhook deliveries are now automatically retried with exponential backoff, rather than failing on the first attempt. A failure tracker records each unsuccessful delivery and re-attempts it, so transient outages on your receiving endpoint no longer drop measurement data.
This applies to measurement webhooks. Fulfillment, special-order, and patient webhooks are not yet on the automatic retry path.
Shipping Details in Special Orders CSV Export
The Special Orders CSV export in the Tenovi Web App now includes shipping-detail columns, populated for customer accounts:
shipping_carriershipping_costshipping_tracking_linkshipping_label_linkshipping_qr_code_linkaddress_statusshipping_phone_numberdo_not_bill_for_shipping
This lets you reconcile shipments — carrier, cost, tracking/label links, and address-verification status — directly from the export without a separate lookup. Column values are populated when the corresponding shipping data is present on the order.
New Support Dashboard in the Web App
A new Support Dashboard is now available in the Tenovi Web App, giving you enhanced visibility and control over your support requests.
What’s New
- Company-Wide Visibility — See all tickets submitted by anyone within your company in one centralized location.
- Real-Time Status Updates — Easily track the progress of your requests and instantly see whether a ticket is Open or Closed.
- Comprehensive Details at a Glance — View who requested the ticket, the relevant Gateway ID, Category, and Device Type directly from the dashboard.
- Advanced Search & Filtering — Search by Ticket ID, subject, or specific properties. Filter or sort columns (like Created Date or Last Activity) to prioritize your view.
- Export Capabilities — Export your ticket list directly from the dashboard with the click of a button.
What’s Staying the Same
Nothing is changing regarding how you submit tickets. You can continue to submit your support requests exactly as you always have.
How to Access
- Look at the navigation menu on the left side of your screen.
- Scroll down to the Help & Support section.
- Click on Support Dashboard.
Suppress Battery & Status Data from Webhooks
You can now request whether battery and other device status data is included in your outbound webhook payloads. To disable status data, contact your Customer Success Manager.
Special Order Timestamps & Bug Fixes
New Feature
- All special orders now include
created_on,updated_on,shipped_on,delivered_onfields in Special Order Webhooks and API requests.
Bug Fixes
- Fix for
GET /clients/{client}/hwi/hwi-replacements/: the endpoint now returns the full set of replacement orders for your client instead of a truncated subset, and also can return the standard pagination envelope rather than a bare array. - Fix for
GET hwi-devices/{id}so thestatusfield correctly returns “Available for Pickup” when a device is being held at a carrier facility for pickup. Previously these devices were returned with status “Dropshipped” via the API even though the web app showed the correct status.
Pagination: Phase 2
Pagination is available on all measurement, device, and supply order endpoints. If you have not yet updated your integration to use pagination or timestamp filtering, requests to the following endpoints return truncated responses:
patients/{id}/measurements- 1,000-result cap on unpaginated requests, last 30 dayshwi-devices/{id}/measurements- 1,000-result cap on unpaginated requests, last 30 dayshwi-patient-measurements- 1,000-result cap on unpaginated requests, last 30 dayshwi-devices,hwi-hardware-uuid-logs,hwi-replacements- 1,000-result caphwi-patients- always paginated; returns a paginated response object whether or not?page=is supplied
See the Pagination Guide for details and migration notes.
New Fulfillment Webhook Status: Available for Pickup
A new Available for Pickup status has been added to Fulfillment Webhooks. This status fires when a carrier marks a package as held at a facility (e.g. FedEx OnSite, local Post Office) rather than delivered to the patient’s address.
Delivered status change: Delivered will now only fire when a package is successfully dropped off at the patient’s address. Previously, carrier-held packages were categorized as Delivered.
Action required: If your integration triggers workflows on Delivered (e.g. patient enrollment, billing, or welcome messages), those actions will not fire for packages held for pickup. Update your logic to handle both Delivered and Available for Pickup as appropriate for your workflows.
See the Fulfillment Webhooks docs for full details.
Pagination: Phase 1
Pagination is available on all measurement, device, and supply order endpoints. Add ?page=1 to any affected endpoint to enable pagination. See the Pagination Guide for details and migration notes.
Patients Object
You can now create patient records in Tenovi via API. This enables you to attach patient information to devices, fulfillment requests, and measurements with more ease. See the Patients API reference for full details.
Bulk Orders API & Special Order Webhooks
Two new additions for managing bulk and special orders:
- Get Bulk Orders endpoint — retrieve shipping info, fulfillment status, and complete device manifests in a single request.
- Special/Bulk Order Webhook — receive real-time updates on supply, bulk, replacement, return label, and demo unit orders.
See the Bulk Orders docs and Special Order Webhooks docs for details.
Device Replacement API Endpoint
A new endpoint simplifies the device replacement process, providing a dedicated API pathway for requesting replacement physical devices — including Gateways — without creating a new HWI Device object or triggering a duplicate order flag.
Workflow: Create a replacement order via the endpoint specifying device, Gateway, or both → Tenovi dropships to the provided address → the original HWI Device record is maintained → if a replacement Gateway was requested, hardware_uuid is automatically updated on all corresponding devices and a Fulfillment Webhook is sent. Track all replacement orders via the Special Orders dashboard in the Tenovi WebApp.
Note: warranty replacements must still be requested through the Tenovi Web App via a support ticket. See the Replacing Devices docs.
Legacy Delivery Types Deprecated
The legacy “Priority” and “Shipping” order delivery types have been deprecated. All orders requiring proof-of-delivery must now use the require_signature flag in the Fulfillment Request object. Clients can still submit orders using the legacy names, but they will be shipped with default options (no proof-of-delivery) if the flag is not set.
New Fulfillment Webhook Events
Fulfillment Webhooks now fire for three additional events to keep you better informed on dropshipment request status:
- Client Action Required — the request needs attention (e.g. invalid address or duplicate submission).
- On Hold — the request is temporarily on hold at Tenovi (e.g. device out of stock).
- Ready to Ship — the request has passed internal validation and is queued for fulfillment.
See the Fulfillment Webhooks docs for full event details.
Device Compatibility Validation for Supply Orders
When requesting a new supply order via the request_supplies endpoint, you may now include an optional related_client_device_id field (for HWI clients, this is the HWI Device ID). When included, Tenovi will validate that the requested supply is compatible with the corresponding device before processing the order.
Glucometer Strip Tracking for Cellular Glucometers
Clients on ASR plans can now track glucometer strip quantities and request replacement strips specifically for Tenovi Cellular Glucometers. Use the device IMEI (rather than Gateway ID) when retrieving or updating glucometer supply information or creating a new supply request. Gateway-connected glucometers can continue to use the corresponding Gateway ID.
Ship Gateway Only Flag
A new ship_gateway_only flag has been added to the Fulfillment Request object on the hwi-devices endpoint. Use this flag when a patient already owns a Tenovi Gateway-compatible device but still needs a Gateway dropshipped. Only the Gateway cost is billed for these requests.
Webhook enabled_by_default Flag
Measurement Webhooks now support an enabled_by_default flag. When set to false, the webhook is added to your account without automatically receiving measurement data from all devices. Use the measurement_webhook_id Device Property to selectively enable the webhook for specific devices — useful for testing a new webhook with a small subset of devices before rolling it out broadly. The flag defaults to true.
API Access Restricted to Trusted Hosts
Browser-based calls to the Tenovi API are now restricted to trusted hosts only.
Prior hardware_uuid in Fulfillment Webhooks
“Replaced” and “Unlinked” Fulfillment Webhooks now include the hardware_uuid for the prior device (e.g. the Gateway being replaced or unlinked) in the previously deprecated device_id field. The hardware_uuid field continues to carry the current hardware UUID (i.e. the replacement Gateway, or null if unlinked).
Per-Device Measurement Webhook Routing
HWI clients can now route measurement data from a specific device to a single, user-selected Measurement Webhook instead of broadcasting to all webhooks. Set the measurement_webhook_id Device Property to the desired webhook ID to enable this, or set it to an empty string to revert to the default behavior.
You can also query all devices associated with a specific webhook using the properties__key and properties__value query parameters on the hwi-devices endpoint.
Gateway List & Info Endpoint Updates
Two updates to Gateway endpoints for HWI clients:
- New
hwi-gatewaysendpoint — returns a paginated list of all Gateways associated with your account, including useful dates for sorting and filtering. - Updated
hwi-gateway-infoendpoint — now includes explicit fields indicating when a Gateway was assigned to your account, when it was dropshipped (if applicable), and which devices (if any) are whitelisted to it.
Optional patient.external_id & Email Support
When activating a new HWI Device with patient information, the patient.external_id field is now optional. You may also include a patient email address — it is not validated and is for reference purposes only, though Tenovi Tech Support may use it when resolving service requests.
ASR Supply Types Endpoint
A new asr-supply-types endpoint is available for ASR clients, returning a list of valid supply names that can be used when ordering supplies via API. See the ASR API reference for details.
Glucometer Supplies Endpoint & Supply Request Refactor
New: A Glucometer Supplies endpoint is now available for ASR clients to query the estimated number of glucometer strips remaining for a patient (based on strips shipped minus measurements taken), or to update this estimate manually. See the ASR API reference for details.
Improvement: The “Request Supply” endpoint has been refactored to sit alongside all other ASR-specific endpoints. The original endpoint (CLIENT_DOMAIN/devices/supply-requests/) remains available temporarily for backwards compatibility, but clients should migrate to the new path (CLIENT_DOMAIN/asr/supply-requests/).
Array Webhooks, Signature Requests & API Improvements
New features:
- Array-based Webhook POST — Measurement Webhooks can now be configured to POST related measurements (e.g. blood pressure and pulse from a single BPM reading) as a single JSON array instead of individual requests.
- Simplified Signature Confirmation — Request delivery signature confirmation via a boolean field in the Fulfillment Request object instead of a separate device name (additional charges may apply).
Improvements:
- All timestamps in Webhook data are now standardized to
YYYY-MM-DDTHH:MM:SS.ssssssZformat — please verify your Webhook integrations handle this correctly. - The
hwi-devicesendpoint no longer requires a matchingsensor_code; only thedevice.namefield is required. - A
webhook_responsesfield has been added to the Measurements object, recording HTTP response codes for all webhooks that fired for a given measurement (comma-separated). - HWI Webhooks are now enabled for all measurements, including those from RPM software-based accounts.
- The
hwi-device-typesendpoint now includesimage,up_front_cost, andshipping_costfields to support custom shop integrations.