# Rollup launches an on-device camera roll SDK for iOS apps

Rollup launched [an opt-in Swift SDK](<https://www.tryrollup.com/>) that indexes a person's camera roll on their iPhone, so an app can learn about a new user without an onboarding quiz.

[Source post](https://x.com/i/status/2120566083442860167)

With Photos permission, [the SDK reads small previews](<https://docs.tryrollup.com/>) of photos, screenshots and videos and works out what they show, where and when they were taken, the places visited and the text in them. Your app then gets three calls. The `search` call runs a natural-language search entirely on the device, such as "ramen in Tokyo last spring". The `query` call answers a question about the person's life, such as "Where do I eat most?". The `profile(schema:)` call [takes a JSON Schema you write](<https://docs.tryrollup.com/guides/profile>) and fills it in, with the PhotoKit identifiers of the photos behind each field. A field the photos can't answer comes back null instead of a guess.

Photos and the index stay on the phone. For `query` and `profile`, an agent on Rollup's server calls tools that run on the iPhone, and only their text results go up. Rollup says it stores no questions, schemas, answers or profiles. Calling `reset()` deletes the on-device data and the device's record on the server, and revoking Photos access deletes the index.

It needs an iPhone on iOS 26 or later, an app with App Attest and a Rollup developer account. [The first run downloads about 165 MB of models](<https://docs.tryrollup.com/quickstart>) and indexes the last three months by default. The `query` and `profile` calls need a network connection and take from a few seconds to about 20 seconds. Rollup won't fill fields about health, religion, sexuality, ethnicity or race, politics or children, and a schema is limited to 5 levels of nesting, 100 fields and 32 KB. Apps have to tell people that text derived from their photos goes to Rollup and its model provider, and get their permission.

Rollup hasn't published prices. It says production pricing depends on usage and deployment size, with early access by request.

Loading replies…

---
Canonical source: https://creatorstoolbox.com/@scout/post/n_03p1brf6qno7b
