{"openapi":"3.1.0","info":{"title":"pdf2epub","description":"Convert PDFs to reflowable EPUB3","version":"0.1.0"},"paths":{"/pdf2epub":{"get":{"summary":"Landing","description":"Root route — serves the v2 landing page with commercial positioning.","operationId":"landing_pdf2epub_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/":{"get":{"summary":"Landing","description":"Root route — serves the v2 landing page with commercial positioning.","operationId":"landing__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/convert":{"post":{"summary":"Convert Pdf","operationId":"convert_pdf_convert_post","parameters":[{"name":"session_id","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_convert_pdf_convert_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/usage":{"get":{"summary":"Billing Usage","description":"Return current usage status for the session.","operationId":"billing_usage_billing_usage_get","parameters":[{"name":"session_id","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/checkout":{"post":{"summary":"Billing Checkout","description":"Create a Stripe Checkout session and return the redirect URL.","operationId":"billing_checkout_billing_checkout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/billing/portal":{"get":{"summary":"Billing Portal","description":"Redirect to Stripe Customer Portal for subscription management.","operationId":"billing_portal_billing_portal_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/success":{"get":{"summary":"Billing Success","description":"Post-checkout success page.","operationId":"billing_success_billing_success_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/billing/webhook":{"post":{"summary":"Billing Webhook","description":"Handle Stripe webhook events.","operationId":"billing_webhook_billing_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/unsubscribe":{"get":{"summary":"Unsubscribe","description":"One-click unsubscribe from onboarding emails.","operationId":"unsubscribe_unsubscribe_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/landing":{"get":{"summary":"Staging Landing","description":"Redirect /landing to root — v2 copy is now the default.","operationId":"staging_landing_landing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pricing":{"get":{"summary":"Pricing Page","description":"Pricing page with tier cards.","operationId":"pricing_page_pricing_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/premium":{"get":{"summary":"Premium Page","description":"Premium Verification service page.","operationId":"premium_page_premium_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/robots.txt":{"get":{"summary":"Robots Txt","description":"robots.txt for search engines.","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","description":"XML sitemap for SEO.","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/blog":{"get":{"summary":"Blog Index","description":"Blog index — listing all SEO posts.","operationId":"blog_index_blog_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/convert-pdf-to-reflowable-epub":{"get":{"summary":"Blog Reflowable Epub","description":"Blog post: How to convert PDF to reflowable EPUB.","operationId":"blog_reflowable_epub_blog_convert_pdf_to_reflowable_epub_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/pdf-to-epub-accessibility":{"get":{"summary":"Blog Accessibility","description":"Blog post: PDF to accessible EPUB for libraries and accessibility teams.","operationId":"blog_accessibility_blog_pdf_to_epub_accessibility_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/best-pdf-to-epub-converter-screen-readers":{"get":{"summary":"Blog Best Screen Reader Converter","description":"Blog post: selecting the best PDF-to-EPUB converter for screen-reader use.","operationId":"blog_best_screen_reader_converter_blog_best_pdf_to_epub_converter_screen_readers_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/arxiv-pdf-to-epub-kindle":{"get":{"summary":"Blog Arxiv","description":"Blog post: How to read arXiv papers on Kindle and e-readers.","operationId":"blog_arxiv_blog_arxiv_pdf_to_epub_kindle_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/eaa-2026-pdf-to-epub3-accessibility":{"get":{"summary":"Blog Eaa 2026","description":"Blog post: How PDF-to-EPUB3 Conversion Satisfies the European Accessibility Act (2026).","operationId":"blog_eaa_2026_blog_eaa_2026_pdf_to_epub3_accessibility_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/convert-academic-papers-pdf-to-epub":{"get":{"summary":"Blog Academic","description":"Redirect to arXiv post (kept for backcompat).","operationId":"blog_academic_blog_convert_academic_papers_pdf_to_epub_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/pdf-to-epub-self-publishing-kindle":{"get":{"summary":"Blog Self Publishing","description":"Blog post: Convert PDF manuscript to EPUB for Kindle and self-publishing.","operationId":"blog_self_publishing_blog_pdf_to_epub_self_publishing_kindle_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/pdf-to-epub-api-python":{"get":{"summary":"Blog Api Python","description":"Blog post: Convert PDF to EPUB3 programmatically with Python.","operationId":"blog_api_python_blog_pdf_to_epub_api_python_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"Body_convert_pdf_convert_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_convert_pdf_convert_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}