InstaVision iOS SDK
IVSDK is the Swift framework behind the InstaVision app. Drop it into your own iOS app and you get the same camera platform — accounts, Bluetooth pairing, WebRTC live view, SD-card playback, the event feed and professional monitoring — without writing a line of networking or signalling code.
One SDK covers every InstaVision product line. The platform APIs are shared; each product adds the features its cameras have:
| Home Security | Professional monitoring, siren and lights, doorbell, face recognition |
| Baby | Nursery monitor: cry, temperature and humidity alerts, lullaby player, growth and care logs |
| Pet | Pet profiles, recognition, activity insights |
| Bird | Feeder camera with species identification |
| Trail | Outdoor wildlife camera: hunting mode, GPS, timelapse, cellular data |
Read the platform pages once; then read the section for the product you are building.
Requirements
| Platform | iOS 15.5+ |
| Language | Swift 5.9+ |
| Distribution | CocoaPods |
| Import | import IVSDK |
Get started InstaSDK reference
What the SDK does
Accounts and access. Email/password, Sign in with Apple and Google Sign-In. Tokens are stored in the keychain and refreshed transparently. An app that authenticates users elsewhere can hand the SDK a token instead.
Spaces. A space is a home or site. It owns cameras, members and events, and every other API is scoped to one. Spaces can be shared with other users, per camera and per role.
Cameras. Pair a new camera over BLE, then read and write its settings — detection sensitivity, schedules, night vision, activity zones, privacy mode, PTZ, firmware, SD card.
Live video. WebRTC live view and SD-card playback, with two-way audio and video calling, snapshots, recording, and a manual siren.
Events. A searchable feed of what the cameras detected, with AI classification, filtering, paging and cross-device delete sync.
Professional monitoring. Arm and disarm a security profile, handle alarms within a dismissal window, manage responding parties, and read the security audit log.
Products. Everything above is shared by all five product lines; the product-specific features are listed at the top of this page and documented under Products in the sidebar.
How it fits together
InstaSDK.shared.configure(_:partnerId:region:environment:)
│
├── Factory.userService ────── sign in, profile, push tokens
│
└── after sign-in
│
├── Factory.spaceService ──── spaces, events, pairing sessions
│ │
│ └── spaceId ───────► every other call
│
├── Factory.deviceService ─── settings, firmware, PTZ, SD card
├── Factory.subscriptionService
├── Factory.proMonitoringService
├── Factory.faceService / babyService / petService (product features)
│
├── BLEManager.instance ───── pair a new camera
└── LiveViewObjectStore ───── live view and playback
Two ideas carry across the whole API:
Everything is reached through Factory. Services are protocol-typed singletons; you never construct one — Factory.userService, Factory.deviceService, and so on.
Everything returns IVPublisher<T>. A Combine publisher that never fails — errors arrive as ResourceState.error values, so one exhaustive switch handles loading, success and failure.
Factory.spaceService.spaces()
.receive(on: DispatchQueue.main)
.sink { state in
switch state {
case .loading: showSpinner()
case let .success(spaces): render(spaces)
case let .error(error): showAlert(error.localizedDescription)
}
}
.store(in: &cancellables)
Where to go next
| If you want to… | Start at |
|---|---|
| Install and configure the SDK | Getting Started |
Look up InstaSDK itself | InstaSDK |
| Sign a user in | Accounts & Users |
| Pair a camera | Pairing a Camera |
| Show live video | Live View |
| Play back from the SD card | SD Card Playback |
| List and filter events | Events |
| Build for one product line | Home Security · Baby · Pet · Bird · Trail |
| See what changed | Change Log |
| Look up an enum or query key | Types Reference · Cluster Catalogue |
| Check reachability or the App Store version | System & Diagnostics |
| See what still needs review | Documentation Gaps |