Every endpoint of the Pushello REST API, generated from the API itself.
All endpoints are relative to https://api.pushello.com. Create an API key in your Pushello dashboard, then authenticate every request with it.
apiKey — HTTP Basic auth carrying only the API key secret: Authorization: Basic base64(<key secret>).
accessToken — Operator session token issued by the Pushello dashboard: Authorization: Token <access token>.
Download the OpenAPI specification for use with your own tooling.
List registered devices
Lists the devices registered in your organization. Requires the devices:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| platform | query | string (APN | FCM | WebPush | WNS) | |
| limit | query | integer | |
| skip | query | integer |
| Status | Meaning |
|---|---|
| 200 | Array of devices |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the devices:read scope |
| 429 | API key rate limit exceeded |
| default | Request failed |
Register a device
Registers a device token so it can receive push notifications. Called by the client SDKs; no API key is required.
| Name | In | Type | Description |
|---|---|---|---|
| projectIdrequired | path | string |
| Field | Type | Description |
|---|---|---|
| tokenrequired | string | |
| platformrequired | string (APN | FCM | WebPush | WNS) | |
| environment | string (sandbox | production) | |
| metadata | object | |
| previousToken | string | |
| wnsAuthenticationMode | string (legacy | entra) | Required as entra for Windows App SDK channels. Omitted historical WNS registrations default to Partner Center legacy; invalid on other platforms. |
| Status | Meaning |
|---|---|
| 200 | The registered device id |
| 404 | Project not found |
| default | Request failed |
List published notifications
Lists the notifications published in your organization, newest first. Requires the notifications:read scope.
| Name | In | Type | Description |
|---|---|---|---|
| projectId | query | string | |
| limit | query | integer | |
| skip | query | integer | |
| sortDirection | query | string (ASC | DESC) |
| Status | Meaning |
|---|---|
| 200 | Array of notifications |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the notifications:read scope |
| 429 | API key rate limit exceeded |
| default | Request failed |
Publish a notification to interests or users
Fans a push notification out to every device subscribed to the given interests, or associated with the given user ids. verifiedUsers targets only cryptographically verified device-user bindings. Authenticate with a marketplace API key (Basic auth) carrying the notifications:write scope, or with the project's legacy publish token (Bearer auth). Bearer publishes that include users or verifiedUsers require the private project secret; the legacy project key remains valid only for interest broadcasts on projects that have not disabled that legacy credential. DodoDentist has disabled it and requires its private project secret for every Bearer publish, including interest broadcasts.
| Name | In | Type | Description |
|---|---|---|---|
| projectIdrequired | path | string |
| Field | Type | Description |
|---|---|---|
| interests | array | |
| users | array | |
| verifiedUsers | array | |
| apns | object | |
| fcm | object | |
| webpush | object | |
| wns | object |
| Status | Meaning |
|---|---|
| 200 | The publish id and target/attempt/outcome counts |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the notifications:write scope |
| 404 | Project not found |
| 429 | API key rate limit exceeded |
| default | Request failed |
List projects
Lists the projects in your organization (push provider credentials stripped). Requires the projects:read scope.
| Status | Meaning |
|---|---|
| 200 | Array of projects |
| 401 | Missing or invalid credentials |
| 403 | API key is missing the projects:read scope |
| 429 | API key rate limit exceeded |
| default | Request failed |
List webhook subscriptions
Webhook subscriptions deliver notification.published, device.created and device.deleted events to your server as signed POST requests (X-Pushello-Signature: t=<timestamp>,v1=<hex HMAC-SHA256 of "timestamp.body">). An endpoint failing 20 times in a row is disabled automatically. Subscriptions are managed with an operator access token; the secret is only returned once, on create.
| Status | Meaning |
|---|---|
| 200 | Array of webhook subscriptions (without secrets) |
| default | Request failed |
Create a webhook subscription
The response includes the signing secret exactly once — store it; it cannot be retrieved again.
| Field | Type | Description |
|---|---|---|
| projectIdrequired | string | |
| urlrequired | string | |
| events | array (notification.published | device.created | device.deleted) | Empty array subscribes to all events |
| Status | Meaning |
|---|---|
| 200 | The created subscription, including its secret |
| default | Request failed |
Update a webhook subscription
url, events and active are editable; the secret and project are immutable. Re-enabling an auto-disabled endpoint is done by setting active back to true.
| Name | In | Type | Description |
|---|---|---|---|
| webhookSubscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | The updated subscription (without secret) |
| default | Request failed |
Delete a webhook subscription
Delete a webhook subscription
| Name | In | Type | Description |
|---|---|---|---|
| webhookSubscriptionIdrequired | path | string |
| Status | Meaning |
|---|---|
| 200 | Deleted |
| default | Request failed |