POST JSON to /api/ingest with Authorization: Bearer and your ingest token. MCP is the same writes with tool names, for agents that speak MCP.
For apps and workflows
curl
Post a status tile, then a KPI. The runnable file is examples/quickstart/post.sh.
Python
Same two posts from a script. Exits non-zero unless the HTTP status is 200.
Node
Same contract in JavaScript. BOTOPTICON_URL and BOTOPTICON_TOKEN from the environment.
n8n / Zapier
An HTTP Request node. Daily schedule or a webhook. Do not post the same body to keep a tile fresh.
n8n workflow
Import one workflow. It posts an outside metric once a day, or when a webhook arrives.
Make
A daily outside metric, and a webhook that posts an approval tile.
Home Assistant
A rest command and an automation that post a status tile and a KPI tile.
Keep tiles fresh
TTL, cron, and heartbeat. Post when the value changes. A quiet tile should show as stale.