Skip to main content
WEBSITES

Know which visitors are people and which are AI agents.

Assistants read your pages for their users, agents fill in your forms, and crawlers collect your content. Proof of Actor shows who is visiting, with evidence, so your website can respond to each one.

example-app.test · actor result

GET /pricing

Agentbasis: verified

Evidence

Signed request from assistant.example fetching the page for a user

Your policy: Serve the page and its Markdown version

Your website was built for people. Your visitors are no longer only people.

Pricing pages, documentation, product pages and contact forms now get visits from AI assistants answering a user's question, agents completing a task, and crawlers gathering content. Most of them look like ordinary browsers in your analytics.

Blocking all of them loses customers who arrive through AI. Ignoring them skews your numbers and fills your forms. Proof of Actor gives every visit a class and a basis, so you can decide page by page.

session

Your login knows

user: [email protected]

plan: team

actor: ?

proof of actor

Proof of Actor adds

Agentbasis: declared

An assistant is acting through this account on /reports.

What website teams do with actor context

  • See your real visitor mix

    Separate human visits from AI assistants, agents and crawlers on every page and campaign.

  • Serve agent-ready content

    Give verified agents and assistants Markdown or structured versions of the pages they read.

  • Stay visible in AI answers

    Let legitimate assistants read the pages that win you customers, instead of blocking them by default.

  • Protect your forms

    Keep contact, sign-up and demo forms easy for people while handling automated submissions deliberately.

  • Handle agent shopping

    Recognise agents browsing products or starting checkout on a person's behalf and route them correctly.

  • Plan for Unknown

    Decide what happens on each page when a visit carries too little evidence, and track that rate.

01 · Detect

Evidence from the browser, the edge and the server.

Add the browser collector to the pages you choose, and run the edge or server integration to read request signatures and declared client details.

  • Interaction signals on pages where the collector runs.
  • Signed requests from assistants and agents that publish keys.
  • Request context at your edge or origin server.
signals · last request per source
  • Request signaturevalid · sample-crawler.exampleverified
  • Client declaration"research-assistant/2.1"declared
  • Browser interactionpointer + keyboard eventsinferred
  • No supported signalsroute not instrumentedunknown

02 · Understand

Know who reads which pages.

See the actor mix by page, section and campaign, which assistants visit most, and where unknown visits concentrate.

  • Visitor classes per page and per campaign.
  • The evidence behind every classification.
  • Unknown rate per page, so coverage gaps are visible.
traffic by route · 7 days
  • /dashboardUnknown 7%
  • /api/v1/catalogUnknown 15%
  • /support/ticketsUnknown 8%
  • /signupUnknown 21%
HumanHuman + AIAgentUnknown

03 · Route

A fitting response for every visitor.

Serve structured content to verified agents, keep the full experience for people, and choose a fallback for unknown visits on each page.

  • Markdown or structured responses for agents.
  • Policies per page, actor class and basis.
  • Observe, preview, then enforce.
policy · example-app.test
  • /api/v1/catalogenforceAgentAllow · structured API
  • /support/ticketsenforceHuman + AIAllow · label AI-assisted
  • /account/*previewUnknownKeep existing checks
  • /api/v1/orderspreviewAgentRequire stronger credential

Example decisions

From request to result to your decision.

  • An assistant reads your pricing

    Request

    GET /pricing

    Result

    Agentbasis: verified

    Your decision

    Serve the page and its Markdown version so the answer it gives is accurate.

  • A person fills in your demo form

    Request

    POST /contact

    Result

    Humanbasis: inferred

    Your decision

    Standard form. No extra friction.

  • A form post with no evidence

    Request

    POST /contact

    Result

    Unknownbasis: unknown

    Your decision

    Accept it and keep your usual spam checks. Flag for review only if your rules say so.

Roll out without risk

Teams start in observation mode and move route by route.

  1. 01

    Observe your key pages

    Add the collector to pricing, docs and forms, and the edge integration in front of them. Visitors see no change.

  2. 02

    Preview content rules

    Check which assistants would get Markdown versions and which form posts would be flagged, before anything changes.

  3. 03

    Enforce page by page

    Serve structured content to verified agents and keep public pages open, with a fallback for Unknown visits.

Works with your stack

  • Founding teams

    Web server middleware (Node.js)

    Server-side

    Request-level signals for server-rendered apps and APIs.

  • Founding teams

    Next.js

    Server-side and edge

    Middleware for page and API routes.

  • Founding teams

    Browser script

    Browser signals only

    Interaction signals from browser sessions, alongside a server-side integration.

  • Founding teams

    Cloudflare and edge runtimes

    Edge

    Signals at the edge before requests reach your origin.

  • Founding teams

    Generic HTTP API

    Any stack

    Send request context to an API and receive a result with its basis.

  • Founding teams

    MCP server

    MCP

    Actor context for MCP tool calls.

  • Roadmap

    WordPress

    Plugin

    Plugin for WordPress sites.

  • Roadmap

    Native mobile

    iOS and Android

    Native iOS and Android SDKs.

Integrations are delivered hands-on with each founding team during onboarding. Using a different stack? Tell us when you apply.

Frequently asked questions

Will it hurt my SEO or block search crawlers?

No. Proof of Actor starts in observation mode and blocks nothing. You decide whether any page treats crawlers or agents differently.

Is it a CAPTCHA?

No. Visitors never solve a puzzle. Proof of Actor classifies visits in the background and leaves the response to your website.

Can it show me how many visits come from AI assistants?

Yes, for visits that carry evidence such as a signature or declaration, or that the browser collector can observe. Visits without enough evidence are reported as Unknown.

Do I need to change my website builder or CMS?

Add the browser collector to the pages you want to observe, and use the edge or server integration where you control the request path.

What does it cost?

Selected founding developer teams can receive up to 12 months free within agreed usage limits.

See who is really visiting your website.

Join the Proof of Actor founding developer program.

Prefer to talk first? Talk to the founders