# PoolKit > PoolKit is the camera roll SDK for iOS: products, places, events, recipes, links and more from a person's photos and screenshots, read on their device, with evidence for every answer and a grant they can take back. - [Quickstart](https://docs.pool.day/index.md): Add the package, ask for access, and run your first query against a person's camera roll in about ten minutes. - [React Native and Expo](https://docs.pool.day/expo.md): Use PoolKit from a React Native or Expo app: install the module, set it up with the config plugin, and call the same API as Swift from TypeScript. - [Grants](https://docs.pool.day/grants.md): A grant is the person's permission for one purpose. Pool indexes and answers only what an active grant covers. - [Queries](https://docs.pool.day/queries.md): Ask in plain words, with a typed query, or both. Every answer says how Pool knows it and how much it could see. - [Search and browse](https://docs.pool.day/search.md): Find the photos themselves by what they say and what they show, find look-alikes, and count what a library holds. - [Classify by a rule](https://docs.pool.day/classify.md): Write a rule in plain words and get the captures that belong to it, scored on the device first. - [Signals](https://docs.pool.day/signals.md): Get an event when the person saves something new that matches: a product, a concert, or a rule you write in plain words. - [Interests](https://docs.pool.day/interests.md): Which topics a person's photos and screenshots are about, counted in days, against a taxonomy that maps to IAB audience ids. Now, or over their whole library. - [Rank a catalog](https://docs.pool.day/rank.md): Order your own items by how well they fit what the person saved, on the device or on your server. - [Trips](https://docs.pool.day/trips.md): Read the trips a person took, as cities and days, without ever learning where they live. - [Places and visits](https://docs.pool.day/places.md): Know where photos were taken, down to the neighbourhood and the venue, without ever learning where the person lives. - [People](https://docs.pool.day/people.md): Group photos of the same person on the device, unnamed, with an apparent age range and gender when the model is sure. - [Read one capture](https://docs.pool.day/reader.md): Turn a single screenshot or photo your app already has into products, places, events and links. No library access needed. - [Answers and profiles](https://docs.pool.day/answers.md): Ask a question and get words back with citations, or hand PoolKit a schema and get it filled with evidence for every field. - [Evidence and coverage](https://docs.pool.day/evidence.md): Pool never hands you a bare claim. Every answer says where it came from, how sure it is, and what it could not see. - [Live queries and changes](https://docs.pool.day/live.md): Keep a screen fresh as the person takes new photos, or sync Pool's context into your own store. - [Indexing](https://docs.pool.day/indexing.md): Pool builds its index on the device, in the background. It answers from the first capture it reads, and understands what photos show once its models are installed. - [Cloud assist](https://docs.pool.day/cloud-assist.md): An optional step for what a device cannot do alone: naming things without Apple's on-device language model, writing answers, and filling profiles. It sends text Pool already read, never an image. - [App Attest](https://docs.pool.day/app-attest.md): Make your app key useless outside your app: cloud assist requests are signed by a key in the iPhone's Secure Enclave and checked by Pool. - [Privacy and data flow](https://docs.pool.day/privacy.md): What stays on the device, what reaches Pool, and what you are responsible for. - [App Review and privacy labels](https://docs.pool.day/app-review.md): What to write in App Store Connect's privacy questions, the review notes and your purpose strings when your app uses PoolKit. - [Testing](https://docs.pool.day/testing.md): Run the real engine in unit tests and SwiftUI previews, with no photo library, no app key and no network. - [Build with an agent](https://docs.pool.day/mcp.md): Connect Claude Code, Cursor or any MCP client to PoolKit, so it can add PoolKit to your app, check the setup and debug indexing runs. - [Troubleshooting](https://docs.pool.day/troubleshooting.md): The problems developers hit most with PoolKit, and how to fix each. - [Errors](https://docs.pool.day/errors.md): Every failure is a PoolError case you can switch over. - [Keys, apps and run reports](https://docs.pool.day/keys.md): Test and live keys, rotating a key without breaking shipped builds, turning an app off, and the indexing run reports you can see in the dashboard. - [Service API](https://docs.pool.day/service.md): Every call PoolKit makes to Pool. You never call them yourself; this page is for security reviews. - [Limits and roadmap](https://docs.pool.day/limits.md): What version 1 does, what it does not do yet, and what comes next. - [Changelog](https://docs.pool.day/changelog.md): What changed in each PoolKit release. This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.