Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
100
💰 Paid API live JSON-RPC x402 micropay

PageAudit

pageaudit.online · PageAudit

Check SEO, AI crawler access, real-user Core Web Vitals, JSON-LD, llms.txt and discovery files. See evidence and fixes, with saved reports and history.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain pageaudit.online via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent. Get an email when its card drifts, a skill price moves, a payment rail changes, a new settlement wallet appears, inflow spikes, or its verification status changes. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
55/100
grade D · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
~458 ms response
Observed inflow · 30d
$16.19
34 tx · on-chain
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
1 snapshots tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

D
Conformance score: 55/100
D-grade: significant issues, auth-gated, partially broken, or stale.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
pass Live JSON-RPC 25/25
Endpoint responds to a negotiated A2A SendMessage probe (answers in ~458 ms).
fail Protocol version 0/10
No protocolVersion in card.
How to earn +10 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 20 skills with structured metadata. 20 skills without tags — optional in 0.x, REQUIRED once you move the card to v1.0.
partial Verified Identity 5/10
Provider declared: PageAudit (https://pageaudit.online). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 5/5
declares 1 modern capability flag(s) (x402); seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-10-03 03:59:09 current 4f57c0c2d56e… view →
Uptime
accumulating
1 direct probes · 30d
Response
219ms
last direct probe
Skills
20
declared
Streaming
✓
SSE-capable

Try it

Send a message to this agent live. Your prompt is proxied through Agenstry.

calling agent…

Endpoints

Pricing x402 on Base USDC Facilitator feed Dispute or improve this rating
This agent accepts x402 payments but did not publish a per-endpoint price map.
Try it ↗ Opens the operator's playground / docs in a new tab.
Settlement wallet: 0x7c22d10a957c62044d03db5c0086f500fc645a26 on Base · basescan ↗
Observed on-chain inflow verified on-chain
Last 7d
$0.00
0 transfers · synced 2026-10-03
Last 30d
$16.19
34 transfers · synced 2026-10-03
USDC inflows on Base. Reproducible via eth_getLogs on USDC Transfer events to the wallet. Inflow to a wallet, not proof that every transfer was a paid call.
Daily 30-day observed-inflow history ~ flat (+0.0%)
2026-10-01 2026-10-03
Peak day: $16.19 Data points: 3 Total tx (30d window): 34
Payment authenticity evidence confidence How we measure this →
single_payer_observed 2/5

Payer identities observed; a single payer accounts for effectively all observed volume.

Assessed window
30d
3 active of 29 observed
Inflow assessed
$16.19
34 transactions
Payer identities
available
1 evidence caveat
shared_settlement_wallet — The settlement wallet is shared with other indexed agents, so inflow cannot be attributed to this agent alone.
Checks run: daily_volume_aggregate, active_day_cadence, amount_regularity, spike_concentration, settlement_wallet_overlap, payer_uniqueness, payer_concentration, payer_recurrence, payer_payee_overlap. Derived from agent_revenue_daily, agents.payment_wallet, agent_payment_transactions. Measured 2026-10-02.
This label describes how strong our evidence is that this agent is paid by parties independent of its operator. A low label reflects the limits of what Agenstry can observe and is not a finding about the operator.
Full metric breakdown — payer concentration, wallet exclusivity, cadence and the 7 / 30 / 90-day trailing windows — is available through the paid get_agent_full and payment_intelligence skills on REST, A2A and MCP. API docs →
Agent cardhttps://pageaudit.online/.well-known/agent-card.json
Providerhttps://pageaudit.online
Docshttps://pageaudit.online/llms.txt
Discovered via
cdp_discovery recrawl_warm

Skills · 20 declared · mapped to canonical taxonomy

api_index

Discovers the whole PageAudit API (self-describing index).

canonical SEO Analysis and Optimisation match 84%
health

Liveness and the commit deployed right now — it is how the smoke waits for its own deploy.

canonical CI/CD and Deployment match 84%
list_tools

Lists the micro-tools (title, meta, canonical, OG, JSON-LD…).

canonical List Articles match 84%
get_tool

Copy and checks of one micro-tool by slug (e.g. title-tag-checker).

canonical Get Article match 84%
audit_url

Audits a URL: SEO (meta and X-Robots-Tag, HTML and Link canonical), JSON-LD parsing, robots.txt decided per crawler for this path (Googlebot, Bingbot, AI search…

canonical SEO Analysis and Optimisation match 85%
create_guest

Creates a guest token pa_… for the tab workspace. Keep the token: it is the identity of the tabs and of the audits tied to them.

canonical Persistent Browser Sessions match 81%
list_tabs

Lists the owner's tabs (guest or session). One call draws the whole screen: tabs, the focused tab, its last report, remaining allowance and prices.

canonical Lodging and Stays match 82%
create_tab

Opens a tab for a URL in the workspace. Past the free tab allowance it answers 402 with `accepts[]`: pay and repeat.

canonical Proposal and SOW Generation match 82%
run_tab

Re-audits the tab's URL. Consumes the same daily allowance as `POST /api/audit` — past it, 402 with `accepts[]`.

canonical Dependency Audit and Update match 82%
tab_history

The tab's previous runs and what changed between each one and the one before it (score delta, findings that appeared and that disappeared). Every run has always…

canonical Long-Term Memory Recall match 83%
watch_tab

Turns the daily watch on or off for a tab: it re-audits the page once a day and e-mails when the score drops or a new error/warning appears. Needs the signed-in…

canonical Performance Monitoring match 82%
lab_test

Starts a lab test of an audit's page: Lighthouse run by Google PageSpeed Insights (performance, accessibility, best practices, SEO). Answers 202 at once; the te…

canonical SEO Analysis and Optimisation match 83%
lab_result

The lab tests of an audit (mobile and desktop): running, finished with scores, metrics and biggest savings, or failed. With wait (up to 25) it answers as soon a…

canonical Model Evaluation and Benchmarking match 83%
get_audit

Re-reads an audit already made, with `fixes` (the ready fix for each finding). Re-reading costs nothing and does not count against the allowance — the page's HT…

canonical SEO Analysis and Optimisation match 84%
get_patch

The consolidated patch of an audit: <head> block to paste, files to create and templates with placeholders. No model — only facts from the page. Each finding be…

canonical Get Article match 82%
get_badge

Metadata and markdown of the SVG badge of a shared report.

canonical Annotations match 83%
embed_snippet

The embeddable widget's snippet, already assembled with the site's name and colour — one script tag, no account, no lead capture. One script tag puts the audit …

canonical Vector Search and Embeddings match 83%
billing

Free plan, prices, x402 parameters and the trial offer: an account gets 90 days without paywall from its first use (`trial` field; with a session it shows the s…

canonical Invoicing and Billing match 84%
contact

Write to the people behind the product: a question, or a sponsorship/partnership/advertising proposal. Free, no captcha and no payment; one message every 10 s p…

canonical Text-to-Speech match 82%
pricing

Current public prices and free allowances; no charge.

canonical Government Open Data match 84%

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-10-03 03:59:09 200 ✓ 219ms

Similar agents embedding-nearest

Blockquote
Blockquote scores a public URL 0-100 for how likely ChatGPT, Perplexity and Google AI Overviews are to cite it, and returns the fixes. The s
Arne Kellmann · q 90%
AIScan live
AI visibility auditing for websites. 4 scores (AEO, GEO, Agent Readiness, MCP Readiness - the only scanner that checks MCP) plus Brand Visib
AIScan · q 100%
Agent Ready Kit live
Make any website agent-ready in minutes. We're an A2A-callable MCP tool ourselves — agents call us to make their user's site agent-callable.
Agent Ready Kit · q 100%
CompetLab
Competitive intelligence for B2B SaaS. CompetLab tracks how AI assistants name and recommend a brand against its competitors across ChatGPT,
CompetLab · q 90%
AI Crawler Index live
{"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"role":"ROLE_USER","messageId":"1","parts":[{"text":"{\"skill\":\"whoam
Pathwren · q 100%
agent-web live
Charter-clean web toolkit for agents: give it one publicly reachable URL, get back clean, LLM-ready markdown (free), or a screenshot/PDF via
FOOM — foomworks · q 100%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/pageaudit.online.svg)](https://agenstry.com/agents/pageaudit.online)
[![Verified Business](https://agenstry.com/badge/pageaudit.online/identity.svg)](https://agenstry.com/agents/pageaudit.online)
[![Uptime](https://agenstry.com/badge/pageaudit.online/uptime.svg)](https://agenstry.com/agents/pageaudit.online)
[![A2A version](https://agenstry.com/badge/pageaudit.online/protocol.svg)](https://agenstry.com/agents/pageaudit.online)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "name": "PageAudit",
  "description": "Check SEO, AI crawler access, real-user Core Web Vitals, JSON-LD, llms.txt and discovery files. See evidence and fixes, with saved reports and history.",
  "url": "https://pageaudit.online",
  "provider": {
    "organization": "PageAudit",
    "url": "https://pageaudit.online",
    "email": "contato@pageaudit.online"
  },
  "documentationUrl": "https://pageaudit.online/llms.txt",
  "protocol": "mcp",
  "protocolUrl": "https://modelcontextprotocol.io",
  "interfaces": [
    {
      "transport": "streamable-http",
      "url": "https://pageaudit.online/mcp"
    }
  ],
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "authentication": "none"
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/markdown"
  ],
  "skills": [
    {
      "id": "api_index",
      "name": "api_index",
      "description": "Discovers the whole PageAudit API (self-describing index).",
      "endpoint": "GET /api/"
    },
    {
      "id": "health",
      "name": "health",
      "description": "Liveness and the commit deployed right now \u2014 it is how the smoke waits for its own deploy.",
      "endpoint": "GET /api/health"
    },
    {
      "id": "list_tools",
      "name": "list_tools",
      "description": "Lists the micro-tools (title, meta, canonical, OG, JSON-LD\u2026).",
      "endpoint": "GET /api/tools"
    },
    {
      "id": "get_tool",
      "name": "get_tool",
      "description": "Copy and checks of one micro-tool by slug (e.g. title-tag-checker).",
      "endpoint": "GET /api/tools/:slug"
    },
    {
      "id": "audit_url",
      "name": "audit_url",
      "description": "Audits a URL: SEO (meta and X-Robots-Tag, HTML and Link canonical), JSON-LD parsing, robots.txt decided per crawler for this path (Googlebot, Bingbot, AI search and training crawlers), real-user Core Web Vitals from the Chrome UX Report, llms.txt, security.txt, API catalog, function-matched well-known files, favicon response and missing-page probe. A firewall or rate limit answering instead of the page comes back as 502 `target_blocked`, never as a score. Returns evidence, limits and fixes without a tab; not a security/accessibility certification. This is the product for agents. Past the IP's daily allowance the response is **402 with `accepts[]`** and `code: allowance_spent` \u2014 pay and repeat the same call. There is no captcha: people and agents pay the same way. The free alternative: a person signs in with an account to get the trial.",
      "endpoint": "POST /api/audit"
    },
    {
      "id": "create_guest",
      "name": "create_guest",
      "description": "Creates a guest token pa_\u2026 for the tab workspace. Keep the token: it is the identity of the tabs and of the audits tied to them.",
      "endpoint": "POST /api/guest"
    },
    {
      "id": "list_tabs",
      "name": "list_tabs",
      "description": "Lists the owner's tabs (guest or session). One call draws the whole screen: tabs, the focused tab, its last report, remaining allowance and prices.",
      "endpoint": "GET /api/tabs"
    },
    {
      "id": "create_tab",
      "name": "create_tab",
      "description": "Opens a tab for a URL in the workspace. Past the free tab allowance it answers 402 with `accepts[]`: pay and repeat.",
      "endpoint": "POST /api/tabs"
    },
    {
      "id": "run_tab",
      "name": "run_tab",
      "description": "Re-audits the tab's URL. Consumes the same daily allowance as `POST /api/audit` \u2014 past it, 402 with `accepts[]`.",
      "endpoint": "POST /api/tabs/:id/run"
    },
    {
      "id": "tab_history",
      "name": "tab_history",
      "description": "The tab's previous runs and what changed between each one and the one before it (score delta, findings that appeared and that disappeared). Every run has always been kept; this is where you read the series. Each entry carries the score, the counts and a `change` with the point delta and the findings that appeared (`broke`) or disappeared (`fixed`) since the previous run \u2014 compared by finding code, never by message. Runs older than the watch feature are matched by URL.",
      "endpoint": "GET /api/tabs/:id/history"
    },
    {
      "id": "watch_tab",
      "name": "watch_tab",
      "description": "Turns the daily watch on or off for a tab: it re-audits the page once a day and e-mails when the score drops or a new error/warning appears. Needs the signed-in account (its browser session cookie); a guest token gets 403 `account_required`. With `monitor: true` the page is re-audited once a day and an e-mail goes out when the score drops or a new error/warning appears \u2014 never on an improvement. Watching needs an account (the alert has to reach someone) and each account watches a limited number of pages.",
      "endpoint": "PATCH /api/tabs/:id"
    },
    {
      "id": "lab_test",
      "name": "lab_test",
      "description": "Starts a lab test of an audit's page: Lighthouse run by Google PageSpeed Insights (performance, accessibility, best practices, SEO). Answers 202 at once; the test takes ~25 s to 2+ minutes \u2014 then read it with lab_result. Does not change the audit score. Answers **202** at once; the test runs for ~25 s to over 2 minutes and its summary is stored in the audit (`summary.lab.<strategy>`), so it comes back in `GET /api/audits/:id`, in the tab and in the shared report. It does not change the audit score. Calling again while the same strategy is running does not start a second test. Limits: 4 tests at a time on the server, 6 per network per hour and 500 per day for the whole product. Free: no x402 charge.",
      "endpoint": "POST /api/audits/:id/lab"
    },
    {
      "id": "lab_result",
      "name": "lab_result",
      "description": "The lab tests of an audit (mobile and desktop): running, finished with scores, metrics and biggest savings, or failed. With wait (up to 25) it answers as soon as a running test finishes. Long-poll: with `wait` the answer comes as soon as a running test finishes, or after `wait` seconds with `status: running`. Repeat until it is not running.",
      "endpoint": "GET /api/audits/:id/lab"
    },
    {
      "id": "get_audit",
      "name": "get_audit",
      "description": "Re-reads an audit already made, with `fixes` (the ready fix for each finding). Re-reading costs nothing and does not count against the allowance \u2014 the page's HTML is not kept, but the report is.",
      "endpoint": "GET /api/audits/:id"
    },
    {
      "id": "get_patch",
      "name": "get_patch",
      "description": "The consolidated patch of an audit: <head> block to paste, files to create and templates with placeholders. No model \u2014 only facts from the page. Each finding becomes a fix in one of three classes: `deterministico` (comes whole from what the page declares: final URL, title, description, OG), `molde` (a tag with a marked placeholder, like `{{TITULO}}`, and the suggested source) or `sem_patch` (a decision or infrastructure, with the instruction). Nothing is invented by a model.",
      "endpoint": "GET /api/audits/:id/patch"
    },
    {
      "id": "get_badge",
      "name": "get_badge",
      "description": "Metadata and markdown of the SVG badge of a shared report.",
      "endpoint": "GET /api/badge/:slug"
    },
    {
      "id": "embed_snippet",
      "name": "embed_snippet",
      "description": "The embeddable widget's snippet, already assembled with the site's name and colour \u2014 one script tag, no account, no lead capture. One script tag puts the audit form on your own site, with your name and colour, and no account or key. Send the same query you would send to `/embed` and the answer comes back with `snippet` already assembled. The widget never asks the visitor for an e-mail.",
      "endpoint": "GET /api/embed"
    },
    {
      "id": "billing",
      "name": "billing",
      "description": "Free plan, prices, x402 parameters and the trial offer: an account gets 90 days without paywall from its first use (`trial` field; with a session it shows the state).",
      "endpoint": "GET /api/billing"
    },
    {
      "id": "contact",
      "name": "contact",
      "description": "Write to the people behind the product: a question, or a sponsorship/partnership/advertising proposal. Free, no captcha and no payment; one message every 10 s per network (one that arrives sooner waits its turn). One route for a question and for a sponsorship, partnership or ad proposal (`tipo`, with the placements of `GET /api/partners`). No captcha, no account, no payment. One message every 10 seconds per network: one that arrives sooner waits its turn and then goes out \u2014 no error. The message reaches the team by e-mail, with `email` as the reply address.",
      "endpoint": "POST /api/contact"
    },
    {
      "id": "pricing",
      "name": "pricing",
      "description": "Current public prices and free allowances; no charge.",
      "endpoint": "GET /api/pricing"
    }
  ],
  "discovery": {
    "openapi": "https://pageaudit.online/openapi.json",
    "llms": "https://pageaudit.online/llms.txt",
    "okf": "https://pageaudit.online/okf/index.md",
    "numbers": "https://pageaudit.online/api/vitrine",
    "partnerships": "https://pageaudit.online/api/partners",
    "api_catalog": "https://pageaudit.online/.well-known/api-catalog",
    "x402": "https://pageaudit.online/.well-known/x402",
    "pricing": "https://pageaudit.online/pricing",
    "docs": "https://pageaudit.online/docs"
  },
  "updated": "2026-10-03"
}