전자책 EPUB 변환 API - 전문 EPUB 3.0 생성

표지, 목차, 다국어 지원 및 7개 템플릿이 포함된 구조화된 콘텐츠로 유효한 EPUB 3.0 전자책을 생성하세요. PDF API와 동일한 입력 형식 — 즉시 생성.

무엇을 할 수 있나요?
유효한 EPUB 3.0 출력

적절한 OPF 메타데이터, NCX 목차, XHTML 챕터 및 임베디드 표지 이미지가 포함된 리플로우 가능한 EPUB 전자책을 생성합니다. 모든 주요 전자책 리더와 호환됩니다.

7개 전문 템플릿

모던 소설, 엘레강트 소설, 학술 논문, 비즈니스 보고서, 요리책, 여행 가이드 또는 기술 매뉴얼 중에서 선택 — 각각 고유한 스타일링.

21개 이상의 언어

목차 제목, 챕터 번호 및 저작권 텍스트가 자동 번역됩니다. 영어에서 불가리아어, 독일어, 일본어, 아랍어 등으로.

99.9 % 가동 시간
응답
20 req/s
2 크레딧 / 요청

Convert to EPUB

POST https://api.yeb.to/v1/ebooks/epub/convert-from-file
매개변수 유형 필수 설명
api_key string Yes Your API authentication key (send in Authorization header or as parameter)
file_url string Yes Public URL to JSON file containing book data (metadata, chapters, options)
Same input as PDF API. Use the exact same JSON structure as the Ebooks to PDF API. Simply change the endpoint URL to get EPUB output instead of PDF.

JSON File Structure

Your JSON file at file_url should contain:

매개변수 유형 필수 설명
template string Yes Template name: modern-novel, elegant-novel, academic-paper, business-report, cookbook, travel-guide, technical-manual
metadata object Yes Book metadata (title, author, etc.)
metadata.title string Yes Book title
metadata.author string Yes Author name
metadata.language string Optional Language code (e.g., en, bg, de). Affects TOC heading, chapter numbering, copyright text. Default: en. Supports 21+ languages.
metadata.description string Optional Book description (embedded in EPUB metadata)
metadata.year integer Optional Publication year (default: current year)
metadata.publisher string Optional Publisher name
metadata.isbn string Optional ISBN number (added as dc:identifier in OPF)
metadata.subtitle string Optional Book subtitle (shown on title page)
metadata.series string Optional Book series name (shown on title page)
metadata.cover_image string Optional Cover image URL (downloaded and embedded in EPUB)
chapters array Yes Array of chapter objects (max: 100)
chapters[].title string Yes Chapter title
chapters[].subtitle string Optional Chapter subtitle
chapters[].content string Yes Chapter content (plain text or HTML). Paragraphs separated by \n\n are auto-wrapped in <p> tags.
options object Optional Customization options
options.include_cover boolean Optional Include cover page if cover_image provided (default: true)
options.include_copyright boolean Optional Include copyright page (default: true)
options.font_size string Optional Base font size, e.g., 12pt (default: 12pt)
options.line_height string Optional Line height, e.g., 1.6 (default: 1.6)
texts object Optional Override auto-translated texts (copyright_text, publisher_text, chapter_number_format, toc_title, etc.)

JSON File Example

1. Create book.json on your server:
{
  "template": "elegant-novel",
  "metadata": {
    "title": "The Great Gatsby",
    "author": "F. Scott Fitzgerald",
    "subtitle": "A Novel of the Jazz Age",
    "description": "A story of decadence and excess...",
    "year": 1925,
    "publisher": "Charles Scribner's Sons",
    "isbn": "978-0-7432-7356-5",
    "language": "en",
    "cover_image": "https://example.com/gatsby-cover.jpg"
  },
  "chapters": [
    {
      "title": "Chapter I",
      "content": "In my younger and more vulnerable years...\n\nAnd, after boasting this way..."
    },
    {
      "title": "Chapter II",
      "content": "About half way between West Egg and New York..."
    }
  ],
  "options": {
    "font_size": "12pt",
    "line_height": "1.6",
    "include_copyright": true
  }
}
2. Upload to your server (e.g., https://yourdomain.com/books/book.json)
3. Call the API:

Integration Examples

curl -X POST https://api.yeb.to/v1/ebooks/epub/convert-from-file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_url": "https://yourdomain.com/books/book.json"}'
const response = await fetch('https://api.yeb.to/v1/ebooks/epub/convert-from-file', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    file_url: 'https://yourdomain.com/books/book.json'
  })
});
const result = await response.json();
console.log(result.epub_url);
$response = Http::withHeaders([
    'Authorization' => 'Bearer YOUR_API_KEY'
])->post('https://api.yeb.to/v1/ebooks/epub/convert-from-file', [
    'file_url' => 'https://yourdomain.com/books/book.json'
]);
$epub_url = $response->json()['epub_url'];
import requests

headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
payload = {
    "file_url": "https://yourdomain.com/books/book.json"
}
r = requests.post('https://api.yeb.to/v1/ebooks/epub/convert-from-file', json=payload, headers=headers)
print(r.json()['epub_url'])

Response Examples

{
  "success": true,
  "epub_url": "https://yeb.to/storage/ebooks/epub/epub_abc123.epub",
  "epub_size": 5772,
  "template": "elegant-novel",
  "chapters": 3,
  "generated_at": "2026-02-18T14:30:00+02:00",
  "response_code": 200,
  "response_time_ms": 12
}
{
  "error": "Metadata field 'title' is required",
  "response_code": 400,
  "response_time_ms": 5
}

응답 코드

코드설명
200 Success요청 처리 완료.
400 Bad Request입력 유효성 검사 실패.
401 UnauthorizedAPI 키 누락 또는 오류.
403 Forbidden키 비활성 또는 허용되지 않음.
429 Rate Limit요청이 너무 많습니다.
500 Server Error예기치 않은 오류.
EPUB 3.0 Standard

Generated EPUBs are fully compliant with the EPUB 3.0 specification:

  • Valid OPF package document with dc:metadata
  • NCX table of contents (EPUB 2 compat)
  • EPUB 3 navigation document (nav.xhtml)
  • XHTML chapters with template-based CSS
  • Embedded cover image (JPG, PNG, WebP)
  • Title page, copyright page, TOC
  • 21+ languages auto-translated
Same Input as PDF

Use the exact same JSON data for both PDF and EPUB generation. Simply switch the endpoint URL to get your preferred output format.

Convert to EPUB

ebooks/epub/convert-from-file 2.0000 credits

Parameters

API Key
body · string · required
File URL
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

List Templates

POST https://api.yeb.to/v1/ebooks/epub/templates
매개변수 유형 필수 설명
api_key string Yes Your API authentication key
Free endpoint! This endpoint costs 0 credits. Use it to discover available templates before generating.

Available Templates

Modern Novel

Clean, contemporary design. Drop-cap first letters, elegant typography.

modern-novel
Fiction, novels, short stories
Elegant Novel

Classic serif design with italic chapter titles and borders.

elegant-novel
Fiction, novels, multilingual
Academic Paper

Professional layout with bold headings and clear structure.

academic-paper
Research, academic, thesis
Business Report

Sans-serif corporate design with accent borders.

business-report
Business, reports, proposals
Cookbook

Recipe-friendly layout with warm colors.

cookbook
Recipes, cooking, food
Travel Guide

Compact sans-serif design with green accents.

travel-guide
Travel, guides, tourism
Technical Manual

Structured layout with shaded headers and monospace numbers.

technical-manual
Documentation, technical, manuals

Response Example

{
  "success": true,
  "templates": [
    {
      "slug": "modern-novel",
      "name": "Modern Novel",
      "description": "Clean, contemporary design...",
      "best_for": ["fiction", "novels", "short-stories"]
    },
    {
      "slug": "elegant-novel",
      "name": "Elegant Novel",
      "description": "Fully customizable elegant design...",
      "best_for": ["fiction", "novels", "multilingual"]
    }
  ],
  "total": 7,
  "response_code": 200,
  "response_time_ms": 8
}

응답 코드

코드설명
200 Success요청 처리 완료.
400 Bad Request입력 유효성 검사 실패.
401 UnauthorizedAPI 키 누락 또는 오류.
403 Forbidden키 비활성 또는 허용되지 않음.
429 Rate Limit요청이 너무 많습니다.
500 Server Error예기치 않은 오류.

List Templates

ebooks/epub/templates 0.0000 credits

Parameters

API Key
body · string · required

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

전자책 EPUB 변환 API - 전문 EPUB 3.0 생성 — Practical Guide

A hands-on guide to generating EPUB 3.0 ebooks from structured content: metadata, chapters, and templates. Same input format as the PDF API — just switch the endpoint to get reflowable EPUB output.

#What this API does

Send structured book content (metadata + chapters) and receive a valid EPUB 3.0 file with automatic table of contents, cover page, copyright page, and template-based styling. The output is reflowable — readers can adjust font size and layout on any device. Supports 21+ languages with auto-translated section headings.

Same input as PDF API. If you already use the Ebooks to PDF API, you can use the exact same JSON — just change the endpoint URL to get EPUB output instead.

#Endpoint

#POST https://api.yeb.to/v1/ebooks/epub/convert-from-file

  • Best for: Converting novels, articles, manuals, or any multi-chapter content into EPUB ebooks.
  • How it works: Pure PHP generation via ZipArchive — no external tools needed. XHTML chapters, OPF metadata, NCX + nav.xhtml TOC.
  • Output format: Valid EPUB 3.0 with NCX fallback for EPUB 2 readers.
  • Processing time: ~5-50ms depending on chapter count and cover image download.

#Quick start

Step 1: Create a JSON file with your book data:

{
  "template": "elegant-novel",
  "metadata": {
    "title": "My Book",
    "author": "Jane Doe",
    "language": "en",
    "description": "A wonderful story.",
    "cover_image": "https://example.com/cover.jpg"
  },
  "chapters": [
    {
      "title": "Chapter 1",
      "subtitle": "The Beginning",
      "content": "It was a dark and stormy night...\n\nThe wind howled through the trees."
    },
    {
      "title": "Chapter 2",
      "content": "The next morning brought sunshine and hope."
    }
  ]
}

Step 2: Upload to your server and call the API:

curl -X POST https://api.yeb.to/v1/ebooks/epub/convert-from-file \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_url": "https://yourdomain.com/book.json"}'

Step 3: Download the EPUB from the returned URL:

{
  "success": true,
  "epub_url": "https://yeb.to/storage/ebooks/epub/epub_abc123.epub",
  "epub_size": 5772,
  "template": "elegant-novel",
  "chapters": 2
}

#Available templates

TemplateStyleBest for
modern-novelSerif, drop-cap first letters, contemporaryFiction, novels, short stories
elegant-novelPalatino serif, italic chapters, bordered headingsFiction, novels, multilingual
academic-paperTimes, bold headings, left-aligned, cleanResearch, academic, thesis
business-reportSans-serif, blue accent borders, corporateReports, proposals, white papers
cookbookSerif, warm red accents, recipe-friendlyRecipes, cooking, food
travel-guideVerdana, green accents, compactTravel guides, tourism
technical-manualSans-serif, shaded headers, monospace numbersDocumentation, manuals

#Multilingual support

Set metadata.language to a 2-letter ISO code and the EPUB will automatically use translated text for section headings:

  • Table of Contents heading (e.g., "Съдържание" for Bulgarian)
  • Chapter numbering format (e.g., "Глава {n}" for Bulgarian)
  • Copyright text (e.g., "© {year} {author}. Всички права запазени.")

Supported: en, bg, de, fr, es, it, pt, ru, uk, pl, nl, tr, ja, zh, ko, ar, cs, ro, el, sr, hr.

#Generated EPUB structure

book.epub (ZIP archive)
├── mimetype                     # "application/epub+zip" (uncompressed)
├── META-INF/
│   └── container.xml            # Points to content.opf
└── OEBPS/
    ├── content.opf              # Package document (metadata + manifest + spine)
    ├── toc.ncx                  # NCX table of contents (EPUB 2 compat)
    ├── nav.xhtml                # EPUB 3 navigation document
    ├── style.css                # Template-based stylesheet
    ├── cover.xhtml              # Cover page (if cover_image provided)
    ├── titlepage.xhtml          # Title page
    ├── copyright.xhtml          # Copyright page
    ├── chapter_001.xhtml        # Chapter 1
    ├── chapter_002.xhtml        # Chapter 2
    ├── ...
    └── images/
        └── cover.jpg            # Embedded cover image

#When to use EPUB vs PDF

FeatureEPUBPDF
Reflowable text Yes Fixed layout
Reader font control Yes No
E-ink devices (Kindle) Ideal Usable
Print-ready No Yes
Fixed page numbers No Yes
Generation speed~5-50ms~2-5 seconds
File sizeSmall (5-50KB)Larger (500KB-5MB)

자주 묻는 질문

EPUB 2 리더를 위한 NCX 폴백이 포함된 EPUB 3.0 파일을 생성합니다. 출력은 Apple Books, Calibre, Kobo, Google Play Books 및 모든 주요 전자책 리더와 호환됩니다.

네! EPUB API는 전자책 PDF 변환 API와 정확히 동일한 JSON 구조(메타데이터, 챕터, 템플릿, 옵션)를 수용합니다. 엔드포인트 URL만 변경하면 PDF 대신 EPUB를 받을 수 있습니다.

7개 템플릿: 모던 소설, 엘레강트 소설, 학술 논문, 비즈니스 보고서, 요리책, 여행 가이드, 기술 매뉴얼. 각 템플릿은 전자책 리더에 최적화된 고유한 CSS 스타일링을 제공합니다.

metadata.language를 21개 이상의 ISO 코드(en, bg, de, fr, es, it, pt, ru, uk, pl, nl, tr, ja, zh, ko, ar, cs, ro, el, sr, hr) 중 하나로 설정하세요. 섹션 제목, 챕터 번호 및 저작권 텍스트가 자동 번역됩니다.

네. metadata.cover_image를 공개 URL(JPG, PNG, WebP)로 설정하세요. 이미지가 다운로드되어 EPUB 파일에 표지 페이지로 직접 임베드됩니다.

EPUB 생성 1회당 2크레딧입니다. 템플릿 엔드포인트는 무료(0크레딧)입니다. 크레딧은 $10부터 패키지로 구매할 수 있습니다.

EPUB 생성은 매우 빠릅니다 — 최대 100챕터 도서의 경우 일반적으로 5~50ms. 외부 도구나 컨테이너가 필요 없으며 모든 것이 순수 PHP로 구축되어 있습니다.

생성된 EPUB 파일은 30일간 저장된 후 자동 삭제됩니다. 파일을 신속히 다운로드하거나 자체 CDN에 저장하세요.

예. 오류가 발생한 요청을 포함하여 모든 요청은 크레딧을 소비합니다. 크레딧은 성공 또는 실패와 관계없이 요청 수에 연결됩니다. 오류가 당사 플랫폼 문제로 인한 것이 분명한 경우 영향을 받은 크레딧을 복원합니다(현금 환불 없음).

[email protected]로 문의하세요. 피드백을 진지하게 받아들입니다—버그 리포트나 기능 요청이 의미 있는 경우 API를 빠르게 수정하거나 개선하고 감사의 표시로 50 무료 크레딧을 제공합니다.

API와 때로는 엔드포인트에 따라 다릅니다. 일부 엔드포인트는 외부 소스의 데이터를 사용하며 더 엄격한 제한이 있을 수 있습니다. 남용을 방지하고 플랫폼 안정성을 유지하기 위해 제한도 적용합니다. 각 엔드포인트의 구체적인 제한은 문서를 확인하세요.

크레딧 시스템으로 운영됩니다. 크레딧은 API 호출과 도구에 사용하는 선불, 환불 불가 단위입니다. 크레딧은 FIFO(오래된 것부터) 방식으로 소비되며 구매일로부터 12개월간 유효합니다. 대시보드에 각 구매 날짜와 만료일이 표시됩니다.

예. 구매한 모든 크레딧(소수 잔액 포함)은 구매일로부터 12개월간 유효합니다. 미사용 크레딧은 유효 기간 종료 시 자동으로 만료되어 영구 삭제됩니다. 만료된 크레딧은 복원하거나 현금 또는 기타 가치로 전환할 수 없습니다. 경과 규칙: 2025년 9월 22일 이전에 구매한 크레딧은 2025년 9월 22일에 구매한 것으로 처리되어 2026년 9월 22일에 만료됩니다(구매 시 더 이른 만료일이 명시되지 않은 한).

예—유효 기간 내에서 이월됩니다. 미사용 크레딧은 계속 사용 가능하며 구매 후 12개월 만료까지 매월 이월됩니다.

크레딧은 환불 불가입니다. 필요한 만큼만 구매하세요—나중에 언제든 충전할 수 있습니다. 플랫폼 오류로 인해 청구가 실패한 경우 조사 후 영향을 받은 크레딧을 복원할 수 있습니다. 현금 환불 없음.

가격은 달러가 아닌 크레딧으로 설정됩니다. 각 엔드포인트에는 자체 비용이 있습니다—위의 "크레딧 / 요청" 배지를 참조하세요. 항상 정확한 지출 금액을 알 수 있습니다.
← API로 돌아가기