Geozones API
API methods to manage Geozones

getNearestZone

post
https://cp.pushwoosh.com/json/1.3
/getNearestZone
/getNearestZone
Example
{
"request": {
"application": "APPLICATION_CODE", // required, Pushwoosh application code
"hwid": "HWID", // required, hardware device ID used in /registerDevice function call
"lat": 10.12345, // required, latitude of the device
"lng": 28.12345 // required, longitude of the device
}
}
<?php
//see http://gomoob.github.io/php-pushwoosh/get-nearest-zone.html
use Gomoob\Pushwoosh\Model\Request\GetNearestZoneRequest;
// Creates the request instance
$request = GetNearestZoneRequest::create()
->setHwid('HWID')
->setLat(10.12345)
->setLng(28.12345);
// Call the '/getNearestZone' Web Service
$response = $pushwoosh->getNearestZone($request);
if($response->isOk()) {
print 'Zone name : ' . $response->getResponse()->getName();
print 'Latitude : ' . $response->getResponse()->getLat();
print 'Longitude : ' . $response->getResponse()->getLng();
print 'Range : ' . $response->getResponse()->getRange();
print 'Distance : ' . $response->getResponse()->getDistance();
} else {
print 'Oups, the operation failed :-(';
print 'Status code : ' . $response->getStatusCode();
print 'Status message : ' . $response->getStatusMessage();
}

addGeoZone

post
https://cp.pushwoosh.com/json/1.3
/addGeoZone
/addGeoZone
Example
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // API access token from Pushwoosh Control Panel
"application": "XXXXX-XXXXX", // Pushwoosh application code
"geozones": [{
"name": "Statue of George", // required. Geozone name.
"lat": "40.70087797", // required. Geozone latitude.
"lng": "-73.931851387", // required. Geozone longitude.
"cooldown": 60, // in seconds, required. Silent period after sending a notification.
"range": 50, // in meters, from 50 to 1000, required. Range of the geozone.
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", // or object, required if 'presetCode' field is empty.
"presetCode": "AAAAA-BBBBB", // optional. Push preset could be used instead of content field. Note: REQUIRED if content field is empty
"cluster": "GEOZONE CLUSTER CODE", // optional. Cluster's cooldown period will be applied. Specify null to unbind cluster from GeoZone.
"campaign": "CAMPAIGN_CODE", // optional. Specify null to unbind Campaign from GeoZone. If omit then Campaign value will not be changed. Has higher priority than Campaign from preset
"timetable": { // optional
"timezone": 1234, // in seconds
"Mon": [ // available days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Push sending stopped for missing day in list
{
"start": "04:11",
"stop": "12:00"
}
],
"Sun": [
{ // one or two intervals
"start": "01:11",
"stop": "17:00"
},
{
"start": "18:01",
"stop": "23:59"
}
]
}
}]
}
}

updateGeoZone

post
https://cp.pushwoosh.com/json/1.3
/updateGeoZone
/updateGeoZone
For Private Offering subscriptions only.
Example
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
"geoZoneId": 100016750, // required, from /addGeoZone method
"name": "new geozone name", // optional
"cooldown": 222, // in seconds, optional
"status": 0, // optional, 0 - deactivated, 1 - activated
"presetCode": "BBBBB-AAAAA", // optional, cannot be used along with "content"
"content": "new geozone content", // optional, cannot be used along with "presetCode"
"cluster": "GEOZONE CLUSTER CODE", // optional. Specify null to unbind cluster from GeoZone
"campaign": "CAMPAIGN_CODE", // optional. Specify null to unbind Campaign from GeoZone. If omit then Campaign value will not be changed. Has higher priority than Campaign from preset
"lat" : 10.56, // optional, geozone latitude
"lng" : 12.523,// optional, geozone longitude
"range" : 500, // optional, geozone range
"timetable": { // optional
"timezone": 1234, // in seconds
"Mon": [ // available days: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Push sending stopped for missing day in list
{
"start": "04:11",
"stop": "12:00"
}
],
"Sun": [
{ // one or two intervals
"start": "01:11",
"stop": "17:00"
},
{
"start": "18:01",
"stop": "23:59"
}
]
}
}
}

deleteGeoZone

post
https://cp.pushwoosh.com/json/1.3
/deleteGeoZone
/deleteGeoZone
For Private Offering subscriptions only.
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
"application": "XXXXX-XXXXX", // required, Pushwoosh application code
"geozones": [550,526] // required, geozones IDs
}
}

addGeoZoneCluster

post
https://cp.pushwoosh.com/json/1.3
/addGeoZoneCluster
/addGeoZoneCluster
For Private Offering subscriptions only.
Example
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
"application": "XXXXX-XXXXX", // required, Pushwoosh application code
"name": "Raccoon city", // required, cluster name
"cooldown": 3210 // required, in seconds
}
}

deleteGeoZoneCluster

post
https://cp.pushwoosh.com/json/1.3
/deleteGeoZoneCluster
/deleteGeoZoneCluster
For Private Offering subscriptions only.
Example
{
"request": {
"auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
"application": "XXXXX-XXXXX", // required, Pushwoosh application code
"geoZoneCluster": "EA1CE-69405" // required, cluster ID obtained from the /addGeoZoneCluster or /listGeoZoneClusters response
}
}

listGeoZones

post
https://cp.pushwoosh.com/json/1.3
/listGeoZones
/listGeoZones
For Private Offering subscriptions only.
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
"application": "XXXXX-XXXXX" // required, Pushwoosh application code
}
}

listGeoZoneClusters

post
https://cp.pushwoosh.com/json/1.3
/listGeoZoneClusters
/listGeoZoneClusters
For Private Offering subscriptions only.
Example
{
"request":{
"auth": "yxoPUlwqm…………pIyEX4H", // required, API access token from Pushwoosh Control Panel
"application": "XXXXX-XXXXX" // required, Pushwoosh application code
}
}