CROWDMANAGERCROWDMANAGER

Push API

Introduction

We offer a Push API for our API Consumers that prefer changes to be pushed to their own server to minimize unnecessary overhead calls and bandwith. For the push service the API consumer has to register a subscription which specifies the endpoint which shall be used for pushing data to. The push updates are HTTP POST requests posting to the endpoint url defined in the registered subscription. The body of the HTTP POST requests are formatted according to the JSON API specification.

Every subscription needs a valid working url endpoint that has to be verified at first before any data can be pushed to defined url endpoint. For more information, see subscription.

Subscription Verification Process

Every subscription needs to be verified for security reasons. Read our push service set up guide to set up and validate your subscription.

Pushing Reliability

If a push fails, the CROWDMANAGER service will retry pushing for a maximum of 10 attempts at an increasing time interval. In case all attempts fail (approx 2,5 hours after first attempt) the API consumer will have to pull for changes from our API. This is to avoid flooding a subscribed url endpoint after a long down time.

Batching

We batch updates whenever possible, we provide for each event the operation that occured, this could be add, remove or replace.

It is possible, that on one object there will be multiple operations within one batch time window. In that case, every occurrence will reflect it's final state.

Example: When object has been added and then removed, the push update will have two operations related to it: add and delete, however object attached to this operation will have it's final state. If it would be a StreamEntry - it will have no Content.

Whenever one object is included multiple times with one push update batch, always use timestamp field to determine its actual state.

Format

Subscriptions support Content-Type, depending on the selection it can be either json:api or plain json format. Types of items pushed:

Fields in Push Item

Name Description Type/Supported Values
operation Operation type string [add, replace, remove]
path Origin URL of push string
eventTime Time of push executed datetime
value Value of Push Item string

For more Information see: