BuzzyDemo

API

Authenticate with a hashed API key. Never ship keys in the mobile app. Users are addressed by your external ids. Walk the whole path on Harbor Desk — a fake helpdesk that calls this API for real.

Authentication

Authorization: Bearer nfy_live_…

Send a notification

curl -X POST $API_URL/v1/notifications \
  -H "Authorization: Bearer API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "user": "8472",
    "title": "New order",
    "body": "Order #18291 received",
    "url": "https://example.com/orders/18291"
  }'

JavaScript

await fetch(`${API}/v1/notifications`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    user: "8472",
    title: "New order",
    body: "Order #18291 received",
    url: "https://example.com/orders/18291",
  }),
});

Node.js SDK

import { NotifyClient } from "@notify/sdk";
const buzzy = new NotifyClient(process.env.BUZZY_API_KEY, process.env.BUZZY_API_URL);
await buzzy.sendNotification({
  user: "8472",
  title: "New order",
  body: "Order #18291 received",
  url: "https://example.com/orders/18291",
});

PHP

$ch = curl_init($api . '/v1/notifications');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer ' . $key,
    'Content-Type: application/json',
  ],
  CURLOPT_POSTFIELDS => json_encode([
    'user' => '8472',
    'title' => 'New order',
    'body' => 'Order #18291 received',
    'url' => 'https://example.com/orders/18291',
  ]),
]);
curl_exec($ch);

Pairing & errors

POST /v1/pairing/sessions with an externalId returns a 12-character joinCode (XXXX-XXXX-XXXX, 24 hours, single use) and buzzy://pair/…. Errors are JSON { error: { code, message, requestId } }. Default 60 req/min and 1000 notifications/month on FREE. Send Idempotency-Key on creates. The notification url is an HTTPS web page for details. App deeplinks are rejected. Buzzy opens that page in a browser view.

Buzzy