# Recipes

Common tasks from start to finish, each with code that runs: set up displays, react to events, and keep content in step with your own systems.

> **Type:** area
> **For:** Developers who want to solve a concrete task with the API and webhooks before they read the reference.

## Before you start

Every recipe uses the same two environment variables: the [base URL](/api/base-url-and-stability) of your environment and an API key. Each recipe names the permissions its key needs, see [Create an API key](/getting-started/create-api-key).

```bash
export SZENERA_API="https://<basis-adresse-ihrer-umgebung>"
export SZENERA_API_KEY="ak_…"
```

The shell examples need curl and jq. The scripts are TypeScript without dependencies, and Node.js 24 runs them directly with `node script.ts`.

## Displays and content

| Page | When you need it |
|---|---|
| [Create a display and give it content](/recipes/create-web-display) | Roll out displays from your own list: create each one with name and location, assign a program, and hand over the address for the TV. |
| [Give new displays a program automatically](/recipes/auto-assign-program) | Every new display gets the program of its location by itself, through a webhook and one API call. |

## React quickly

| Page | When you need it |
|---|---|
| [Show an emergency message at a location](/recipes/emergency-message) | Put a prepared scene on every display at one location until a set time, and end it early with one command. |
| [Post to Teams or Slack when a display goes offline](/recipes/offline-alert-chat) | A small receiver turns the webhook for status changes into a message in your team chat. |

## Content from your own systems

| Page | When you need it |
|---|---|
| [Sync media from your own system](/recipes/sync-media) | Mirror a folder of your own system into the library and let an automatic playlist play it. |
| [Schedule a campaign from your own system](/recipes/schedule-campaign) | Create program entries for a campaign day by day from your marketing calendar, and remove them again by their label. |

## Not possible yet

**Prices from a POS into the Menu board.** The Menu board has no public interface yet. Until it does, export the menu from your POS as CSV or Excel and import it in the portal, see [Menu board](https://docs.szenera.com/apps/menu-board).
