Documentation Index
Fetch the complete documentation index at: https://usefantasma.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Shared SDK Behavior
Fantasma’s iOS, Android, Flutter, and React Native SDKs share one ingest contract and one core runtime model. The platform pages cover install and API shape; this page covers the behavior they have in common.Common Ingest Model
- Events are queued durably before upload rather than sent inline.
- Uploads target
POST /v1/events. - Client apps must use project-scoped
ingestwrite keys. - SDKs upload in JSON batches and treat
202 Acceptedas the success case. - Malformed successful responses are treated as invalid and leave queued rows in place.
Upload Triggers
All shipped SDKs attempt uploads:- every 30 seconds
- when the queue reaches 100 events
- when
flush()is called
Queue And Identity Semantics
- Accepted events are deleted from the durable queue.
- Failed or retryable uploads keep rows in the queue for later replay.
clear()rotates the future install identity without rewriting already queued rows.- Each SDK auto-populates built-in metadata such as timestamp, install id, platform, device, app version, OS version, and locale.
platformis the coarse OS family.deviceis the coarse form factor.- Apple SDKs emit
platform=macos,device=desktopfor native macOS, Mac Catalyst, and iOS-on-Mac desktop-class runs. - Android-class mobile SDKs emit
platform=androidwithdevice=phoneordevice=tablet, and fall back todevice=unknownwhen the runtime cannot classify device form factor.
Blocked And Retryable Destinations
The shared destination model is:401,422, and409 project_pending_deletionblock the current destination- transport failures,
500, and unrelated409responses remain retryable