Nyman Media
§ 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 to us.

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"
}