← Back to home

Webhook API

Send a push notification to your phone from any script, server, or CI pipeline with a single HTTP request. No SDK, no polling, no third-party integration.

Authentication

Webhooks use a simple ID-based model. There are no API keys or tokens to manage.

  1. Open the Notify app and go to the Webhooks screen.
  2. Tap Create Webhook and give it a name (e.g. "Deploy alerts").
  3. Copy the webhook ID shown in the app.

The webhook ID goes directly in the URL path. No headers, no Bearer tokens:

POST https://notifyapp.archidigital.ro/api/webhook/<your-webhook-id>/send
Keep your webhook ID secret. Anyone with the ID can send notifications to your phone. If a webhook ID is compromised, delete it in the app and create a new one.

Payload format

Send a JSON body with Content-Type: application/json.

Field Type Required Constraints
title string Yes 1–200 characters
body string Yes 1–500 characters

Both fields are required. Sending an empty string or exceeding the character limit returns a 400 error.

Responses

Success (200):

{ "success": true }

Validation error (400):

{
  "name": "BadRequestError",
  "message": "Title is required and must be at most 200 characters."
}

Webhook not found (404):

{
  "name": "HttpError",
  "message": "Webhook not found"
}

curl example

Copy, paste, replace YOUR_WEBHOOK_ID, and hit enter:

curl -X POST https://notifyapp.archidigital.ro/api/webhook/YOUR_WEBHOOK_ID/send \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Test notification",
    "body": "If you see this on your phone, it works."
  }'

JavaScript example

// Works in Node.js 18+, Deno, Bun, or any modern browser
const WEBHOOK_ID = "YOUR_WEBHOOK_ID";

const res = await fetch(
  `https://notifyapp.archidigital.ro/api/webhook/${WEBHOOK_ID}/send`,
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      title: "Test notification",
      body: "If you see this on your phone, it works.",
    }),
  }
);

console.log(await res.json()); // { success: true }

Use case ideas

Server goes down

Add a health-check script to your cron. If your server doesn't respond, fire the webhook. You'll know within seconds — not when a customer emails you.

#!/bin/bash
# Run this every minute via cron
if ! curl -sf https://yoursite.com/health > /dev/null; then
  curl -X POST https://notifyapp.archidigital.ro/api/webhook/YOUR_WEBHOOK_ID/send \
    -H "Content-Type: application/json" \
    -d '{"title": "Server down", "body": "https://yoursite.com is not responding."}'
fi
Cron job completes (or fails)

Append one line to any scheduled task — backups, data imports, report generation — and get confirmation it actually ran.

# At the end of your backup script
curl -X POST https://notifyapp.archidigital.ro/api/webhook/YOUR_WEBHOOK_ID/send \
  -H "Content-Type: application/json" \
  -d '{"title": "Backup complete", "body": "Database backup finished at '$(date)'"}'
Price crosses a threshold

Poll an API for stock or crypto prices. When it crosses your target, notify yourself instantly — no need to keep a tab open or pay for an alerting service.

# Python — check BTC price every 5 minutes
import requests

price = requests.get("https://api.coinbase.com/v2/prices/BTC-USD/spot").json()
btc = float(price["data"]["amount"])

if btc < 55000:
    requests.post(
        "https://notifyapp.archidigital.ro/api/webhook/YOUR_WEBHOOK_ID/send",
        json={
            "title": "BTC price alert",
            "body": f"Bitcoin dropped to ${btc:,.0f}.",
        },
    )