Push API

Overview

This API documentation covers submitting push jobs from external services.

URL scheme: https://<customer-id>.push.delivery/push-api/<endpoint>

To use the service you need HTTP basic auth. Data is sent as JSON via POST.

REST Endpoints

push

Submit a push job. Tags to be addressed can be specified via their id’s or their source id’s. For this endpoint a specific push user is available and can be looked up in the administration UI. Alternatively any user login can also be used to submit a push. If no appId’s are specified, it means all apps that are connected to the specified tags will be addressed, this is the default behavior.

The payload is typically an encoded JSON object, which then is transformed using a template for each platform. See Push templates information.

Table 1. Request Parameter Description
Name Description Example

tagIds

the IDs of the tags

101, 102

tagSourceIds

the source IDs of the tags

sport_football_team_fcb_goal, sport_football_team_fca_goal

appIds

the IDs of the apps (optional)

110, 111

payload

the payload of the push as string, typically a JSON object (escaped)

{ \'message \' : \'test\' }

if the tag is expired notification will be not delivered.
Example URL
https://<customer-id>.push.delivery/push-api/push
Example POST Request with tag ID (content type: application/json)
{
    "tagIds": [ <id-number>, <id-number> ... ],
    "payload": "{ \"field1\" : \"value\", \"field2\" : \"value\" ... }"
}
Example POST Request with tag source ID (content type: application/json)
{
    "tagSourceIds": ["sport_football_team_fcb_goal", "sport_football_team_fca_goal"],
    "payload": "{ \"field1\" : \"value\", \"field2\" : \"value\" ... }"
}
Example POST Request with specific app ID (content type: application/json)
{
    "tagIds": [ <id-number>, <id-number> ... ],
    "payload": "{ \"field1\" : \"value\", \"field2\" : \"value\" ... }",
    "appIds" : [ <id-number> ]
}
Example Response (content type: text/plain)
  adfb51b1-b037-cf17-b1f1-fafa60de1203

The response will be a push job id that can be used for status queries.

In case of an invalid request, the response will be a HTTP 422 code. Invalid requests are missing for example payload, or tag id’s or specify non-existant tag source id’s.

status

Query the status of a push job. The status response will have an entry for each app addressed in the push job. It also will carry the transformed (by the push template) payload for each app.

Example URL
https://<customer-id>.push.delivery/push-api/status/<status-id>
Example GET Request
https://<customer-id>.push.delivery/push-api/status/adfb51b1-b037-cf17-b1f1-fafa60de1203
Example Response (content type: application/json)
[
   {
        key: {
            id: "<job-id-string>",
            platformId: <platform-id>,
            appId: <app-id>
        },
        created: <timestamp-long>,
        finished: <timestamp-long>,
        state: "<state-string>",
        totalCount: <count-long>,
        successCount: <count-long>,
        noFeedbackCount: <count-long>,
        errorCount: <count-long>,
        messages: [ ],
        transformedPayload: "{ \"field1\" : \"value\"}"
    }
]