Developers
CLI and JSON API
The same scoring engine in three places: this website, your terminal and your pipeline.
Command line
No install, no account, no key.
npx axray example.com
npx axray example.com/pricing --verbose
npx axray example.com --probe # also fetch as real AI crawler user-agents
npx axray example.com --crawl 50 # crawl the site
npx axray example.com --json > ax.json
Gate a deploy
--min exits non-zero below the threshold, which is all a CI step needs.
# .github/workflows/ax.yml
- name: Agent Experience check
run: npx axray "${{ env.DEPLOY_URL }}" --min 70
JSON API
Available on Team and Agency plans. Authenticate with a bearer token from your dashboard.
POST /api/v1/scan
curl -s https://qibbopress.com/api/v1/scan \
-H "authorization: Bearer $AXRAY_API_KEY" \
-H "content-type: application/json" \
-d '{"url":"example.com","probeAgents":false}'
Returns the complete ScanResult: score, grade, gates, pillars, every check and the ordered fix list.
GET /api/v1/report/:id
Fetch a previously produced report as JSON. Public reports need no key.
POST /api/v1/crawl
curl -s https://qibbopress.com/api/v1/crawl \
-H "authorization: Bearer $AXRAY_API_KEY" \
-H "content-type: application/json" \
-d '{"origin":"example.com","maxPages":50}'
Returns a crawl id immediately. Poll GET /api/v1/crawl/:id until status is done.
GET /api/v1/index
The public AX Index: best known score per host. No key required.
Errors and limits
400— the URL is malformed, private or unsupported. The message says which.401— missing or unknown API key.402— your plan does not include this endpoint.429— quota exhausted.retry_aftertells you when the window resets.
Machine-readable schema: /openapi.json.
Use it as a library
import { scan } from '@axray/core';
const result = await scan('example.com');
console.log(result.score, result.priorities[0].title);
Zero runtime dependencies. Node 22.6 or newer.