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 18+, macOS 15+, watchOS 11+
AndroidGitHub ReleasesAndroid 12+

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 character 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": {
"channel_id": "YOUR_CHANNEL_ID",
"op_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"message_id": "3b7fd2e87d7d4d6d9c7f3a318ac21f02",
"accepted": true
},
"error": null,
"error_code": null
}

success=true means the Gateway accepted the request. accepted=true means it entered dispatch; final notification display still depends on device state, platform push services, and private transport status.

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 32KB; use image URLs instead of embedding binary data.

See Limits & Errors for more status codes.