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

# Read one capture

> Turn a single screenshot or photo your app already has into products, places, events and links. No library access needed.

For bookmarking: the person picks, shares or pastes one image, and your app saves what is in it.

```swift theme={null}
let reading = try await pool.reader.read(imageData: pngData)
for thing in reading.things {
    print(thing.type, thing.name, thing.attributes["price"] ?? "", thing.provenance)
}
```

* No grant and no photo library permission. The person handing you the image is the permission.
* Nothing is kept. PoolKit reads the image, answers and forgets it. Store what you need yourself.
* `read(imageData:)` takes PNG, JPEG or HEIC. `read(_:orientation:)` takes a `CGImage`.

## What comes back

| Field | Meaning |
| - | - |
| `things` | What PoolKit found: `type`, `name`, `attributes` such as price or date, `confidence`, and where on the image it was read |
| `text` | The lines of text on the image |
| `labels` | What the image shows |
| `barcodes` | Decoded barcodes and QR codes |
| `isRestricted` | True when the image looks like an ID, a payment card, a credential or a health record. Nothing else is returned. |
| `usedCloudAssist` | True when Pool's service named the things |

Each thing carries the same `provenance` and `resolution` labels as a library result. See [Evidence](https://docs.pool.day/evidence.md).

## Naming things

Reading text, labels and barcodes always happens on the device. Naming the things, such as "Nike Air Max 90, 149.99 EUR", uses Apple's on-device model where the device has it.

On other devices, opt in to cloud assist for the call:

```swift theme={null}
let reading = try await pool.reader.read(
    imageData: pngData,
    options: ReadOptions(allowsCloudAssist: true)
)
```

This sends the text PoolKit read, never the image, and only when cloud assist is also on in your configuration. Because there is no grant here, tell the person before you turn it on. When the service is busy or the phone is offline, you get the on-device reading.


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