{"openapi":"3.1.0","info":{"title":"MakeFav Favicon API","version":"1.0.0","description":"Generate complete favicon packages (ICO, PNG, Apple, Android/PWA, Windows, manifest, HTML).","contact":{"email":"support@makefav.com","url":"https://makefav.com/developers"}},"servers":[{"url":"https://makefav.com/api/v1"}],"security":[{"bearer":[]}],"paths":{"/generate":{"post":{"summary":"Generate a favicon package","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary"},"app_name":{"type":"string","maxLength":60,"default":"My Website"},"short_name":{"type":"string","maxLength":24},"theme_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","default":"#ffffff"},"tile_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","description":"transparent or #rrggbb","default":"transparent"},"apple_background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","default":"#ffffff"},"padding":{"type":"integer","minimum":0,"maximum":40,"default":0},"radius":{"type":"integer","minimum":0,"maximum":50,"default":0},"zoom":{"type":"integer","minimum":50,"maximum":400,"default":100},"offset_x":{"type":"number","minimum":-1,"maximum":1,"default":0},"offset_y":{"type":"number","minimum":-1,"maximum":1,"default":0},"path":{"type":"string","default":"/"},"display":{"type":"string","enum":["standalone","fullscreen","minimal-ui","browser"]},"pixelated":{"type":"string","enum":["auto","1","0"]},"maskable":{"type":"string","enum":["1","0"],"default":"1"},"ico_sizes":{"type":"string","description":"Comma list of 16,24,32,48,64,128,256","default":"16,32,48"},"groups":{"type":"string","description":"Comma list of favicon,apple,android,ms","default":"favicon,apple,android,ms"},"format":{"type":"string","enum":["zip","json"],"default":"zip"}}}},"application/json":{"schema":{"type":"object","properties":{"image_base64":{"type":"string"},"image_url":{"type":"string","format":"uri"},"app_name":{"type":"string","maxLength":60,"default":"My Website"},"short_name":{"type":"string","maxLength":24},"theme_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","default":"#ffffff"},"tile_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","description":"transparent or #rrggbb","default":"transparent"},"apple_background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","default":"#ffffff"},"padding":{"type":"integer","minimum":0,"maximum":40,"default":0},"radius":{"type":"integer","minimum":0,"maximum":50,"default":0},"zoom":{"type":"integer","minimum":50,"maximum":400,"default":100},"offset_x":{"type":"number","minimum":-1,"maximum":1,"default":0},"offset_y":{"type":"number","minimum":-1,"maximum":1,"default":0},"path":{"type":"string","default":"/"},"display":{"type":"string","enum":["standalone","fullscreen","minimal-ui","browser"]},"pixelated":{"type":"string","enum":["auto","1","0"]},"maskable":{"type":"string","enum":["1","0"],"default":"1"},"ico_sizes":{"type":"string","description":"Comma list of 16,24,32,48,64,128,256","default":"16,32,48"},"groups":{"type":"string","description":"Comma list of favicon,apple,android,ms","default":"favicon,apple,android,ms"},"format":{"type":"string","enum":["zip","json"],"default":"zip"}}}}}},"responses":{"200":{"description":"ZIP archive (format=zip) or JSON (format=json)","content":{"application/zip":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"400":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/me":{"get":{"summary":"Current user and rate limit","responses":{"200":{"description":"OK"},"401":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/sizes":{"get":{"summary":"List of generated files","security":[],"responses":{"200":{"description":"OK"}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"},"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Package":{"type":"object","properties":{"id":{"type":"string"},"html":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"mime":{"type":"string"},"size":{"type":"integer"},"base64":{"type":"string"}}}}}}}}}