curl --request GET \
--url https://api.periphery.exposed/v1/apps/{hostname} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.periphery.exposed/v1/apps/{hostname}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.periphery.exposed/v1/apps/{hostname}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"hostname": "acme-dashboard.vercel.app",
"title": "Acme dashboard",
"status": 200,
"provider": "vercel",
"lastSeen": "2026-09-20T14:03:11Z",
"faviconHash": -247388890,
"faviconUrl": "https://periphery-enrich.s3.gra.io.cloud.ovh.net/acme-dashboard.vercel.app/favicon.ico",
"screenshotUrl": "https://periphery-enrich.s3.gra.io.cloud.ovh.net/acme-dashboard.vercel.app/screenshot.png",
"htmlUrl": "https://periphery-enrich.s3.gra.io.cloud.ovh.net/acme-dashboard.vercel.app/index.html",
"text": "Acme dashboard Sign in Forgot your password? Contact ops@acme.com",
"hasVerifiedCreds": true,
"emailCount": 1,
"verifiedDetectors": [
"Stripe"
],
"emails": [
"ops@acme.com"
],
"credentials": [
{
"detector": "Stripe",
"verified": true,
"raw": "sk_live_EXAMPLE00000000000000000"
}
]
}Get an app
Returns the full record for one hostname: the last snapshot’s status, title, text, artifact URLs, email addresses, and credential findings.
Hosts marked dead answer 404 even though they were once indexed. The
credentials array is present whenever there are findings.
curl --request GET \
--url https://api.periphery.exposed/v1/apps/{hostname} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.periphery.exposed/v1/apps/{hostname}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.periphery.exposed/v1/apps/{hostname}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"hostname": "acme-dashboard.vercel.app",
"title": "Acme dashboard",
"status": 200,
"provider": "vercel",
"lastSeen": "2026-09-20T14:03:11Z",
"faviconHash": -247388890,
"faviconUrl": "https://periphery-enrich.s3.gra.io.cloud.ovh.net/acme-dashboard.vercel.app/favicon.ico",
"screenshotUrl": "https://periphery-enrich.s3.gra.io.cloud.ovh.net/acme-dashboard.vercel.app/screenshot.png",
"htmlUrl": "https://periphery-enrich.s3.gra.io.cloud.ovh.net/acme-dashboard.vercel.app/index.html",
"text": "Acme dashboard Sign in Forgot your password? Contact ops@acme.com",
"hasVerifiedCreds": true,
"emailCount": 1,
"verifiedDetectors": [
"Stripe"
],
"emails": [
"ops@acme.com"
],
"credentials": [
{
"detector": "Stripe",
"verified": true,
"raw": "sk_live_EXAMPLE00000000000000000"
}
]
}Authorizations
Authorization: Bearer <key>. Used when both headers are present.
Path Parameters
The app's hostname, exactly as returned by search.
Response
The app record.
The app's hostname, its stable identifier.
True when at least one credential finding was verified.
Number of addresses in emails.
Page title at the last snapshot. Omitted when the page had none.
HTTP status at the last snapshot. Omitted when unknown.
Provider slug, as listed on the providers page.
Time of the last visit that found the host alive, RFC 3339 in UTC. Usually the last snapshot; a fallback probe refreshes it without replacing the snapshot's artifacts. Omitted when the app has never been visited.
Shodan-compatible favicon hash. Omitted when no favicon was fetched.
URL of the stored favicon. Omitted when none was fetched.
URL of the stored screenshot. Omitted when the render failed.
URL of the stored page source. Omitted when the render failed.
Visible text extracted at the last snapshot, truncated for long pages. Omitted when empty.
Names of the detectors with a verified finding. Omitted when none.
Email addresses found on the page. Omitted when none.
Every credential finding, verified or not. Omitted when there are no findings.
Show child attributes
Show child attributes