Your webhook URL has a secret baked in that handles all authentication:
https://pushbird.app/pb_your_secret_here
Anyone who has this URL can push notifications to your device. Keep it safe. You can rotate the secret from the app whenever you want.
curl -X POST https://pushbird.app/pb_your_secret \ -H 'Content-Type: application/json' \ -d '{ "title": "Build Passed", "subtitle": "CI/CD", "message": "All 42 tests green" }'
$ch = curl_init('https://pushbird.app/pb_your_secret'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'title' => 'Build Passed', 'message' => 'All 42 tests green' ]) ]); curl_exec($ch);
import requests requests.post("https://pushbird.app/pb_your_secret", json={ "title": "Build Passed", "subtitle": "CI/CD", "message": "All 42 tests green" })
await fetch("https://pushbird.app/pb_your_secret", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ title: "Build Passed", subtitle: "CI/CD", message: "All 42 tests green" }) });
body := strings.NewReader(`{"title":"Build Passed","subtitle":"CI/CD","message":"All 42 tests green"}`) req, _ := http.NewRequest("POST", "https://pushbird.app/pb_your_secret", body) req.Header.Set("Content-Type", "application/json") http.DefaultClient.Do(req)
The entire body becomes the notification message.
curl -X POST https://pushbird.app/pb_your_secret \ -d 'Hello from PushBird!'
file_get_contents('https://pushbird.app/pb_your_secret', false, stream_context_create(['http' => [ 'method' => 'POST', 'content' => 'Hello from PushBird!' ]]));
requests.post("https://pushbird.app/pb_your_secret", data="Hello from PushBird!")
await fetch("https://pushbird.app/pb_your_secret", { method: "POST", body: "Hello from PushBird!" });
http.Post("https://pushbird.app/pb_your_secret", "text/plain", strings.NewReader("Hello from PushBird!"))
Works from a browser, a bookmark, or any tool that can open a URL.
curl 'https://pushbird.app/pb_your_secret?title=Alert&message=Check+the+logs'
file_get_contents('https://pushbird.app/pb_your_secret?title=Alert&message=Check+logs');
requests.get("https://pushbird.app/pb_your_secret", params={"title": "Alert", "message": "Check logs"})
await fetch("https://pushbird.app/pb_your_secret?title=Alert&message=Check+logs");
http.Get("https://pushbird.app/pb_your_secret?title=Alert&message=Check+logs")
| Parameter | Type | Description |
|---|---|---|
title | String | First line of the notification |
subtitle | String | Second line, shown under the title |
message | String | Main body text |
open_url | String | Opens this URL when you tap the notification |
image_url | String | Attaches an image to the notification |
interruption-level | String | passive, active (default), time-sensitive |
{"ok": true}
{"error": "message or title is required"}