{"openapi":"3.1.0","info":{"title":"UWS Fonts - AI Native Typography & WebFont Streaming API","version":"1.0.0","description":"External WebFont CSS/Binary Streaming, Custom Font Publishing, and AI Style DNA Synthesis API."},"servers":[{"url":"https://uwsfonts.com"}],"defaultFontIds":[{"id":"fnt_nanum_gothic","name":"나눔고딕","category":"gothic","fontWeight":"700"},{"id":"fnt_nanum_d2coding","name":"나눔고딕 D2coding","category":"coding","fontWeight":"700"},{"id":"fnt_nanum_gothic_eco","name":"나눔고딕에코","category":"gothic","fontWeight":"400"},{"id":"fnt_nanum_myeongjo","name":"나눔명조","category":"myeongjo","fontWeight":"700"},{"id":"fnt_nanum_myeongjo_eco","name":"나눔명조에코","category":"myeongjo","fontWeight":"400"},{"id":"fnt_nanum_myeongjo_old","name":"나눔명조옛한글","category":"oldhangul","fontWeight":"700"},{"id":"fnt_nanum_barun_gothic","name":"나눔바른고딕","category":"gothic","fontWeight":"600"},{"id":"fnt_nanum_barun_old","name":"나눔바른고딕옛한글","category":"oldhangul","fontWeight":"400"},{"id":"fnt_nanum_barun_pen","name":"나눔바른펜 일반용","category":"handwriting","fontWeight":"400"},{"id":"fnt_nanum_brush","name":"나눔손글씨 붓","category":"handwriting","fontWeight":"400"},{"id":"fnt_nanum_pen","name":"나눔손글씨 펜","category":"handwriting","fontWeight":"400"},{"id":"fnt_nanum_square","name":"나눔스퀘어","category":"gothic","fontWeight":"800"},{"id":"fnt_nanum_square_neo","name":"나눔스퀘어 네오 [Variable]","category":"gothic","fontWeight":"700"},{"id":"fnt_nanum_square_round","name":"나눔스퀘어라운드","category":"gothic","fontWeight":"700"},{"id":"fnt_nanum_human","name":"나눔휴먼","category":"handwriting","fontWeight":"700"}],"endpoints":[{"method":"GET","path":"/api/webfont/css","aliases":["/api/fonts/:id/webfont.css"],"description":"Returns a ready-to-use @font-face CSS stylesheet with CORS enabled.","parameters":{"id":{"in":"query","type":"string","required":false,"default":"fnt_nanum_gothic","description":"Font ID or Font Name (e.g. fnt_nanum_pen, studio_custom)"},"family":{"in":"query","type":"string","required":false,"description":"Custom CSS font-family name override"}}},{"method":"GET","path":"/api/webfont/file/:fileSpec","aliases":["/api/fonts/:id/file.:ext"],"description":"Streams raw font binary (.woff2, .ttf, .otf) with CORS headers for @font-face url() or JS FontFace API.","parameters":{"fileSpec":{"in":"path","type":"string","required":true,"example":"fnt_nanum_gothic.woff2"},"format":{"in":"query","type":"string","required":false,"enum":["woff2","woff","ttf","otf"],"default":"ttf"}}},{"method":"GET","path":"/api/webfont/info/:id","description":"Returns JSON metadata, streaming URLs, and HTML/CSS embed snippets for a specific font.","parameters":{"id":{"in":"path","type":"string","required":true,"example":"fnt_nanum_gothic"}}},{"method":"POST","path":"/api/webfont/publish","description":"Publishes custom SVG glyph paths and styleDNA as a live hostable WebFont API endpoint.","requestBody":{"fontName":"string (required, e.g. MyCustomFont)","styleDNA":{"strokeWidth":"number (8-36)","slantAngle":"number (-15 to 15)","curvature":"number (0-100)","terminalShape":"rounded|sharp|natural","spacingRatio":"number (0.8-1.2)"},"glyphs":[{"character":"string","unicode":"number","svgPath":"string (1000x1000 EM space)","advanceWidth":"number (default 1000)"}]}},{"method":"GET","path":"/api/fonts","description":"Lists all visible catalog fonts with metadata and download counts."},{"method":"POST","path":"/api/export/font","description":"Compiles and downloads a standalone .ttf or .otf binary font file from styleDNA and custom glyphs.","requestBody":{"fontName":"string","format":"ttf | otf","styleDNA":"StyleDNA Object","glyphs":"Array<GlyphRecord>"}},{"method":"POST","path":"/api/generate-batch","description":"Synthesizes 1000x1000 SVG vector paths for an array of Hangul/Latin characters using styleDNA.","requestBody":{"characters":["가","꽃","별","A"],"styleDNA":"StyleDNA Object"}}]}