Urban Airship provides a RESTful API that you can use to send and schedule pushes, manage your device audience, and retrieve reporting data about your device audience and pushes.
There are no hard limits to the amount of data you can retrieve or request to Urban Airship, however there are recommended guidelines for each of our API endpoints that should be heeded in order to reduce the number of timeouts you may encounter when querying any of the below endpoints.
If you encounter a HTTP 50x response on endpoints that use GETs, PUTs, or DELETE methods ensure that your server implements a retry method with an exponential back-off to ensure the best possible service. Also set a realistic timeout, as your performance may vary depending on the API endpoint used.
Timing for segment and device requests
When creating segments or pushes with logical expressions keep in mind that one or more NOT statements may cause latency when sending notifications, as NOT operations are inherently more expensive to perform than OR or AND operations.
Latency is greater with larger audiences. We recommend using AND statements in place of NOT statements whenever possible as a best practice
Some requests to register or unregister information about a device may take some time before you are able to see the changes. Keep this in mind when performing PUT or POST requests.
- A Push Object describes everything about a push, including the audience, and push payload. A Push Object is composed of up to six attributes with the following limits:
- When using Compound Selectors or Logical Expressions for your audience selector, ensure that you set a limit of no more than 1000 selectors per push request
- Total: Max limit is dependent on the platform you are sending to (iOS, Android, Amazon) in addition to a 256 KB limit for the Message Center.
- iOS: Max limit is set to 2,048 bytes
- Android: Max limit is set to 4,096 bytes
- In-app messages are sent via the same payload as iOS and Android, so the payload limits for their respective platform apply here.
- Include no more than 100 Push Objects in your batch request.
Segment Object Limit
- Default limit is set to 25 Segment objects per request. Set to limit to 25 or less in your API calls.
- Include no more than 1000 Scheduled Objects in your batch request. For Local Time Delivery, include no more than 100 Scheduled Objects in your batch request.
Schedule Object Limit
- Default limit is set to 25 Schedule Objects per request. Set the limit to 25 or less in your API calls.
Pipeline Object limit
- No default limit. For maximum performance, set your limit between 25 to 100.
Pipeline Object limit
- No default limit.
- Recommended to not set more than 1000 tags per Channel ID.
Named User Limit
- Hard limit is set to 20 Named Users per Channel ID.
- Default limit is 1000 Channel Objects returned per request. Set the limit to 1000 or less in your API calls.
Channel ID Object limit
- Recommended limit of no more than 100 Channel ID Objects per uninstall request.
Push Reports Object Limit
- Default limit is 25 Push Reports objects per request. Set your limit to 25 or lower in your API calls.
Time stamp limit
- Try to choose a start and end date where the time frame is within the last month. Setting a start and end date that is larger than that time window may result in a timeout or slower response.
Named Users API
Named User Object Limit
- Default limit is set to 1000.
Named User ID Limit
- You may only associate up to 20 Channel IDs to a Named User.
- You can upload up to 50 lists per application
List Object Limit
- Each List can hold no more than 10 million identifiers.