vemetric.com
Finalizing the report
Preparing the stored Is Agentic score
vemetric.com
Preparing the stored Is Agentic score
vemetric.com
These checks describe whether an ordinary agent can enter, read, and operate the public site.
Agents can reach the site
Crawler access and bot defenses.
Core content is available
Useful content remains accessible without a fragile browser-only path.
Navigation fails safely
Redirects and missing pages give agents a recoverable path.
Controls are understandable
Forms and interactive controls expose usable names and structure.
The public website is always evaluated. Optional surfaces appear when the scan finds positive evidence that they apply.
Strong
Weighted across 17 applicable checks
Ready with gaps
Weighted across 12 applicable checks
Critical access gaps come first, followed by other applicable readiness gaps.
Implement OAuth 2.0 for API authentication. Publish your authorization server metadata at /.well-known/oauth-authorization-server.
Declare scoped API permissions where machines can read them: named OAuth scopes in your OpenAPI security schemes, or scopes_supported in RFC 9728 protected-resource metadata. Prose descriptions of roles help humans, but agents need the machine-readable declaration to request least-privilege access.
Build an MCP (Model Context Protocol) server exposing your API as tools. Use Streamable HTTP transport for full score. This lets Claude, ChatGPT, and other AI agents call your product natively.
Publish an official CLI tool on npm, PyPI, or Homebrew. A CLI lets agents and developers script interactions with your product without building API integrations from scratch.
Document your error responses in your OpenAPI spec: give 4xx and 5xx responses a typed error schema (or use RFC 9457 application/problem+json). A consistent error object with a machine-readable code and a human-readable message lets agents handle failures without guessing.
Checks are grouped by relevance for App sites.
Homepage: 10339 chars, semantic headings (1 H1 + 7 H2s + 20 H3s), 5.6% content ratio. 5 of 5 sampled inner pages have text without JavaScript.
Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).
No meta-refresh or JavaScript-redirect stubs across 15 checked pages
All 5 sampled pages are publicly readable (5 with substantive content)
OpenAPI spec found at https://api.vemetric.com/openapi.json (version: 3.0.0)
Canonical URL serves text/markdown and text/html via Accept negotiation with Vary: Accept
No OAuth 2.0 or OpenID Connect support detected
How to pass
Implement OAuth 2.0 for API authentication. Publish your authorization server metadata at /.well-known/oauth-authorization-server.
OpenAPI declares security schemes but no named OAuth scopes - agents get all-or-nothing access. Declare per-scope grants (e.g. read:*, write:*) in the spec.
How to pass
Declare scoped API permissions where machines can read them: named OAuth scopes in your OpenAPI security schemes, or scopes_supported in RFC 9728 protected-resource metadata. Prose descriptions of roles help humans, but agents need the machine-readable declaration to request least-privilege access.
API returns JSON error responses (401 at GET https://api.vemetric.com/v1/project, an operation in the OpenAPI spec)
Nonexistent paths return HTTP 404 with markdown guidance for agents - the strongest 404 contract
No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.
Valid sitemap found at https://vemetric.com/sitemap-index.xml with multiple sitemaps entries
Rich JSON-LD identity: SoftwareApplication with name, description, url, and category/offers (2 blocks)
Pricing page found at /pricing
API/docs link found on homepage and resolves: /docs
All metadata signals present: canonical URL, lang="en", og:image, og:type
Organization schema complete with contactPoint and address
All trust anchor pages verified: About, Contact, Privacy
All 6 measured pages fit an agent context budget (largest ~3K tokens)
Documented REST API detected; endpoints require authentication (API key / OAuth), which is expected for agent access. Best-of-protocols score: 7/7.
Onboarding signals described but not verified live: free tier available, self-serve key generation, sandbox/test environment
How to pass
Offer a free tier or trial, self-serve API key generation, and a sandbox environment. Agents can't fill out 'contact sales' forms.
No MCP server or manifest found
How to pass
Build an MCP (Model Context Protocol) server exposing your API as tools. Use Streamable HTTP transport for full score. This lets Claude, ChatGPT, and other AI agents call your product natively.
The live API operation https://api.vemetric.com/v1/project returns IETF RateLimit headers: ratelimit-policy.
Partial typed error model: error schema defined but not consistently referenced (or vice versa)
How to pass
Document your error responses in your OpenAPI spec: give 4xx and 5xx responses a typed error schema (or use RFC 9457 application/problem+json). A consistent error object with a machine-readable code and a human-readable message lets agents handle failures without guessing.
API versioning found (URL versioning (servers or paths)) but no deprecation or sunset policy detected - add Sunset/Deprecation headers or a deprecation policy page
How to pass
Declare a versioning policy agents can rely on: version your API (in the URL path or a version header) and publish how you signal deprecation (a Sunset/Deprecation header or a documented timeline). Agents avoid integrating against a surface that can change without warning.
No CLI tool found
How to pass
Publish an official CLI tool on npm, PyPI, or Homebrew. A CLI lets agents and developers script interactions with your product without building API integrations from scratch.
100% of operations define typed response schemas, 100% use application/json
REST: agent-friendly schema (8 operations, 100% with operationIds, 100% documented by description or summary)
Compatible: 8/8 ops with IDs, 6/8 with typed schemas
ARD catalog valid at /.well-known/ai-catalog.json (spec 1.0) - 4/4 entries - served at the legacy path; the canonical ARD path is /.well-known/ard.json (ARD v0.91)
Valid AI Catalog at /.well-known/ai-catalog.json (spec 1.0) - 4/4 entries
All 4 entries valid with domain-anchored urn:air identifiers (catalog at /.well-known/ai-catalog.json)
In a search for your API docs, your docs came up at #1 (https://vemetric.com/docs). In a search for your MCP server, SDK or CLI, we found your SDK at #2 (https://vemetric.com/docs/sdks/javascript)
vemetric.com ranks #5 for "Vemetric" (searched your brand name alone: no main product term from your homepage qualified)
NPM package found: @vemetric/node - "Official Node.js, Bun, Deno SDK for Vemetric"
Agent config found: github.com/vemetric/vemetric/blob/main/AGENTS.md
Structured pricing.md found at /pricing.md (43 lines)
RFC 8288 Link header advertises: sitemap, describedby, api-catalog
Found the llms.txt at https://vemetric.com/llms.txt.
The llms.txt at https://vemetric.com/llms.txt is well-formatted with markdown links, but at 31,916 characters it exceeds the 30,000-character recommendation for a navigation index.
How to pass
Format your llms.txt as a navigation index: start with a markdown heading, include markdown links to deeper resources, and keep it under 30,000 characters. Agents truncate an llms.txt past 100,000 characters, so nothing after that point is read. If you have more to say, move long-form content into /llms-full.txt or per-section files (e.g. /docs/llms.txt, /api/llms.txt) and link to them from the main index.
When-to-use guidance found in llms.txt
Strong entity linking via sameAs: github.com, linkedin.com
Some extended schema types found: FAQPage - add 2 more types that match what the homepage shows, for full coverage
How to pass
Add 2 more JSON-LD types that match what your homepage shows. Only add a type where the page shows that content.
All 5 probed llms.txt links resolve to real content
Markdown alternate advertised and verified: https://vemetric.com/blog/how-to-reduce-saas-churn.md serves markdown
Code fences balanced across 1 markdown document
Developer portal found at /docs
api-catalog linkset[0] has no 'item' entries
How to pass
Publish an API catalog at /.well-known/api-catalog per RFC 9727. Serve it with Content-Type: application/linkset+json;profile="https://www.rfc-editor.org/info/rfc9727" and include a 'linkset' array with item entries pointing to your OpenAPI specs and service descriptions.
Returns markdown when requested via Accept header
Offset/page-based pagination found in OpenAPI spec - consider migrating to cursor-based pagination for agent friendliness
How to pass
Use a consistent, documented pagination shape on your list endpoints (cursor-based preferred) and define the pagination fields in your OpenAPI response schemas, so agents can page through results without guessing the shape.
SDK packages found across 3 ecosystems: npm, pypi, go
Server HTML is a well-structured document (main=true, landmarks=4/4, h1=1, maxHeadingSkip=1).
112 native controls, 3 non-native div-soup affordances (97% native).
111/112 interactive elements have a computable accessible name (99%).
1/1 form controls have an associated label (100%).
No hidden instruction text detected in accessibility-tree attributes or off-screen content.
What does vemetric.com do and who is it for? Explain it back to me.
Sign me up for Vercel product updates and marketing emails.
Unsubscribe anytime. Privacy Notice
Source: Ora API
What does vemetric.com do and who is it for? Explain it back to me.
4 steps1 reasoning step1 search
The agent satisfied the task by fetching and synthesizing the homepage and pricing page, then conducting a web search to contextualize Vemetric against named competitors. The site is agent-ready on positioning and pricing structure, but pricing detail (slider tiers), overage policy, and account/retention semantics are ambiguous or undefined, forcing the agent to flag gaps rather than fill them.