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 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. |
Complex Segments can cause delays in processing
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
Device changes can take a few minutes
Some requests to register or unregister information about a device may take a few minutes to process before you are able to see the changes. Keep this in mind when performing PUT or POST requests.
Push API
POST /api/push
Push Object
- 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.
-
Platform Overrides
- iOS: Max limit is set to 2,048 bytes
- Android: Max limit is set to 4,096 bytes
-
In-app Message
- In-app messages are sent via the same payload as iOS and Android, so the payload limits for their respective platform apply here.
-
Audience
-
Notification Payload
Limits to batching push requests
- Please include no more than 100 Push Objects in your batch request.
Segments API
GET /api/segments/
Segment Object Limit
- Default limit is set to 25 Segment objects per request. Set to limit to 25 or less in your API calls.
Schedules API
POST /api/schedules/
Batch Limit
- 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.
GET /api/schedules/
Schedule Object Limit
- Default limit is set to 25 Schedule Objects per request. Set the limit to 25 or less in your API calls.
Automation API
GET /api/pipelines/?limit=(integer)&enabled=(enabled_flag)
Pipeline Object limit
- No default limit. For maximum performance, set your limit between 25 to 100.
GET /api/pipelines/deleted/?start=(date)
Pipeline Object limit
- No default limit.
Tags API
POST /api/channels/tags/
Tags Limit
- We recommend to not set more than 1000 tags per Channel ID.
POST /api/named_users/tags/
Named User Tag Limit
- We recommend to not set more than 1000 tags per Named User.
Channels API
GET /api/channels/
Object Limit
- Default limit is 1000 Channel Objects returned per request. Set the limit to 1000 or less in your API calls.
POST /api/channels/uninstall/
Channel ID Object limit
- Recommended limit of no more than 100 Channel ID Objects per uninstall request.
Reports API
GET /api/reports/responses/list?start=(date)&end=(date)&limit=(results_per_page)
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
GET /api/named_users
Named User Object Limit
- Default limit is set to 100.
POST /api/named_users/associate
Named User ID Limit
- You may only associate up to 50 Channel IDs to a Named User.
POST /api/named_users/tags
Named User Object Limit
- Default limit is set to 1000 Tags.
- Default limit is set to 1000 Named User Objects.
Lists API
POST /api/lists/
Lists Limit
- You can upload up to 100 lists per application
PUT /api/lists/(name)/csv
List Object Limit
- Each List can hold no more than 10 million identifiers.