Markdown and images

Messages are plain text unless you ask for Markdown. Accounts with images enabled can also attach a linked image.

Markdown

Set format to markdown (or send the Format: markdown header). The lock screen shows the message as clean text; the app shows it formatted, with working links. The body limit is the same 2048 characters.

curl -H "Authorization: Bearer pba_…" \
  -H "Title: Deploy finished" \
  -H "Format: markdown" \
  -d "**web 2.4.1** is live on 3 instances. [Release notes](https://example.com/releases/2.4.1)" \
  https://peskybird.app/api/push/topics/deploys

PeskyBird supports a subset of CommonMark:

  • Paragraphs and line breaks.
  • Headings, all shown in one heading style.
  • *italic* and **bold**.
  • Bullet and numbered lists, nested up to two levels.
  • Links: [label](https://…), <https://…> and bare URLs. Only https, http and mailto links can be tapped; others show their label.

Anything else shows as its plain text, never as raw syntax: code spans and blocks, quotes, tables and Markdown images show their text, and HTML is dropped.

Images

Set image (or the Image header) to an HTTPS URL. The notification shows the image, and the app shows it in the inbox and the message. Images are available to accounts that have them enabled; others get 403 forbidden with the reason images_not_enabled.

curl -H "Authorization: Bearer pba_…" \
  -H "Title: Disk almost full" \
  -H "Image: https://grafana.example.com/render/disk.png" \
  -d "/var is at 91% on nas-01" \
  https://peskybird.app/api/push/topics/alerts
  • PeskyBird stores the link, never the image. Your phone downloads it directly from the server that hosts it, so that server sees your phone's IP address.
  • JPEG, PNG or GIF, at most 5 MB, over HTTPS.
  • If the image can't be downloaded in time, the notification shows without it and the app shows “Image unavailable”.