개발자 · REST v1

YoFont API/MCP

프로그래밍 방식으로 폰트를 생성하고, 글리프를 가져오고, 배포까지 관리하세요. 앱과 동일한 엔진, bearer 토큰 하나면 됩니다.

// 인증

모든 요청은 Authorization 헤더에 bearer 토큰을 담아 보냅니다. 키는 서버에만 보관하세요.

로그인하면 바로 쓸 수 있는 API 키를 만들 수 있어요 — 무료이고, 모든 플랜에 API 액세스가 포함돼 있습니다.

// 속도 제한

요청은 API 키마다 제한돼요. 한도를 넘으면 429 Too Many Requests — 헤더: Retry-After. 한도는 플랜에 따라 늘어납니다:

폰트 생성 · 그 외
Starter60 · 600 / 분
Pro200 · 2 000 / 분
Agency600 · 6 000 / 분

더 높은 처리량이 필요하신가요? 플랜 업그레이드.

POST/api/public/generate

텍스트 프롬프트에서 완전한 폰트 패밀리를 생성합니다. 폴링하거나 webhook으로 받을 수 있는 작업을 반환합니다.

prompt필수폰트에 대한 자연어 설명입니다. Optional when reference_image_url is set.
reference_image_url스타일 레퍼런스 이미지(PNG/JPG/WEBP) — 공개적으로 접근 가능한 직접 URL이어야 해요. 저희는 이미지를 저장하지 않고 링크를 그대로 렌더링 엔진에 전달합니다 — Figma/Chrome 플러그인의 스크린샷 → 폰트 기능과 같은 방식이에요.
languagesISO 코드 배열 — 기본값: ["en"]. Two-letter ISO codes, full list: GET /api/public/languages.
weights예: ["normal","bold","thin"].
glyph_typesletters · digits · punct · special (default all).
model_tierstandard (Epicur ×1) · pro (Spinoza ×3) · ultra (Nietzsche ×5).

                
200수락됨 — 다음을 반환합니다: { success, link, task_id, glyphs_charged, status_url }
// Response JSON

                
402글리프 소진 — Plans 페이지에서 충전하세요
GET/api/public/status?link=…

폰트의 상태와 다운로드 URL(TTF / WOFF2 / 가변)을 가져옵니다.

// Request

                
// Response JSON

                
GET/api/public/download?link=…

빌드된 폰트 파일을 원하는 형식(ttf/otf/woff/woff2)으로 다운로드합니다 — Studio의 다운로드 버튼이 내려주는 것과 같은 파일이에요.

// Request

                
// Response

                
GET/api/public/languages

지원되는 모든 ISO-2 언어 코드를 문자 체계별 글리프 수, 텍스트 방향과 함께 제공합니다 — 유효한 "languages" 배열을 만들 때 사용하세요.

// Request

                
// Response JSON

                
GET/api/public/fonts

최근 100개의 폰트 작업 — 상태, 모델, 소스와 각 폰트 페이지로 가는 링크를 보여줍니다.

// Request

                
// Response JSON

                
// 폴링

생성은 비동기로 처리됩니다. generate에 POST한 뒤 GET /api/public/status?link=… 를 몇 초마다 상태가 font_ready(또는 failed)가 될 때까지 폴링하세요.

statusqueued · processing · font_ready · failed
progress{ total, completed, failed } — 완료된 글리프 아틀라스 수
fonts다음 조건이 충족되면 제공되는 ttf/otf/woff/woff2 직접 링크 — status = font_ready.

3~5초마다 한 번씩 폴링하면 충분해요 — 폰트 패밀리 전체는 보통 2분 이내에 완성됩니다. 폰트 파일 URL은 정적이라 한 번 반환되면 별도 인증이 필요 없어요.

// 오류

모든 오류는 일관된 JSON 형식을 따릅니다: { "success": false, "error": "…" }.

400잘못된 요청 — 필드가 누락됐거나 잘못됐어요. error 필드에서 자세한 내용을 확인하세요.
401인증되지 않음 — 누락되거나 잘못된 Authorization 헤더.
402결제 필요 — 글리프 할당량이 소진되었습니다. Plans 페이지에서 충전하세요.
403접근 금지 — 이 링크는 다른 계정에 속합니다.
404찾을 수 없음 — 폰트 ID가 존재하지 않거나 다른 계정에 속합니다.
429요청이 너무 많음 — 요청 한도를 초과했어요. 잠시 뒤 다시 시도하세요 — 대기 시간은 Retry-After.
500내부 오류 — 저희 측에서 문제가 발생했습니다. 몇 초 후 재시도하면 대개 해결됩니다.
{
  "success": false,
  "error": "Not enough glyphs. Top up: https://yofont.com/plans"
}