Skip to content

Support

pingground is built and run by one developer. Email is the only support channel, and a real person reads it.

Get in touch

Email support@pingground.app. Expect a reply within a few business days; there is no phone line and no guaranteed response time.

A report gets answered faster when it includes:

  • What you did, what you expected, and what happened instead.
  • The request ID from the error, if one was shown — it identifies the exact request in the logs.
  • Roughly when it happened, with your time zone.
  • Whether it was the iPhone app or the web dashboard, and the app version from the Settings tab.

Please do not send an API credential, a recipient key, or a session token in an email.

They are never needed to investigate a problem, and a credential that has been emailed should be rotated.

Security issues are welcome at the same address — say “security” in the subject line and give it time to be fixed before publishing.

Getting started

The shortest path from a fresh install to a notification you sent yourself.

  1. Sign in with Apple on the first screen. It is the only sign-in method, and the account is created on first sign-in.
  2. Grant notification permission from the setup card on the Playground tab. Permission is only ever requested after sign-in, and declining is a supported state.
  3. Compose a draft. The canonical JSON, the provider headers, and the payload byte count update as you type, and an invalid payload is refused before the provider is contacted, naming the field to fix.
  4. Run a local test — it schedules the notification on the device itself and needs no network — then a remote test, which sends the same draft through the server and the real push path.
  5. Open History to see the send with its provider request identifier, HTTP status, and any rejection reason.

Notifying yourself from your own scripts

Create an application, issue a credential, subscribe yourself to it, and call the API from a cron job, a CI run, or a webhook.

The full contract — authentication, endpoints, the typed draft, quotas, and the send-state vocabulary — is on the API reference page.

Two things trip people up. A credential is shown once and never again, so store it before leaving the page. And a notification can never be addressed to a device, an installation, or an account — only through a recipient key from a subscription that person created, which they can cap, mute, or revoke at any time.

Common questions

The app says a send was accepted, but no notification appeared.
“Accepted” means Apple's push notification service took the notification, but Apple doesn't guarantee every notification arrives. Check the notification settings for pingground in iOS Settings, whether a Focus mode is filtering it, whether the device was offline, and whether the notification arrived quietly in Notification Center instead of as a banner.
A send was rejected. What now?
The history entry carries the provider's HTTP status and its exact rejection reason, unedited. A reason naming the payload usually means a field is too long or the canonical payload exceeded 4096 bytes — the composer shows the byte count live. A reason naming the target usually means that installation is no longer valid, in which case pingground stops using it; re-open the app on that device to register it again.
I did not get a notification I subscribed to.
Open Settings in the app and find the application in the list of those allowed to notify you. Check that it is not muted, that its hourly and daily caps are not set to zero or already spent, and that the subscription is still active. If any of those blocks a send, nothing is sent to your device.
I lost my API credential.
It cannot be recovered. The secret is shown exactly once at creation and stored only as a digest, so nobody — including the operator — can read it back. Rotate the credential in the dashboard: rotation issues a successor and revokes the predecessor immediately, so update your scripts at the same time.
My script is getting 429 send_quota_exceeded.
A quota class is spent. The response carries a Retry-After header and the used, limit, and remaining counts for each class, so wait that long rather than retrying in a loop. If the limit that bit is one a recipient set on their subscription, only that recipient can raise it.
Sign in with Apple will not complete.
A sign-in attempt expires after five minutes and can only be used once, so a stale or re-opened sign-in page fails by design — start again from the beginning. If it still fails, sign out on the device, confirm your Apple Account is signed in on the system, and try once more. If you removed pingground's authorization in your Apple Account settings, your next sign-in creates a fresh authorization.
How do I delete my account and everything in it?
Use account deletion in the app's Settings tab or on the dashboard's account screen. It revokes the Sign in with Apple authorization and then removes your account, sessions, devices, templates, applications, credentials, subscriptions, and history in one operation. It is immediate and cannot be undone, so export anything you want to keep first.

What pingground stores and for how long is set out on the privacy page.