Skip to main content

AX Audit API

The AX (Agent eXperience) Audit API lets you embed agent-readiness scoring into your own products. Scan any URL, retrieve persistent reports, crawl entire sites, and compare scores against industry benchmarks — all via REST.

Base URL: https://api.ainative.studio

No authentication required for scanning and reporting endpoints. Checkout and lead endpoints are public but rate-limited.


Endpoints

MethodPathDescription
POST/api/v1/public/ax-auditRun a quick scan (7 checks, score + grade)
POST/api/v1/public/ax-audit/fullFull audit — stores results, returns report_id
GET/api/v1/public/ax-audit/reports/{report_id}Retrieve a stored report
POST/api/v1/public/ax-audit/unlockUnlock full report with email
POST/api/v1/public/ax-audit/crawlStart a multi-page site crawl
GET/api/v1/public/ax-audit/crawl/{crawl_id}Poll crawl job results
GET/api/v1/public/ax-audit/badgeGenerate dynamic OG badge image (PNG)
GET/api/v1/public/ax-audit/benchmarkList supported industries
GET/api/v1/public/ax-audit/benchmark/{industry}Industry benchmark stats
GET/api/v1/public/ax-audit/benchmark/{industry}/percentilePercentile rank for a score
POST/api/v1/public/ax-audit/leadsCapture a lead from audit results
POST/api/v1/public/ax-audit/checkoutCreate Stripe checkout for Pro/Business/Agency

Quick Scan

Runs 7 agent-readiness checks and returns a score (0–100) plus letter grade. No auth, no storage.

POST /api/v1/public/ax-audit

{ "url": "https://yoursite.com" }
curl -X POST https://api.ainative.studio/api/v1/public/ax-audit \
-H "Content-Type: application/json" \
-d '{"url": "https://yoursite.com"}'

Response

{
"url": "https://yoursite.com",
"score": 74,
"max_score": 100,
"grade": "B",
"scanned_at": "2026-04-24T20:00:00Z",
"checks": [
{
"name": "llms.txt present",
"passed": true,
"score": 15,
"max_score": 15,
"details": "Found at /llms.txt — 8.4KB"
},
{
"name": "OpenAPI spec",
"passed": false,
"score": 0,
"max_score": 15,
"details": "No openapi.json or openapi.yaml found"
}
]
}

AX Dimensions (7 checks)

DimensionMax ScoreWhat It Checks
llms.txt present15Agent-readable site summary
OpenAPI spec15Machine-readable API definition
robots.txt AI permissions10Allows/disallows AI crawlers
Structured data (JSON-LD)15Schema.org markup for agents
API authentication clarity15Auth scheme documented and accessible
Response format consistency15JSON responses, predictable structure
Agent-friendly error messages154xx/5xx include actionable detail

Full Audit + Persistent Report

Stores the result server-side and returns a report_id you can share or retrieve later.

POST /api/v1/public/ax-audit/full

{
"url": "https://yoursite.com",
"industry": "saas"
}

GET /api/v1/public/ax-audit/reports/{report_id}

curl https://api.ainative.studio/api/v1/public/ax-audit/reports/abc123

Unlock with Email

Full reports are gated by email — useful for lead capture in white-label flows.

POST /api/v1/public/ax-audit/unlock

{
"report_id": "abc123",
"email": "dev@agency.com"
}

Site Crawl

Scan multiple pages in one job. Free tier: 1 page. Pro: 500 pages. Business: unlimited.

POST /api/v1/public/ax-audit/crawl

{
"url": "https://yoursite.com",
"max_pages": 25
}

Returns a crawl_id. Poll for results:

GET /api/v1/public/ax-audit/crawl/{crawl_id}

{
"crawl_id": "xyz789",
"status": "completed",
"pages_crawled": 25,
"overall_score": 68,
"dimension_averages": {
"llms.txt present": 15,
"OpenAPI spec": 0
},
"pages": [ ... ]
}

Badge (OG Image)

Returns a dynamic 1200×630 PNG — drop it into any <meta og:image> tag or embed directly.

GET /api/v1/public/ax-audit/badge?url=yoursite.com&score=74&grade=B

<img src="https://api.ainative.studio/api/v1/public/ax-audit/badge?url=yoursite.com&score=74&grade=B" />

Grades A/A+ render green, B yellow, C/D/F red.


Industry Benchmarks

Compare a score against real-world data for a specific industry vertical.

# List industries
GET /api/v1/public/ax-audit/benchmark

# Get benchmark stats for SaaS
GET /api/v1/public/ax-audit/benchmark/saas

# Percentile rank for score=74 in SaaS
GET /api/v1/public/ax-audit/benchmark/saas/percentile?score=74

Benchmark response

{
"industry": "saas",
"avg_score": 61,
"p25": 42,
"p50": 61,
"p75": 78,
"p90": 88
}

Percentile response

{
"score": 74,
"industry": "saas",
"percentile": 72,
"message": "Better than 72% of SaaS sites"
}

Lead Capture

When a user unlocks a report, you can POST their details to trigger the AINative drip campaign or your own CRM.

POST /api/v1/public/ax-audit/leads

{
"url": "https://yoursite.com",
"email": "founder@startup.com",
"score": 74,
"findings_count": 3,
"dimensions_failed": ["OpenAPI spec", "Agent-friendly error messages"],
"package_interest": "pro",
"utm_source": "partner_agency",
"utm_medium": "embed",
"utm_campaign": "ax_widget_q2"
}

Response

{
"lead_id": "uuid",
"booking_url": "https://calendly.com/ainativestudio/?url=...&score=74&lead=uuid",
"status": "created"
}

The booking_url is pre-filled with context so the sales call is already informed.


Stripe Checkout

Create a checkout session for upgrading a user to Pro, Business, or Agency tier.

POST /api/v1/public/ax-audit/checkout

{
"tier": "agency",
"billing": "monthly",
"email": "dev@agency.com",
"utm_source": "docs"
}

Tiers

TierPages / crawlWhite-labelAPI access
Free1NoQuick scan only
Pro500NoFull + crawl
BusinessUnlimitedNoFull + crawl + benchmark
AgencyUnlimitedYesAll endpoints + lead API

Embedding in Your Product

Typical agency/tool integration pattern:

// 1. Run quick scan on user's URL
const audit = await fetch('https://api.ainative.studio/api/v1/public/ax-audit', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ url: userUrl }),
}).then(r => r.json());

// 2. Show score + grade in your UI
renderScoreWidget(audit.score, audit.grade, audit.checks);

// 3. On CTA click, capture lead
if (userClickedGetReport) {
const lead = await fetch('https://api.ainative.studio/api/v1/public/ax-audit/leads', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
url: userUrl,
email: userEmail,
score: audit.score,
utm_source: 'your_tool',
}),
}).then(r => r.json());

window.open(lead.booking_url, '_blank');
}

Rate Limits

EndpointLimit
Quick scan60 req/min per IP
Full audit20 req/min per IP
Crawl5 concurrent jobs
Badge120 req/min

Standard 429 with Retry-After header when exceeded. See error codes for full reference.