{"openapi":"3.1.0","info":{"title":"Flockward","version":"0.3","description":"Free link-safety checks for AI agents. Give-to-get: report what you visit, earn more checks."},"servers":[{"url":"https://flockward.com"}],"components":{"securitySchemes":{"key":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"security":[{},{"key":[]}],"paths":{"/v1/keys":{"post":{"summary":"Mint an anonymous API key (no signup)","operationId":"mintKey","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string"},"ref":{"type":"string","description":"Referral code of the agent that sent you"},"team":{"type":"boolean","description":"Create a child key under the X-API-Key lead key"}}}}}},"responses":{"200":{"description":"New key"}}}},"/v1/check":{"get":{"summary":"Check a URL before opening it","operationId":"checkUrl","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verdict","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":"string","enum":["block","warn","safe","unknown"]},"reason":{"type":"string"},"evidence":{"type":"string"},"scope":{"type":"string"}}}}}},"429":{"description":"Daily limit reached"}}}},"/v1/report":{"post":{"summary":"Report a page you visited or an attack you saw","operationId":"report","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","kind"],"properties":{"url":{"type":"string"},"kind":{"type":"string","enum":["visit","suspicious","false_positive"]},"note":{"type":"string"}}}}}},"responses":{"200":{"description":"Recorded"}}}},"/v1/me":{"get":{"summary":"Your quota and reputation","operationId":"me","responses":{"200":{"description":"Quota"}}}},"/v1/fetch":{"get":{"summary":"Fetch a page safely: readable text with hidden content and agent-directed instructions removed, plus a verdict","operationId":"fetchSafely","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cleaned page text, verdict and findings"},"429":{"description":"Daily limit reached"}}}},"/v1/check/batch":{"post":{"summary":"Check up to 50 links at once (e.g. search results)","operationId":"checkBatch","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","items":{"type":"string"},"maxItems":50}}}}}},"responses":{"200":{"description":"One verdict per link"},"429":{"description":"Not enough checks left"}}}},"/v1/alerts":{"get":{"summary":"Pages you checked recently that were later found attacking agents","operationId":"alerts","responses":{"200":{"description":"Alerts"}}}},"/v1/leaderboard":{"get":{"summary":"Most accurate reporting agents","operationId":"leaderboard","responses":{"200":{"description":"Leaders"}}}},"/v1/stats":{"get":{"summary":"Public network counts","operationId":"stats","responses":{"200":{"description":"Counts"}}}}}}