API Documentation

Everything you need to integrate PushCloud into your apps, scripts, and services. Send push notifications in seconds with our simple REST API.

Authentication

PushCloud uses two types of credentials:

For account management endpoints (messages, devices, settings), authenticate with a session cookie obtained via the login endpoint, or pass your User Key via the Authorization header:

Authorization: Bearer YOUR_USER_KEY

Base URL

All API requests should be made to:

https://pushcloud.bobby.sh/api/v1

Send a Notification

The primary endpoint for sending push notifications to a user.

POST /api/v1/messages/send

Send a push notification to a user's registered devices.

ParameterTypeDescription
tokenstringrequiredYour application token
userstringrequiredRecipient's user key
messagestringrequiredThe notification body text
titlestringoptionalNotification title (defaults to app name)
priorityintegeroptional-2 to 2 (see priority levels below)
urlstringoptionalURL to open when tapped
url_titlestringoptionalLabel for the URL
soundstringoptionalSound name (default: "pushcloud")
image_urlstringoptionalURL of an image to attach
htmlbooleanoptionalEnable HTML formatting in message

Example request:

curl -X POST https://pushcloud.bobby.sh/api/v1/messages/send \
  -H "Content-Type: application/json" \
  -d '{
    "token": "app_abc123...",
    "user": "usr_xyz789...",
    "message": "Build #4521 deployed to production",
    "title": "Deploy Complete",
    "priority": 1,
    "url": "https://ci.example.com/builds/4521"
  }'

Response:

{
  "status": 1,
  "request": "msg_1a2b3c..."
}

Quick Send (Pushover-compatible)

A simplified endpoint that's compatible with Pushover's API format, making migration easy.

POST /api/v1/send

Accepts the same parameters as the main send endpoint. Designed as a drop-in replacement for Pushover — just change the URL.

curl -X POST https://pushcloud.bobby.sh/api/v1/send \
  -H "Content-Type: application/json" \
  -d '{
    "token": "app_abc123...",
    "user": "usr_xyz789...",
    "message": "Server CPU at 95%!"
  }'

Priority Levels

ValueNameBehavior
-2LowestNo notification, stored in inbox only
-1LowNo sound or vibration
0NormalStandard notification with sound
1HighBypasses quiet hours
2CriticalSends as iOS Critical Alert — plays sound even in Do Not Disturb and silent mode
Priority 2 (Critical) requires the user to have enabled Critical Alerts for PushCloud in iOS Settings. These should be reserved for truly urgent notifications.

List Messages

GET /api/v1/messages

Retrieve a paginated list of the authenticated user's messages. Returns the most recent messages first.

ParameterTypeDescription
limitintegeroptionalNumber of messages (default 50, max 200)
offsetintegeroptionalPagination offset

Get Message

GET /api/v1/messages/:id

Retrieve a single message by its ID.

Acknowledge Message

POST /api/v1/messages/:id/acknowledge

Mark a priority 2 (critical) message as acknowledged. This stops any repeat alerts for that message.

Archive / Delete Messages

POST /api/v1/messages/:id/archive

Archive a message. Archived messages are hidden from the default inbox view but not permanently deleted.

DELETE /api/v1/messages/:id

Permanently delete a message.

Register Device

POST /api/v1/devices

Register an iOS device to receive push notifications. Typically called from the PushCloud iOS app.

ParameterTypeDescription
tokenstringrequiredAPNs device token
namestringrequiredDevice name (e.g. "Bobby's iPhone")
modelstringoptionalDevice model identifier

List Devices

GET /api/v1/devices

List all registered devices for the authenticated user.

Create Application

POST /api/v1/applications

Create a new application and receive an API token for sending notifications.

ParameterTypeDescription
namestringrequiredApplication name
descriptionstringoptionalWhat this app is for
iconstringoptionalIcon identifier

List Applications

GET /api/v1/applications

List all applications owned by the authenticated user.

Email Forwarding

PushCloud can convert incoming emails into push notifications. Each user has a unique email alias:

your-alias@pushcloud.bobby.sh

When an email arrives at this address, PushCloud will:

Find your email alias in the Settings section of your dashboard. You can regenerate it at any time if needed.

Email forwarding is perfect for alerts from services that only support email notifications — like cron jobs, monitoring tools, or form submissions.