Documentation Index

Fetch the complete documentation index at: https://academy.insiderone.com/llms.txt

Use this file to discover all available pages before exploring further.

Limitations and Liability

Prev Next

The limitations and liability clauses below clarify the responsibility split between the customer and Insider One.

Content responsibility

All content fields (title, message, content_state, attributes) you send in /start, /update, and /end calls are the customer’s responsibility.

Insider One:

  • Does not validate the content. Spelling, format, and logical correctness are up to the customer.

  • Does not modify the content. It acts as a proxy.

  • Does not retain the content persistently. No trace of it remains on Insider One's side once the push is sent.

  • Does not translate or localize the content. The customer sends its own push per language.

Insider One is not liable for UX issues caused by wrong, faulty, or misleading content.

activity_type exact match (case-sensitive)

The activity_type value sent in API requests must match the ActivityAttributes Swift class name in the iOS application.

  • iOS class name: OrderTrackingAttributes

  • Correct API value: OrderTrackingAttributes

  • Wrong examples: ordertrackingattributes, OrderTracking, order_tracking_attributes

Mismatch result: Apple fails silently on the device. The push is sent, but the live activity is not rendered. Insider One cannot detect this mismatch; a push that does not reach the device appears as "undelivered" in Insider One's delivery-tracking infrastructure (delivery analytics details will be shared in a future release).

Verification: Before going to production, cross-check each activity_type value against the class name in the iOS application.

content_state schema and enum matching

The content_state field must be compatible with the ContentState struct in the iOS application. Specifically:

Field names

Unless the Swift Codable protocol's CodingKeys provides a mapping, field names must match exactly.

Enum cases

Enum-typed fields must match the Swift case names exactly (case-sensitive).

enum OrderStatus: String, Codable {
    case preparing
    case onTheWay
    case delivered
}
  • "preparing": Correct

  • "onTheWay": Correct

  • "on_the_way": Silent fail (Apple decoder errors)

  • "OnTheWay": Silent fail

  • "on-the-way": Silent fail

Type compatibility

A field marked as Int in a Swift struct fails decoding if sent as a string from the API. Type matching is mandatory as well.

Insider One does not detect these mismatches. The Apple decoder errors silently on the device; as a result the live activity is not updated or never opens.

iOS version requirement

Flow

Minimum iOS

Description

Push-to-Start (API-driven)

17.2+

Older devices are filtered out under the unsupported_os_version counter in the /register response.

SDK-First (device-started)

16.1+

The minimum version where Apple's Live Activities feature is supported.

There is no fallback mechanism on Insider One's side for older iOS versions.

Device-side Apple limitations (Not managed by Insider One)

Apple enforces some limitations at the device level; Insider One does not track, restrict, or report them as errors. The customer and the end-user application must manage them on their own side.

  • Max 5 live activities at the same time: A maximum of 5 live activities can be active concurrently on a single device (Apple rule). When this limit is reached, and a new live activity is attempted on the device, Apple does not open the new activity; Insider One, however, cannot know this. Your API call counts the push in the sessions_triggered counter, but it may not actually render on the device.

  • User-side dismissal: The user can always dismiss the live activity with a swipe; Insider One does not learn of this.

  • Stale-after/dismissal-date: After Apple's prescribed durations, the activity disappears from the screen. Insider One does not enforce this.

None of these are reflected as error codes or counters in the Insider One API. We recommend tracking device-side behavior via your own telemetry/in-app metrics.

Maximum 7-day time to live (TTL)

The maximum lifetime of activities is 7 days:

  • ends_at in /register cannot be more than 7 days away → 400 ENDS_AT_TOO_FAR.

  • The validity period of the record on Insider One's side is set according to ends_at; when it expires, the activity automatically becomes DEAD.

TTL expiry does NOT send a final push to the device. To close the activity cleanly, always call /end explicitly.

AOO bbudget

Activation: 1 unit is consumed from the AOO budget

Deactivation: The consumed unit is not returned

Toggling Live Activities on and off does not restore your budget. If you later want to enable the product again, 1 unit is consumed again. This affects your AOO budget management.

Insider One liability disclaimer

Insider is not liable for any issues that may arise from Live Activities.

This API provides a best-effort proxy service. Issues stemming from the following cases are the customer’s responsibility:

  • Apple push-side issues: Token-invalid, certificate-expired, rate limit, payload-too-large.

  • Customer content errors: Wrong activity_type, malformed content_state enum, missing field.

  • Device-side UX issues: The user dismissing the activity, an OS update, or the user disabling the Live Activities feature.

  • Network issues: The device having no internet connection, APNS being temporarily unreachable.

  • Customer-backend issues: Mistimed calls, retry-strategy errors, idempotency violations.

Insider One:

  • Provides SLA for API uptime and functional correctness (subject to your contract).

  • Reports the number of pushes handed off to Apple as sessions_triggered.

  • Tracks whether the push reached the device on Insider One's side and will expose this via analytics/segmentation in a future release.

  • Does not assume responsibility for Apple's rendering decision on the device.

Rate limit and volume

Limit

Value

Rate limit

1,000 requests/minute (per endpoint + API key)

Max insider_ids per /register

10,000

Max number of active activities

No upper limit (your own tracking)

You can contact the Insider One team for higher volume use cases.

Pre-production reminder

Before launching it to production, the prerequisites checklist must be complete.

  • activity_type values in API requests must match the iOS ActivityAttributes class names exactly.

  • content_state enum cases must be tested.

  • The retry/backoff strategy for /start and /end must be written to avoid violating idempotency.

  • A 2-5 second buffer must be left between /start and the first /update.

  • Always call /end explicitly to close activities and do not rely on TTL.

  • Error logging must be configured per Error Codes.