---
title: "File a profile page as the owner's browser saw it, for the entity corroboration section. Consulted only where CrawlCheck's own fetch was unverifiable; never overrides a live result; the row is labelled owner-browser. Licence-gated and bound to the licence's domains; the page's canonical must name the url's host. Kept 30 days"
method: POST
path: "/api/entity/observe"
---

# File a profile page as the owner's browser saw it, for the entity corroboration section. Consulted only where CrawlCheck's own fetch was unverifiable; never overrides a live result; the row is labelled owner-browser. Licence-gated and bound to the licence's domains; the page's canonical must name the url's host. Kept 30 days

`POST /api/entity/observe`

## Request

- Base URL: `https://crawlcheck.io`
- URL: `https://crawlcheck.io/api/entity/observe`
- Auth: none required

## Headers

- `x-crawlcheck-key` string, required

## Request body

- object
  - `url` string, required: The profile URL as declared in sameAs
  - `html` string, required: The whole page as the browser saw it; at least 512 bytes, the first 200 KB are kept
  - `vantage` string: Defaults to owner-browser

## Response `200`

key, sha, bytes, at, expires_days, bound_to (the licence's domains)

- object, nullable
  - `ok` boolean, nullable
  - `key` string, nullable
  - `sha` string, nullable
  - `bytes` number, nullable
  - `at` string, nullable
  - `expires_days` number, nullable
  - `bound_to` string[], nullable
  - `note` string, nullable

## Other responses

- `400`: No url or html, page under 512 bytes, or the page's canonical names another host
- `404`: No valid licence key

---

[API](https://skmtc.dev/crawlcheck/apis/crawlcheck-api.md) · [All operations](https://skmtc.dev/crawlcheck/apis/crawlcheck-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlcheck/apis/crawlcheck-api/revisions/57acbd6d4489?raw)
