> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pool.day/llms.txt
> Use this file to discover all available pages before exploring further.

# Interests

> 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.

`interests` counts the days a person saved captures about each topic of PoolKit's taxonomy, and compares that with a typical person. It runs on the device, on what is already indexed. It reports counts and dates, never a claim about what the person likes or is.

```swift theme={null}
let grant = try await pool.authorization.requestAccess(
    AccessRequest(data: [.products, .places, .recognizedText], operations: [.query], purpose: "Personalize your home screen")
)

let now = try await pool.context.interests(using: grant)
for interest in now {
    print(interest.path.joined(separator: " › "), interest.status, interest.days, interest.timesTypical ?? 0)
}
// Fashion › Footwear › Sneakers  emerging  6  3.2
// Food & Drink › Coffee           active    11  1.4
```

## Now and lifetime

| Window | Covers | Returns |
| - | - | - |
| `.now` (default) | The last 90 days | `active` and `emerging` topics, strongest first |
| `.lifetime` | The whole index | Also `lapsed` topics, ordered by `lifetimeStrength` |

Pass `includeAll: true` to add `typical` topics and single-day `moment`s. `limit` is 50 by default, up to 500.

## What an interest holds

| Field | Meaning |
| - | - |
| `id`, `name`, `path` | The taxonomy topic, such as `fashion.footwear.sneakers`, with its names from the top down. |
| `iab`, `purchaseIntent` | IAB Tech Lab Audience Taxonomy 1.1 interest and purchase intent ids, for your ad or CRM segments. |
| `status` | `active`: captured in the last 30 days, on at least 3 days. `emerging`: first captured in the last 30 days, on at least 2. `lapsed`: at least 3 days, none in the last 90. `typical`: anything else seen on more than one day. `moment`: a single day. |
| `days`, `daysLastYear`, `lifetimeDays` | Distinct days with a capture about the topic in the window, the last 365 days and the whole index. |
| `strength`, `lifetimeStrength` | Those days over all days with any capture, 0 to 1. |
| `timesTypical`, `lifetimeTimesTypical` | Strength against a typical person's, scaled to how often this person captures at all: 2 means twice as often as typical. |
| `firstSeen`, `lastSeen` | The first and last capture about the topic. |
| `photos` | Up to 10 capture ids, one from each of the busiest days, for [evidence](https://docs.pool.day/evidence.md). |

A capture counts for a topic, and every topic above it, when Apple's Vision labelled it with one of the topic's labels, or when a thing PoolKit found in it names one of the topic's words.

## The taxonomy

`PoolClient.interestTaxonomy` lists every topic: 129 of them in 19 groups such as fashion, beauty, food, home, tech, travel, music, sports and pets. Each maps to IAB Audience Taxonomy 1.1 ids where IAB has one.

Topics on health, religion, politics, sexuality, children and personal finances are not in it, so no call can return them. Captures the privacy gate marked sensitive never count.

## Inside the grant

* `interests` needs the `query` operation and counts only captures the grant's data categories and scope cover.
* It never sends anything to Pool.
* When the person revokes the grant, the call throws `PoolError.grantRevoked` like every other read.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.