Pinglark

API overview

How to send a notification, and what the response means.

Sending

Create an endpoint in the app, copy its send URL, then POST JSON. Base host:

https://api.pinglark.app

Minimal send:

curl -X POST \
  'https://api.pinglark.app/v1/send/{credential}' \
  -H 'Content-Type: application/json' \
  -d '{"message":"Deploy finished"}'

Useful optional fields: title, subtitle, sound, image (https), link (https), actions, reference, thread.

Keep the credential secret. Anyone with the URL can notify that endpoint.

Example accepted response (202):

{
  "notification_id": "ntf_…",
  "accepted_at": "2026-10-09T12:00:00Z",
  "warnings": []
}

Accepted vs delivered

A successful send returns 202 with a notification_id. That means the service accepted the request. It is not a promise that APNs delivered a banner or that you saw it.

If you send the same reference again within 24 hours for the same endpoint, the service returns the original receipt and does not send again.

Action replies

Set "actions":"acknowledge" to add an Acknowledge button. Values: acknowledge, yes_no, approve_decline. You can answer from the lock screen or Inbox. Pinglark records your answer. The app does not contact your script directly or automatically rerun your job.

curl -X POST \
  'https://api.pinglark.app/v1/send/{credential}' \
  -H 'Content-Type: application/json' \
  -d '{"title":"Deploy?","message":"Ship 2.4.1 now?","actions":"approve_decline"}'

Practice vs live

Practice mode keeps sends on your iPhone. To get a URL your scripts can call, turn on live sending in Settings, then create the endpoint. Endpoints made in practice mode stay on the device.

Back to Pinglark