API-dokumentation
Skicka push-aviseringar till din iPhone från valfri server, skript eller CI-pipeline med en enda HTTP-förfrågan.
Snabbstart
1. Öppna Pling på din iPhone. Gå till Config > Tokens och generera en API-token.
2. Skicka din första notis:
$ curl -X POST https://api.plingpush.com/api/push \ -H "Content-Type: application/json" \ -d '{"token":"YOUR_TOKEN","title":"Hello from Pling!"}'
3. Notisen kommer till din telefon direkt via push eller WebSocket.
Bas-URL
https://api.plingpush.com
Alla endpoints tar emot och returnerar JSON. Autentisera med din API-token i begärans body eller URL-sökväg.
Endpoints
Skicka en JSON-pushavisering. Inkludera din token i kroppen.
Begäran
{
"token": "YOUR_TOKEN",
"title": "Deploy complete",
"message": "Production v2.4.1 is live",
"channel": "deploys",
"priority": "normal"
}
Svar 200
{ "ok": true, "id": "notif_a7x9k2" }
Token skickas i URL-sökvägen. Skicka oformaterad text (kroppen blir meddelandet) eller JSON utan token-fältet.
# Plain text: body becomes the message curl -d "Server rebooted" https://api.plingpush.com/api/push/YOUR_TOKEN # JSON: token from URL, not body curl -X POST https://api.plingpush.com/api/push/YOUR_TOKEN \ -H "Content-Type: application/json" \ -d '{"title":"Alert","priority":"high"}'
Klistra in i en webbläsare, bokmärk, eller använd i webhooks som bara stöder GET-förfrågningar.
https://api.plingpush.com/api/push/YOUR_TOKEN?title=Hello&message=World&priority=high
Frågeparametrar: title (eller t), message (eller m), priority (eller p), subtitle, sound.
Fält i begäran
| Fält | Typ | Beskrivning |
|---|---|---|
| token obligatoriskt | string | Din API-token |
| title obligatoriskt | string | Aviseringstitel (max 512) |
| message | string | Brödtext (max 4096) |
| subtitle | string | Underrubriksrad (max 256) |
| channel | string | Gruppnamn, t.ex. "deploys" |
| priority | string | low normal high critical |
| url | string | Öppnas när aviseringen trycks på |
| image_url | string | URL till bildbilaga |
| sound | string | Ljudnamn (åsidosätter kanalens standard) |
| thread_id | string | Gruppera i samma aviseringstråd |
| interruption_level | string | passive active time-sensitive |
| åtgärder | array | Knappar: [{label, url, method?}] |
| metadata | object | Anpassad nyckel-värde-data (max 2 kB) |
| body | string | Alias för message (max 4096) |
| krypterad | boolean | Om true E2E-krypteras titel/meddelande (Pro) |
Maxgräns för nyttolast: 64KB.
Prioritetsnivåer
| Prioritet | Beteende |
|---|---|
low | Tyst leverans, visas endast i flödet |
normal | Standardpush med standardljud |
high | Framträdande varning, markerad i flödet |
critical | Kringgår Stör ej och tyst läge |
Kanaler
Kanaler grupperar notiser efter ämne. Skapa dem i appen för att ställa in egna ljud och tysta scheman per kanal.
Inkludera "channel": "name" i din förfrågan. Notisen levereras även om kanalen inte finns ännu i appen. Inställningarna tillämpas dock inte förrän du skapar den.
Hastighetsgränser
| Endpoint | Gräns |
|---|---|
POST /api/push | 60 förfrågningar/min per token |
GET /api/push/:token | 30 förfrågningar/min per token |
Returnerar 429 Too Many Requests vid överskridande.
Fel
Alla svar returnerar JSON:
// Success { "ok": true, "id": "notif_a7x9k2" } // Error { "ok": false, "error": "token and title are required" }
| Status | Betydelse |
|---|---|
| 200 | Avisering skickad |
| 400 | Ogiltig begäran (saknade fält, för stor nyttolast) |
| 401 | Ogiltig eller utgången token |
| 403 | Pro-prenumeration krävs |
| 429 | Hastighetsgräns överskriden |
| 500 | Serverfel |
Kodexempel
# Basic notification curl -X POST https://api.plingpush.com/api/push \ -H "Content-Type: application/json" \ -d '{"token":"YOUR_TOKEN","title":"Hello"}' # Full example with all common fields curl -X POST https://api.plingpush.com/api/push \ -H "Content-Type: application/json" \ -d '{ "token": "YOUR_TOKEN", "title": "Disk full", "subtitle": "db-01", "message": "/dev/sda1 at 95%", "channel": "alerts", "priority": "critical", "url": "https://grafana.example.com/d/disk" }' # Plain text via token-in-URL echo "Backup complete" | curl -d @- \ https://api.plingpush.com/api/push/YOUR_TOKEN
// Node.js / Bun / Deno const response = await fetch("https://api.plingpush.com/api/push", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ token: process.env.PLING_TOKEN, title: "Build failed", message: error.message, channel: "ci", priority: "high" }) }); const data = await response.json(); // { ok: true, id: "notif_..." }
import requests requests.post("https://api.plingpush.com/api/push", json={ "token": os.environ["PLING_TOKEN"], "title": "Training complete", "message": f"Loss: {final_loss:.4f}", "channel": "ml", "priority": "normal" })
var request = URLRequest( url: URL(string: "https://api.plingpush.com/api/push")!) request.httpMethod = "POST" request.setValue("application/json", forHTTPHeaderField: "Content-Type") request.httpBody = try JSONEncoder().encode([ "token": "YOUR_TOKEN", "title": "Backup complete", "message": "2.4 GB archived", "channel": "backups" ]) let (data, _) = try await URLSession.shared.data(for: request)
payload, _ := json.Marshal(map[string]string{ "token": os.Getenv("PLING_TOKEN"), "title": "Deploy complete", "channel": "deploys", "priority": "normal", }) http.Post("https://api.plingpush.com/api/push", "application/json", bytes.NewReader(payload))
# .github/workflows/deploy.yml - name: Notify Pling if: always() run: | curl -X POST https://api.plingpush.com/api/push \ -H "Content-Type: application/json" \ -d '{ "token": "${{ secrets.PLING_TOKEN }}", "title": "Deploy ${{ job.status }}", "message": "${{ github.repository }}@${{ github.sha }}", "channel": "deploys", "priority": "${{ job.status == 'failure' && 'high' || 'normal' }}" }'
#!/bin/bash # pling-notify.sh: save and chmod +x TOKEN="${PLING_TOKEN}" TITLE="${1:-Notification}" MSG="${2:-}" PRIORITY="${3:-normal}" CHANNEL="${4:-}" curl -s -X POST https://api.plingpush.com/api/push \ -H "Content-Type: application/json" \ -d "$(jq -n \ --arg t "$TOKEN" --arg title "$TITLE" \ --arg msg "$MSG" --arg p "$PRIORITY" \ --arg ch "$CHANNEL" \ '{token:$t,title:$title,message:$msg,priority:$p,channel:$ch}')" # Usage: ./pling-notify.sh "Deploy OK" "v2.4.1" "normal" "deploys"
# Crontab heartbeat every 6 hours 0 */6 * * * curl -s -o /dev/null \ "https://api.plingpush.com/api/push/YOUR_TOKEN?title=Heartbeat&m=Server+is+alive" # Docker healthcheck HEALTHCHECK --interval=5m CMD curl -sf \ "https://api.plingpush.com/api/push/YOUR_TOKEN?t=Health+OK" || exit 1
Konfiguration av AI-agent
Lägg till Pling-notiser till valfritt projekt genom att klistra in dessa i din AI-kodningsagent. De kopplar upp en notify-hjälpare och anropar den från dina deploy-/felvägar.
Claude Code Lägg till i CLAUDE.md
When you complete a task, send me a push notification:
curl -X POST https://api.plingpush.com/api/push \
-H "Content-Type: application/json" \
-d '{"token": "YOUR_TOKEN", "title": "Done", "message": "Brief summary"}'
For deploy scripts and error handlers in this project, use the
PLING_TOKEN environment variable and send push notifications on
success (priority: normal, channel: deploys) and failure
(priority: high, channel: alerts). Add a notify() helper if one
doesn't exist.
Claude Code läser CLAUDE.md i början av varje konversation. Att lägga till detta globalt innebär att varje projekt automatiskt får Pling-notiser.
Codex Lägg till i AGENTS.md
## Notifications
After completing tasks, send a push notification via Pling:
POST https://api.plingpush.com/api/push
Content-Type: application/json
{"token": "$PLING_TOKEN", "title": "Task complete", "message": "summary"}
For deploy and CI scripts, call this endpoint on success
(channel: deploys, priority: normal) and on failure
(channel: alerts, priority: high). Use the PLING_TOKEN env var.
Codex läser AGENTS.md för projektinstruktioner. Detta säkerställer att varje Codex-agentkörning meddelar dig via Pling när den är klar.
Engångsprompt (valfri AI-agent)
Integrate Pling push notifications into this project.
API endpoint: POST https://api.plingpush.com/api/push
JSON body: {token, title, message?, channel?, priority?}
Token comes from PLING_TOKEN env variable.
Add a notify() helper function. Call it from:
- Deploy success path (channel: "deploys", priority: "normal")
- Error handlers (channel: "alerts", priority: "high")
- Long-running task completion (channel: "tasks")
Recept
Steg-för-steg-guider för att skicka Pling-pushar från verktygen du redan använder:
- GitHub Actions — skicka ett byggresultat till din telefon, med en tryckbar länk tillbaka till körningen.
- Cron-jobb och skalskript — bli pingad när ett schemalagt jobb eller en säkerhetskopiering slutförs eller misslyckas.
- Python — en återanvändbar hjälpfunktion, notify-on-exception och Django/Flask-hooks.
- Grafana — dirigera Grafana-aviseringar till din telefon via en webhook-kontaktpunkt.
- Prometheus Alertmanager — en webhook_config som skickar utlösta och lösta aviseringar.
- Uptime Kuma — upp/ned-övervakningsaviseringar som pushnotiser.