Feature Flags
Section titled “Feature Flags”The Hoody HTML5 Display client accepts URL query parameters that toggle optional features at load time. The parameters below cover printing, file transfer, video playback, and notification delivery. They are a subset of the full client configuration surface and are passed as query string entries when loading GET /api/v1/display/.
GET /api/v1/display/
Section titled “GET /api/v1/display/”Access the HTML5 Display client interface with feature flag overrides applied via query parameters. The endpoint serves the same HTML5 client as the root display URL, so it can be used for REST-style integrations or versioned API gateways while preserving the full client customization surface.
Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
printing | query | boolean | No | Enable printing support. Default: true |
file_transfer | query | boolean | No | Enable file transfer support. Default: true |
video | query | boolean | No | Enable video encoding support. Default: true |
mediasource_video | query | boolean | No | Enable MediaSource API for video. Default: true |
notification_server_url | query | string | No | External notification server URL for real-time notification integration. The client transforms the display URL pattern by replacing display with n to auto-detect when this value is omitted. See the external notification server OpenAPI spec for full integration details. |
web_notifications | query | boolean | No | Enable browser web notifications (native OS notifications). Default: true |
display_notifications | query | boolean | No | Show notifications within the display UI. Default: true |
notification_connection_type | query | string | No | Notification server connection type. Allowed values: websocket, polling. Default: "websocket" (websocket recommended, polling as fallback). |
Request
Section titled “Request”This endpoint does not accept a request body.
Response
Section titled “Response”The HTML5 Display client interface is served with the requested feature flags applied.
<!DOCTYPE html><html><head><title>Hoody Display Client</title></head><body> <!-- Display HTML5 client interface --></body></html>Example: disable printing and file transfer
Section titled “Example: disable printing and file transfer”curl -X GET "https://{projectId}-{containerId}-display-1.{server}.containers.hoody.com/api/v1/display/?printing=false&file_transfer=false"import { HoodyClient } from 'hoody-sdk';
const hoody = await HoodyClient.login('https://api.hoody.com', { username, password });const box = await hoody.withContainer(containerId);
// Builds the URL of display 1; nothing is fetched. Open it in a browser or a frame.const url = box.embeds.display.client(undefined, { index: 1, params: { printing: false, file_transfer: false },});Example: enable video, force polling notifications
Section titled “Example: enable video, force polling notifications”curl -X GET "https://{projectId}-{containerId}-display-1.{server}.containers.hoody.com/api/v1/display/?video=true&mediasource_video=true¬ification_connection_type=polling"import { HoodyClient } from 'hoody-sdk';
const hoody = await HoodyClient.login('https://api.hoody.com', { username, password });const box = await hoody.withContainer(containerId);
// Builds the URL of display 1; nothing is fetched. Open it in a browser or a frame.const url = box.embeds.display.client(undefined, { index: 1, query: { video: true, mediasource_video: true, notification_connection_type: 'polling' },});Example: pin an explicit notification server URL
Section titled “Example: pin an explicit notification server URL”curl -X GET "https://{projectId}-{containerId}-display-1.{server}.containers.hoody.com/api/v1/display/?notification_server_url=https%3A%2F%2F{projectId}-{containerId}-n-1.{server}.containers.hoody.com%2Fnotification-client.js&web_notifications=true&display_notifications=true"import { HoodyClient } from 'hoody-sdk';
const hoody = await HoodyClient.login('https://api.hoody.com', { username, password });const box = await hoody.withContainer(containerId);
// Builds the URL of display 1; nothing is fetched. Open it in a browser or a frame.const url = box.embeds.display.client(undefined, { index: 1, query: { web_notifications: true, display_notifications: true },});client.embeds.display.client() refuses notification_server_url (the embed catalog marks it as not embeddable): add it to the URL yourself, as in the Browser tab.