{"openapi":"3.1.0","info":{"title":"debloat.dev API","version":"1.0.0","description":"Read categories and submit open-source replacements for bloated vendor software."},"servers":[{"url":"https://debloat.dev"}],"paths":{"/api/categories":{"get":{"summary":"List categories","responses":{"200":{"description":"Category list","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"count":{"type":"integer"}}}}}}}}}},"/api/products":{"post":{"summary":"Submit one or more products (idempotent by repo_url)","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProductSubmission"},{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/ProductSubmission"}}]}}}},"responses":{"200":{"description":"Nothing new (duplicates or errors)"},"201":{"description":"At least one created"},"401":{"description":"Missing or invalid bearer token"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"ProductSubmission":{"type":"object","required":["name","repo_url","license","replaces","category"],"properties":{"name":{"type":"string","maxLength":80},"repo_url":{"type":"string","format":"uri"},"license":{"type":"string","maxLength":40},"replaces":{"type":"string","maxLength":200},"category":{"type":"string","description":"category slug from GET /api/categories"},"platforms":{"type":"string"},"description":{"type":"string","maxLength":500}}}}}}