---
title: "PageReading"
description: "a page as a reader read it, the document a capture carries and a walk deposits: the address, the title, the visible text, the headings and links, the properties the template read, the contacts the page showed, the fields not read, the template, and how it was read; the extension and the walk make the same shape"
section: concepts
address: /concepts/pagereading
contract: 0476e35e6e275db5
---

# PageReading

a page as a reader read it, the document a capture carries and a walk deposits: the address, the title, the visible text, the headings and links, the properties the template read, the contacts the page showed, the fields not read, the template, and how it was read; the extension and the walk make the same shape

[figure: PageReading is a value at none scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | value |
| scope | none |
| key | none |
| store | none |
| family | sources |



## Fields


| field | type | required | note |
|---|---|---|---|
| `actual_url` | `text` | yes |  |
| `title` | `text` | yes |  |
| `main_text` | `text` | yes |  |
| `headings` | `[text]` | yes |  |
| `links` | [PageLink](/concepts/pagelink) | yes |  |
| `outcome` | `one of readable_loaded \| empty_or_blocked \| rate_limited` | yes |  |
| `outcome_reason` | `text` | no |  |
| `properties` | [PageProperty](/concepts/pageproperty) | yes |  |
| `contact_links` | [PageLink](/concepts/pagelink) | yes | mail, telephone and message links, kept apart |
| `contacts` | [PageContact](/concepts/pagecontact) | yes |  |
| `misses` | [PageMiss](/concepts/pagemiss) | yes |  |
| `template` | `text` | no | the extraction template that read the page |
| `logo_image` | `text` | no |  |
| `captured_at` | `time` | yes |  |
| `page_hints` | [PageHints](/concepts/pagehints) | yes |  |
| `annotations` | [Annotation](/concepts/annotation) | no | what the person said about the page while capturing it |
| `fields` | [PageField](/concepts/pagefield) | no | the form fields the page showed, with what the person typed |
| `engagement` | [PageMeasure](/concepts/pagemeasure) | no | the counts the page showed |
| `network_events` | [PageNetworkEvent](/concepts/pagenetworkevent) | no | the calls the page made while a rule was on |
| `layers` | [PageLayer](/concepts/pagelayer) | no | the dialogs and menus open when the page was read, each read as its own region |
| `steps` | [BrowsingStep](/concepts/browsingstep) | no | what the person did on the page, in order, while a rule was on |
| `session` | `text` | no | the page's own session: one opening of one page in one tab, so readings of one visit join |



## Routes that use it
No route takes or returns PageReading directly. The record holds it, and the objects that point at it reach it.
