Agentic Commerce Readiness Audit — UCP, ACP & Product Schema avatar

Agentic Commerce Readiness Audit — UCP, ACP & Product Schema

Pricing

from $16.00 / 1,000 merchant readiness audits

Go to Apify Store
Agentic Commerce Readiness Audit — UCP, ACP & Product Schema

Agentic Commerce Readiness Audit — UCP, ACP & Product Schema

Audit stores for agentic commerce readiness: UCP profile, ACP discovery file, Product JSON-LD, policies and crawlability, scored out of 100. USD 0.02 per store.

Pricing

from $16.00 / 1,000 merchant readiness audits

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

Agentic Commerce Readiness Audit checks a merchant website's public Universal Commerce Protocol (UCP) profile, Agentic Commerce Protocol (ACP) discovery file, Product JSON-LD, store policies and crawlability, and returns one 100-point readiness score per store with every finding and the fix for it. It costs USD 20.00 per 1,000 audited stores on the FREE tier (USD 0.020001 per report) plus a start fee of about USD 0.006 per run, so a one-store audit costs about USD 0.026.

It is built for ecommerce teams, agencies, technical SEO specialists and commerce developers who need to know whether AI shopping agents can find, read and eventually check out from a storefront.

What does the agentic commerce audit check?

It scores five categories that add up to exactly 100 points, using only what the storefront publishes publicly.

CategoryPointsWhat is checked
UCP readiness30/.well-known/ucp profile, JSON shape, ucp.version date, services registry, HTTPS endpoint, dev.ucp.shopping.checkout capability, payment-handler registry, official schema validation, no private keys exposed
ACP readiness25/.well-known/acp.json, protocol name and versions, HTTPS api_base_url, REST transport, checkout service, capabilities.services, Cache-Control, extension URLs
AI-shopping discoverability20Product pages found, schema.org Product JSON-LD, Offer price and currency, availability, SKU/GTIN/MPN, canonical URLs, Open Graph, /llms.txt
Trust and policies15Returns, shipping, privacy, contact and terms pages linked from the sampled pages; Organization or OnlineBusiness JSON-LD
Technical access10HTTPS, a usable public homepage, robots.txt, XML sitemap, no homepage noindex

Grades: A is 90–100, B 75–89, C 60–74, D 40–59, F below 40. A high score is not a certification for any AI platform's merchant program, and a low score only means the public evidence is missing.

How do I check whether my store supports UCP or ACP?

Add the store's address to startUrls and run it; each report's ucp and acp objects say whether the discovery file exists, which version it declares, which capabilities and payment handlers it lists, and every problem found.

{
"startUrls": [
{ "url": "https://www.allbirds.com" },
{ "url": "https://www.gymshark.com" }
],
"maxPagesPerSite": 8,
"requestTimeoutSecs": 12,
"checkProtocolResources": true
}
  • startUrls: 1–20 public HTTPS store URLs. A bare domain such as shop.example.com is upgraded to HTTPS. http:// URLs, IP addresses, single-word hosts and URLs with a username or password are rejected before any work and are not charged. Exact duplicates are audited once.
  • maxPagesPerSite: 1–20 HTML pages sampled per store (default 8). Product-like links are visited first, and robots.txt rules are respected for every followed link.
  • requestTimeoutSecs: 5–30 seconds per request (default 12).
  • checkProtocolResources: validates a found UCP profile against the official schema for the version it declares (default on).
  • proxyConfiguration: optional. Direct HTTPS is tried first; an Apify Proxy route you configure is used only after a block or network failure.

What data does each report return?

One dataset record per audited store:

FieldWhat it means
requestedUrl, finalUrl, domainYour input, the address after up to four safe redirects, and its host
outcomecomplete, partial (UCP or ACP file has issues) or blocked (homepage could not be read)
readinessScore, readinessGrade0–100 score and A–F grade
categoryScores, categoryMaximumsPoints earned per category beside the 30/25/20/15/10 maximums
ucp, acpDiscovery URL, HTTP status, found/valid flags, version, API endpoint, capabilities, payment handlers, issues
pagesScanned, productPagesDetected, productJsonLdCountSize and product coverage of the sample
findingsAll 37 checks with pass/fail, severity, points, evidence URL and recommendation
topRecommendationsUp to 8 distinct fixes, highest points first
summary, auditedAtOne-line result and audit time

The OUTPUT key-value record adds the run outcome, requested and delivered counts, warning count, average score and all reports.

When should I use it, and when not?

Use it when you need to:

  • check a store, a client list or competitors for UCP and ACP discovery files before an agentic-commerce launch;
  • find missing Product JSON-LD, price, availability or identifiers that AI shopping surfaces read;
  • give a team a scored, repeatable checklist and re-run it after fixes.

Do not use it when you need:

Use it from an AI assistant

Agentic Commerce Readiness Audit works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add it with https://mcp.apify.com/?tools=muhammadafzal/agentic-commerce-readiness-index, then ask, for example: "Audit allbirds.com and gymshark.com for UCP and ACP readiness and list the three highest-value fixes for each."

Run it with the API

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/agentic-commerce-readiness-index').call({
startUrls: [{ url: 'https://www.allbirds.com' }],
maxPagesPerSite: 8,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].summary);

Python (apify-client 3.x):

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("muhammadafzal/agentic-commerce-readiness-index").call(
run_input={"startUrls": [{"url": "https://www.gymshark.com"}], "maxPagesPerSite": 8}
)
items = client.dataset(run.default_dataset_id).list_items().items
print(items[0]["readinessScore"], items[0]["topRecommendations"])

What does the output look like?

Two reports produced by the Actor's audit code on 2026-10-26 with a 5-page sample, shortened (findings cut to one entry, capability lists trimmed):

[
{
"requestedUrl": "https://www.allbirds.com",
"finalUrl": "https://www.allbirds.com/",
"domain": "www.allbirds.com",
"outcome": "complete",
"readinessScore": 50,
"readinessGrade": "D",
"categoryScores": { "ucp": 30, "acp": 0, "aiShopping": 4, "trust": 6, "technical": 10 },
"ucp": {
"discoveryUrl": "https://www.allbirds.com/.well-known/ucp",
"found": true,
"httpStatus": 200,
"valid": true,
"version": "2026-08-25",
"capabilities": ["dev.ucp.shopping.checkout", "dev.ucp.shopping.cart", "dev.ucp.shopping.catalog.search"],
"paymentHandlers": ["com.google.pay", "dev.shopify.card", "dev.shopify.shop_pay"],
"issues": []
},
"acp": { "discoveryUrl": "https://www.allbirds.com/.well-known/acp.json", "found": false, "httpStatus": 404, "issues": [] },
"pagesScanned": 5,
"productPagesDetected": 0,
"productJsonLdCount": 0,
"findings": [
{ "code": "ACP_DISCOVERY", "category": "acp", "severity": "high", "passed": false, "details": "No ACP discovery document was found (HTTP 404).", "recommendation": "Publish a public ACP discovery document at /.well-known/acp.json.", "pointsAwarded": 0, "pointsPossible": 5 }
],
"topRecommendations": [
"Publish a public ACP discovery document at /.well-known/acp.json.",
"Add valid schema.org Product JSON-LD to every canonical product page."
],
"summary": "www.allbirds.com scored 50/100 (D): UCP 30/30, ACP 0/25, AI shopping 4/20, trust 6/15, technical 10/10."
},
{
"requestedUrl": "https://www.gymshark.com",
"domain": "www.gymshark.com",
"outcome": "complete",
"readinessScore": 30,
"readinessGrade": "F",
"categoryScores": { "ucp": 0, "acp": 0, "aiShopping": 5, "trust": 15, "technical": 10 },
"ucp": { "found": false, "httpStatus": 404, "issues": [] },
"acp": { "found": false, "httpStatus": 404, "issues": [] },
"pagesScanned": 5,
"productPagesDetected": 2,
"productJsonLdCount": 0,
"summary": "www.gymshark.com scored 30/100 (F): UCP 0/30, ACP 0/25, AI shopping 5/20, trust 15/15, technical 10/10."
}
]

How much does it cost? (pricing)

Pay per event. Apify platform usage is included in these prices.

EventFREEBRONZESILVERGOLDPLATINUM / DIAMOND
Merchant readiness audit (one report)USD 0.020001USD 0.0195USD 0.019USD 0.016USD 0.016
Actor start (per started GB of allocated memory)USD 0.006251USD 0.006094USD 0.005938USD 0.005USD 0.005

The default memory is 512 MB, so a run has one start event. Worked totals on the FREE tier:

  • One store: USD 0.020001 + USD 0.006251 = USD 0.026
  • 20 stores in one run (the maximum): 20 × USD 0.020001 + USD 0.006251 = USD 0.406

A report is charged when it is saved, including a blocked report for a store whose homepage refused the audit. Rejected inputs produce no report and no report charge.

How fast is it, and what are the limits?

Stores are audited one after another. A 5-page sample took 11–12 seconds per store in a 2026-10-26 test, and the default run timeout is 600 seconds.

  • It is a sample, not a crawl: 8 pages by default. Allbirds scored 0 product pages in a 5-page sample, so raise maxPagesPerSite when product checks fail on a store you know has products.
  • HTML as served: Product JSON-LD or links added later by JavaScript are not seen.
  • Public evidence only: ACP payment handlers are negotiated per checkout session, so they are not guessed. Feeds hosted by a commerce partner are not visible.
  • Responses are capped at 3 MB, redirects at four, and private or reserved network addresses are blocked.

FAQ

What is agentic commerce?

Shopping where an AI agent searches, compares and buys on a person's behalf. UCP and ACP are the open protocols merchants publish so agents can discover their catalog and checkout services.

Does this Actor test checkout or place orders?

No. It reads public files and pages only. It never creates carts, calls checkout endpoints, reserves stock or handles payment data.

Does a high score mean AI assistants will list my products?

No. The score shows which public signals are present. Program acceptance, feed quality and checkout behavior are decided by each platform.

Can I audit competitors' stores?

Yes, any public HTTPS storefront, up to 20 per run. Audit only sites you are allowed to inspect and keep request volume low.

Why did a store get full UCP points but no product points?

UCP points come from /.well-known/ucp, while product points come from the sampled HTML. A small sample can miss product pages; increase maxPagesPerSite.

Can it fix the problems it finds?

It reports them with a recommendation per check. Changes are made in your store platform or theme.

Audit only storefronts you are authorized to inspect, in line with their terms, robots rules and applicable law. Do not put API keys, cookies, customer data or private network URLs in the input. Follow a good score with authorized protocol conformance tests before a production launch.

Last verified: 2026-10-26