Skip to main content

What you’ll accomplish

You will activate a Structured Widget Push source, authenticate a server-to-server request, replace the current snapshot, and implement safe retries.

Supported Widgets

Structured Push v2 currently supports these exact mappings:

Endpoint

The API accepts a complete replacement snapshot. Partial patches are not supported.

Prerequisites

  • A supported Widget added to a Design.
  • Content editing permission to activate its Push source.
  • The Widget’s Unique Widget ID.
  • An active Workspace API Key stored in a trusted backend or automation.

Get the Widget ID and API key

  1. Select the Widget in Studio Canvas.
  2. Open Properties → Data Source.
  3. Select Layarva Push API.
  4. Open API Setup & Usage Guide.
  5. Copy the Unique Widget ID and the one-time full Workspace API Key.
  6. Save and publish the Design once.
The full key cannot be displayed again. Rotate it if the value is lost or exposed.

Authenticate the request

Authorization: Bearer is recommended. The route also accepts x-layarva-api-key for server integrations. Do not send both.

Send a schedule snapshot

Understand the request envelope

Unknown envelope and payload fields are rejected. HTML markup is not accepted in semantic text fields.

Successful response

The response also includes X-Layarva-Data-Revision. Record the revision with the source event in your integration logs.

Implement idempotency and ordering

  • Idempotency-Key is optional but strongly recommended for every logical snapshot.
  • A key contains 8–180 characters and is retained for 24 hours.
  • Retrying the same key with the same raw body returns the original response.
  • Reusing the key with a different raw body returns HTTP 409 IDEMPOTENCY_KEY_REUSED.
  • When source.sequence is present, it must be greater than the last accepted sequence.
  • An equal or lower sequence returns HTTP 409 STALE_SOURCE_SEQUENCE.
Keep the serialized body unchanged during an idempotent retry. Even harmless whitespace changes produce a different request hash.

Request limits

  • Maximum body size: 1 MiB.
  • Default rate limit: 120 Push attempts per Widget in a rolling one-minute window.
  • Content-Type must include application/json.
  • Schedule and Event arrays accept up to 500 items.
  • Announcement arrays accept up to 200 items.
  • Transport arrays accept up to 1,000 items.

Handle errors

Do not retry schema, authentication, or conflict errors blindly. Retry HTTP 429 and transient server failures with exponential backoff, preserving the Idempotency Key and body for the same logical snapshot.

Validate the integration

  1. Send the first snapshot and require accepted: true.
  2. Record its dataRevision.
  3. Confirm the Player changes after the configured Widget refresh interval.
  4. Retry the identical request and confirm the revision does not increase.
  5. Send a new body with a new Idempotency Key and higher sequence.
  6. Confirm the Widget changes without republishing the Design.
  7. Test invalid schema, stale sequence, expired key, rate limit, and temporary network failure behavior.

Important notes

  • This endpoint is not a general API for editing Designs, Playlists, Screens, or Publications.
  • The Push API changes the Widget’s semantic data, not its layout or visual style.
  • Legacy Widget integration dialogs can use a different endpoint and body. Use the request generated by that Widget’s Studio dialog.
  • Keep Static JSON valid so the Player has a safe fallback before the first accepted dynamic snapshot.