Skip to content

Getting Started

This guide is for first-time PushGo users. At the end, you will have a usable channel and a working HTTP request that sends your first Message.

  • A device with a released PushGo client installed.
  • A terminal that can run curl.
  • A channel ID and channel password. You can create a new channel in the client or subscribe to one shared by another device.

Install one of the released clients.

PlatformDownloadRequirement
iOS / macOS / watchOSApp StoreiOS 17+, macOS 14+, watchOS 10+
AndroidGitHub ReleasesAndroid 9+

A channel is the PushGo write boundary. Requests go to a channel, and subscribed devices become delivery targets.

  1. Open the client.
  2. Use the add action.
  3. Choose create channel.
  4. Enter a recognizable name and an 8-128 byte password.
  5. Save the generated channel ID and password.
  1. Open the client.
  2. Choose subscribe channel.
  3. Enter the channel ID and password.
  4. After subscription, the device will receive content for that channel.

Public gateways are useful for testing without deploying a server.

RegionGateway
Globalhttps://gateway.pushgo.dev
Mainland Chinahttps://gateway.pushgo.cn

Choose the region closest to you and your receiving devices. If you self-host, replace the example URL with your own Gateway URL. If your Gateway uses PUSHGO_TOKEN, add Authorization: Bearer <token>.

Terminal window
curl -X POST https://gateway.pushgo.dev/message \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"title": "Hello from PushGo",
"body": "This is a test notification.",
"severity": "normal"
}'

A successful response looks like:

{
"success": true,
"data": {
"op_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"message_id": "3b7fd2e87d7d4d6d9c7f3a318ac21f02"
}
}

success=true means the Gateway durably accepted the request. Save op_id for GET /send_status/{op_id}; final display still depends on providers, device state, permissions, and private transports.

SymptomCheck
400 responseJSON validity, field names, and required title, channel_id, password.
401 responsePrivate Gateway PUSHGO_TOKEN and Authorization: Bearer <token>.
404 responseChannel ID and whether the device created or subscribed to the channel.
success=true but no notificationDevice notification permission, network state, Android private transport, APNs/FCM delivery.
Payload too largeJSON body max is 32 KiB (32,768 bytes); use image URLs instead of embedding binary data.

See Limits & Errors for more status codes.