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

# Reading an app page

> What each section of a Periphery app page shows, and what first seen and last seen mean.

An app page is the full record for one hostname. Open it by clicking a hostname in the results, or directly at `https://console.periphery.exposed/app/<hostname>`. The hostname is matched case-insensitively and a trailing dot is ignored.

The page has a header, a main column (screenshot, page, credentials, extracted text, snapshot) and a sidebar (hosting and exposure). On a narrow screen the sidebar moves under the main column.

## Header

* **Back to results** returns to the search you came from, filters and page included.
* **Favicon.** Click it to [find clones](https://docs.periphery.exposed/search/finding-clones.md).
* **Hostname**, with a copy button next to it.
* **Provider** chip: the platform the app runs on.
* **Status** badge: the HTTP status from the last visit that got an answer, green for 2xx, blue for 3xx, orange for 4xx, red for 5xx. A bot-wall page shown to the scanner does not change it.
* **Open** opens the live app in a new tab.
* **Rescan** is not available yet: clicking it asks whether you would use it.
* **First seen**: how long ago Periphery first got an answer from the host. Search results show this value.
* **Last scanned**: how long ago Periphery last visited the host without proving it dead (the `lastSeen` field). This is a liveness timestamp, not always the capture time of the screenshot and other artifacts.

## Overview and History

**Overview** holds everything below. **History**, every snapshot of the app over time, is not available yet: clicking it asks whether you would use it.

## Page

The page **Title**, and **AI description**: its **Generate** button is not available yet and asks whether you would use it.

## Screenshot

A capture of the page as it rendered in a headless browser at the last snapshot, at the top of the main column. Apps whose render failed show a "No screenshot yet" placeholder; their status comes from a plain HTTP request instead.

## Hosting

In the sidebar:

* **Provider**: the platform the app runs on.
* **Favicon hash**: click it to search for every app serving the same favicon, and nothing else. **Not fetched** when Periphery has no favicon for the app.
* **Status**: the HTTP status from the last visit that got an answer.

## Exposure

In the sidebar:

* **Emails**: every email address found on the page, with the count. Each address is a link that starts a new search for apps showing that address, and only that. See [Emails and credentials](https://docs.periphery.exposed/apps/emails-and-credentials.md) for how they are found.
* **Verified keys**: the detectors that found a verified credential.

## Credentials

The heading lists the detectors that found a verified credential. On the Plus plan the section lists every finding, verified or not, with its detector and its masked value. On Free it shows only a lock line for the verified findings; unverified findings are not shown.

## Extracted text

The visible text of the page, as a search engine would read it. This is the text that free-text queries and the `domain:` mention signal match against.

## Snapshot links

Snapshot links (screenshot, favicon) are signed and expire after an hour. Reload the page if one stops loading.

## Viewing limits

App pages can be opened up to 60 times a minute and 2,000 times a day per account, and 120 times a minute and 5,000 times a day per network address. Ordinary browsing stays far below this. Over a limit, the page asks you to slow down instead of showing the app. To work through many apps, use the [API](https://docs.periphery.exposed/api/overview.md).

## What first seen means

**First seen** is the first visit that got any answer from the host, even an error status. It never changes afterwards, so `firstSeen:<1w` in search lists what appeared this week. It is when Periphery first saw the app, not when the app launched. Apps indexed before October 2026 carry the time Periphery indexed them.

## What last seen means

The page shows it as **last scanned**; the field and the search filter are `lastSeen`. It is the time of Periphery's last visit that did not prove the host dead, whether or not the host answered. **It is a liveness timestamp, not necessarily the artifact capture time.**

When the browser renders the app successfully, the same visit refreshes **last seen** and replaces the screenshot, text, email addresses, and findings. When the render fails but a fallback check still shows the hostname is not proven dead, Periphery can refresh **last seen** without replacing those artifacts.

That means a recent **last seen** value does not guarantee that the screenshot or findings are equally recent. Periphery does not currently show a separate snapshot timestamp, so confirm the live page yourself when artifact freshness matters to a response decision.

Apps are re-snapshotted on a rolling basis; there is no fixed schedule.

## Dead and unvisited hosts

When a snapshot finds that a hostname no longer resolves, or that the provider reports the deployment as gone, the app is marked dead. Dead apps leave the search results, their app page answers "app not found", and the API returns 404 for them.

A hostname Periphery has discovered but never visited answers "app not found" too, in the console and the API, until its first visit. An app page exists exactly for the apps search can return.


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