The Digital Frames Home Assistant custom component exposes a comprehensive set of REST HTTP API endpoints under /api/digital_frames/*. These endpoints power the frontend sidebar panel, Lovelace cards, and external automation scripts.
An OpenAPI 3.0 specification file is available at docs/openapi.yaml.
All requests (unless specified as public unauthenticated endpoints) require Home Assistant authentication via a Long-Lived Access Token.
Authorization: Bearer <YOUR_HA_LONG_LIVED_ACCESS_TOKEN>
Content-Type: application/jsonFor file uploads (e.g., direct image sends or library uploads), use multipart/form-data.
Some endpoints are intentionally unauthenticated to allow local hardware frames (such as Samsung Frame TVs or e-ink frames in pull mode) to fetch their image binary payload:
GET /api/digital_frames/pull/{token}/image.binGET /api/digital_frames/samsung/{token}/content.pngGET /api/digital_frames/library/oauth/google/callback
Returns the machine-readable OpenAPI 3.0 specification for automated API discovery by AI systems, API gateways, and developer tools (Swagger UI, Postman, Insomnia).
- Headers: Requires
Authorization: Bearer <TOKEN> - Response
200 OK:application/jsonobject containing full OpenAPI 3.0 specification.
Retrieves a list of all configured digital frames, including their entity status, screen dimensions, rotation, battery level, online/offline status, active thumbnail, and queued image delivery state.
- Response
200 OK:[ { "entry_id": "8f7e6d5c...", "name": "Living Room Frame", "model": "Fraimic 13.3", "width": 1600, "height": 1200, "rotation": 0, "online": true, "last_image_id": "img_12345", "queued": false } ]
Returns the raw binary JPEG image thumbnail preview currently staged or active on the specified frame.
- Path Parameters:
entry_id(string) — Home Assistant config entry ID. - Response
200 OK:image/jpegbinary data.
Retrieves detailed status metrics for all frames registered with the integration.
Forces an immediate reload/refresh of frame entities and state coordinators.
Triggers an immediate hardware orientation/accelerometer check for frames that support hardware orientation sensing.
Returns onboarding and setup wizard status.
Updates or dismisses onboarding configuration states.
Triggers a local subnet scan to discover supported e-ink or smart frame hardware.
Converts and sends/queues an image directly to a targeted frame without storing it in the persistent photo library.
- Content-Type:
multipart/form-data - Form Fields:
entity_id(string, optional) — Target frame entity ID (e.g.sensor.living_room_frame_status).entry_id(string, optional) — Target frame config entry ID. (One ofentity_idorentry_idrequired).image(file, required) — The image file binary to send.
- Response
200 OK:{ "success": true, "queued": false, "bytes_sent": 245890 }
Serves the rendered binary image payload for pull-mode frames.
Serves the current PNG content payload for Samsung Frame devices.
Lists stored library images with optional filtering and sorting.
- Query Parameters:
album(string, optional) — Filter images by album name.tag(string, optional) — Filter images by tag.sort(string, optional) — Sort order (newest,oldest,name).search(string, optional) — Search term for filtering image names/tags.
Uploads one or more images into the permanent photo library.
- Content-Type:
multipart/form-data - Form Fields:
file(file, required) — Image file to upload.album(string, optional) — Initial album assignment.
Retrieves metadata or binary image data for a library image.
- Query Parameters:
thumb(integer, optional) — Set thumbnail width (e.g.,?thumb=480).
Deletes an image from the photo library.
Updates the album assignments for a specific library image.
Sets a custom voice/speech command name for an image.
Updates tags assigned to an image.
Sets or clears orientation lock (portrait, landscape, auto) for a specific image.
Sends an existing library image to one or more frames.
- Form / JSON Fields:
image_id(string, required) — ID of the library image.entity_id/entry_id(string, required) — Target frame target.packer(string, optional) — Fast or legacy packing algorithm override.
Applies cropping coordinates to a library image.
Lists all photo library albums.
Creates or renames an album.
Deletes an album.
Adds or removes images to/from a named album.
Retrieves library configuration settings.
Updates library settings.
Triggers catalog/discovery updates for public domain art.
Returns configured OAuth redirect URI for Google Photos integration.
Initiates Google Photos OAuth flow.
Handles Google Photos OAuth redirect callback.
Pushes a library album to Netgear Meural Cloud for slideshow playback.
Renders a custom formatted text announcement or alert message into an image and sends it to a frame.
- JSON Body:
entity_idorentry_id(string, required) — Target frame.message(string, required) — Text content of the announcement.title(string, optional) — Heading/title.theme(string, optional) — Visual style theme (dark,light,accent).duration(integer, optional) — Display duration in seconds.
Lists configured wall scenes.
Creates a new wall scene definition.
Updates an existing scene definition.
Deletes a scene definition.
Activates and sends a scene layout to its designated target frames.
Lists installed and available public-domain art scene packs.
Installs a scene pack into the local library.
Synchronizes installed scene pack assets.
Uninstalls a scene pack.
Lists configured interactive skills (calendar, weather, quotes, news dashboard widgets).
Creates a skill widget configuration.
Updates a skill configuration.
Deletes a skill configuration.
Renders the skill widget layout into an image and sends it to a target frame.
Quickly configures automated daily schedule generation for dynamic skills.
Lists frame automation schedules.
Creates a new display schedule.
Updates an existing schedule.
Deletes a schedule.
Lists multi-frame virtual wall layouts.
Creates a new virtual wall configuration.
Updates an existing wall configuration.
Deletes a virtual wall configuration.
Checks current component release update status.
Forces a remote check for new integration updates on GitHub.
Triggers an automated update installation.
Requests Home Assistant restart after updating.
Dismisses update notification for the current version.
| Code | Description |
|---|---|
200 OK |
Request succeeded; returns data payload or binary stream. |
400 Bad Request |
Missing required fields or invalid parameters. |
401 Unauthorized |
Invalid or missing Home Assistant Bearer token. |
404 Not Found |
Requested frame, image, scene, or resource not found. |
500 Internal Error |
Image rendering or conversion failure. |
502 Bad Gateway |
Communication failure with target frame hardware. |