§ docs
API reference
Two endpoints: one to run an audit, one to check your key. See the overview for authentication and error-handling conventions.
POST /api/v1/audits
Run a full audit on a single URL. Counts against your daily quota.
Request
POST https://app.nyman.media/api/v1/audits
Authorization: Bearer nmav_live_...
Content-Type: application/json
{
"url": "https://example.com",
"country": "us"
}Request fields
url(string, required): any public URL. HTTPS is recommended; HTTP is accepted and will be reported.country(string, optional): ISO 3166-1 alpha-2 code used for localized checks. Defaults tous.
Response
HTTP/1.1 200 OK
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 17832
Content-Type: application/json
{
"id": "run_01HF...",
"url": "https://example.com",
"final_url": "https://www.example.com/",
"score": 78,
"hard_block": { "blocked": false },
"sections": [
{
"key": "crawlability",
"label": "Crawlability",
"status": "pass",
"score": 92,
"findings": [
{ "code": "robots_allows_crawling", "severity": "info", "title": "Robots.txt permits crawlers" }
]
}
],
"created_at": "2026-04-22T10:15:00Z"
}Curl example
curl -X POST https://app.nyman.media/api/v1/audits \
-H "Authorization: Bearer $NMAV_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'JavaScript example
const res = await fetch("https://app.nyman.media/api/v1/audits", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.NMAV_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ url: "https://example.com" }),
});
const audit = await res.json();
console.log(audit.score);Python example
import os, requests
r = requests.post(
"https://app.nyman.media/api/v1/audits",
headers={"Authorization": f"Bearer {os.environ['NMAV_API_KEY']}"},
json={"url": "https://example.com"},
timeout=120,
)
r.raise_for_status()
print(r.json()["score"])GET /api/v1/me
Introspect the current API key. Returns the owning user's tier, entitlement status, and remaining quota. Does not count against the quota.
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"user": { "id": "…", "email": "you@example.com" },
"tier": "premium",
"entitled": true,
"limits": {
"grader": { "limit": 100, "remaining": 97 }
},
"auth_source": "api_key"
}