Skip to main content
The Readiness Score API inspects a domain across five capability areas — discoverability, catalog, checkout, schema, and attribution — and returns a single score and a prioritised list of gaps to fix. Use it to assess a domain before implementation begins, to validate after each implementation step, or to run batch audits across multiple client domains. All calls require authentication — see Authentication.

Endpoint

POST https://asva-ai.com/api/audit

Request parameters

domain
string
required
The domain to audit, without https://. Example: "yourstore.com"
checks
string[]
Specific checks to run. Omit this field to run all checks.Available values: well_known, catalog, checkout, schema, feed, attribution, entity
dry_run
boolean
When true, the API returns a cached result without re-fetching the domain. Use this during development to test your integration without triggering a live audit.
What each check tests:
CheckWhat it tests
well_known/.well-known/ucp presence, validity, and accessibility
catalogProduct catalog endpoint structure and data quality
checkoutUCP/ACP checkout endpoint availability
schemaJSON-LD Product, Offer, Organization schema on product pages
feedGoogle Merchant Center feed quality
attributionAsva attribution snippet presence
entityEntity consistency — brand name and organization schema
Example request:
{
  "domain": "yourstore.com",
  "checks": ["well_known", "catalog", "checkout", "schema", "attribution"],
  "dry_run": false
}

Response fields

domain
string
The domain that was audited.
score
integer
Overall readiness score from 0 to 100. Higher is better.
grade
string
Letter grade based on the score.
GradeScore range
A80–100
B60–79
C40–59
D0–39
checked_at
string
ISO 8601 timestamp of when the audit ran.
gaps
array
Issues found, ordered by severity. Each item in the array contains:
gaps[].id
string
Unique identifier for this gap type, for example well_known_missing.
gaps[].check
string
Which check category this gap belongs to.
gaps[].severity
string
How urgently this gap needs fixing: critical, high, medium, or low.
gaps[].label
string
Short human-readable description of the gap.
gaps[].detail
string
Full explanation of the gap and its impact on AI commerce.
gaps[].fix_url
string
Link to the relevant Asva tool to fix this gap. May be null if no tool applies.
breakdown
object
Score breakdown by category. Each field is an integer from 0 to 100.
breakdown.discoverability
integer
Score for agent discoverability — manifest presence and validity.
breakdown.catalog
integer
Score for product catalog quality and structure.
breakdown.checkout
integer
Score for checkout endpoint availability and correctness.
breakdown.attribution
integer
Score for attribution snippet presence and configuration.
passed
string[]
List of check IDs that passed with no issues.

Severity reference

SeverityMeaning
criticalBlocks agent discovery or checkout. Fix immediately.
highSignificantly reduces AI traffic or conversion. Fix soon.
mediumAffects attribution or discoverability but not checkout.
lowMinor improvement opportunity.

Example request and response

curl -X POST https://asva-ai.com/api/audit \
  -H "Authorization: Bearer $ASVA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "yourstore.com"
  }'
Example response:
{
  "domain": "yourstore.com",
  "score": 42,
  "grade": "C",
  "checked_at": "2026-04-10T11:00:00Z",
  "gaps": [
    {
      "id": "well_known_missing",
      "check": "well_known",
      "severity": "critical",
      "label": "/.well-known/ucp not found",
      "detail": "No response at https://yourstore.com/.well-known/ucp. Create this file to enable agent discovery.",
      "fix_url": "https://asva-ai.com/tools/manifest"
    },
    {
      "id": "product_schema_incomplete",
      "check": "schema",
      "severity": "high",
      "label": "Product JSON-LD schema missing on 6 pages",
      "detail": "Checked 10 product pages; 6 have no Product or Offer schema. AI systems cannot cite or price these products.",
      "fix_url": null
    },
    {
      "id": "dark_traffic_untracked",
      "check": "attribution",
      "severity": "medium",
      "label": "Asva attribution snippet not detected",
      "detail": "Install the Asva snippet to surface AI-sourced sessions in GA4.",
      "fix_url": "https://asva-ai.com/tools/readiness"
    }
  ],
  "breakdown": {
    "discoverability": 60,
    "catalog": 45,
    "checkout": 30,
    "attribution": 0
  },
  "passed": [
    "https_enabled",
    "feed_exists",
    "merchant_center_connected"
  ]
}

Batch auditing

For agencies auditing multiple domains, loop through the API:
#!/bin/bash
domains=("client1.com" "client2.com" "client3.com")

for domain in "${domains[@]}"; do
  result=$(curl -s -X POST https://asva-ai.com/api/audit \
    -H "Authorization: Bearer $ASVA_API_KEY" \
    -H "Content-Type: application/json" \
    -d "{\"domain\": \"$domain\"}")

  score=$(echo $result | jq '.score')
  grade=$(echo $result | jq -r '.grade')
  echo "$domain: $score ($grade)"
done
The /api/audit endpoint allows 60 requests per hour. Space out batch jobs or use dry_run: true for subsequent calls against the same domain within the same session.