Logga in Hem API-dokument Agent Delning Integritet Support
Get Pling
iPhone-app macOS-agent (.dmg) Linux Windows GitHub

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

POST /api/push Send a push notification

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" }
POST /api/push/:token Token in URL, plain text or JSON body

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"}'
GET /api/push/:token URL-based push (bookmarks, simple webhooks)

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ältTypBeskrivning
token obligatorisktstringDin API-token
title obligatorisktstringAviseringstitel (max 512)
messagestringBrödtext (max 4096)
subtitlestringUnderrubriksrad (max 256)
channelstringGruppnamn, t.ex. "deploys"
prioritystringlow normal high critical
urlstringÖppnas när aviseringen trycks på
image_urlstringURL till bildbilaga
soundstringLjudnamn (åsidosätter kanalens standard)
thread_idstringGruppera i samma aviseringstråd
interruption_levelstringpassive active time-sensitive
åtgärderarrayKnappar: [{label, url, method?}]
metadataobjectAnpassad nyckel-värde-data (max 2 kB)
bodystringAlias för message (max 4096)
krypteradbooleanOm true E2E-krypteras titel/meddelande (Pro)

Maxgräns för nyttolast: 64KB.

Prioritetsnivåer

PrioritetBeteende
lowTyst leverans, visas endast i flödet
normalStandardpush med standardljud
highFramträdande varning, markerad i flödet
criticalKringgå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

EndpointGräns
POST /api/push60 förfrågningar/min per token
GET /api/push/:token30 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" }
StatusBetydelse
200Avisering skickad
400Ogiltig begäran (saknade fält, för stor nyttolast)
401Ogiltig eller utgången token
403Pro-prenumeration krävs
429Hastighetsgräns överskriden
500Serverfel

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

~/.claude/CLAUDE.md (global) or project 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

AGENTS.md (project root)
## 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: