Airwave

Generic REST

Read Airwave data from curl or any HTTP client.

Every endpoint lives under /api/public/v1 and needs your API key (from Settings → API Keys). Set a couple of shell variables and go:

AIRWAVE=http://192.168.1.10:36020/api/public/v1
KEY=airwave_your_key

Server status

curl -s -H "X-API-Key: $KEY" "$AIRWAVE/status"
{
  "product": "airwave",
  "version": "0.14.68",
  "name": "Blue Turtle - Airwave Server",
  "uptimeSeconds": 43210,
  "counts": { "channels": 42, "packages": 8, "activeSessions": 2 }
}

What's on right now

/guide/now returns one row per channel — ideal for a dashboard:

curl -s -H "Authorization: Bearer $KEY" "$AIRWAVE/guide/now"

Who's watching

curl -s -H "X-API-Key: $KEY" "$AIRWAVE/sessions/count"   # {"count":2}
curl -s -H "X-API-Key: $KEY" "$AIRWAVE/now-playing"       # compact per-viewer view

Channels and the full guide

curl -s -H "X-API-Key: $KEY" "$AIRWAVE/channels"
curl -s -H "X-API-Key: $KEY" "$AIRWAVE/channels/by-number/101/now"
curl -s -H "X-API-Key: $KEY" "$AIRWAVE/guide?forwardMinutes=180"

Add ?include=definition to a channel request to also get its authoring internals (filter/sources/manual + ordering). See the API Reference for the complete list and a live playground.

Artwork

Sessions and programs include an artworkUrl — a tokenless, host-relative poster path. Prepend your server's base URL and use it directly in an <img> or a dashboard; it needs no API key and no Plex token:

# artworkUrl looks like: /api/public/v1/channels/{channelId}/artwork/{ratingKey}?kind=poster
curl -s "http://192.168.1.10:36020$(curl -s -H "X-API-Key: $KEY" "$AIRWAVE/now-playing" \
  | jq -r '.nowPlaying[0].artworkUrl')" --output now-playing.jpg

kind selects poster (portrait, the default), background (landscape fanart), or thumb.

On this page