{"openapi":"3.1.0","info":{"title":"Checkvanta API","version":"1.0.0","description":"Free analysis of websites, domains, servers and mail configuration. All checks run on Checkvanta's own infrastructure. AI agents are welcome."},"servers":[{"url":"https://checkvanta.com/api/v1"}],"paths":{"/scans":{"post":{"operationId":"createScan","summary":"Start a scan for a hostname","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["hostname"],"properties":{"hostname":{"type":"string","example":"example.com"},"modules":{"type":"array","items":{"type":"string","enum":["dns","http","tls","mail","rpki"]}},"dkimSelector":{"type":"string","description":"Optional DKIM selector for the mail module. If your provider uses a custom selector we can't guess (e.g. protonmail), name it here for an exact key check.","example":"selector1"}}}}}},"responses":{"202":{"description":"Scan accepted","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"}}}}}},"429":{"description":"Rate limit exceeded"}}}},"/scans/{id}":{"get":{"operationId":"getScan","summary":"Get a scan's status and results","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Scan state with per-module results"},"404":{"description":"Not found"}}}},"/reports/{id}":{"get":{"operationId":"exportReport","summary":"Export a report (full check list)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","csv","pdf"]}},{"name":"lang","in":"query","schema":{"type":"string","enum":["de","en"]}}],"responses":{"200":{"description":"Report as JSON or CSV (attachment)"},"404":{"description":"Not found"}}}},"/scans/{id}/stream":{"get":{"operationId":"streamScan","summary":"Live per-module progress (Server-Sent Events)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"text/event-stream of job state"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key (Authorization: Bearer <key>)"}}}}