{"openapi":"3.1.0","info":{"title":"HTML to Markdown API","version":"1.0.0","description":"Convert HTML into clean GitHub-Flavored Markdown. Pass an HTML string, or a live page URL to fetch and convert, and get back tidy Markdown — headings, bold/italic, links, images, lists, blockquotes, code blocks, plus GFM tables, strikethrough and task lists. Script, style and head elements are stripped automatically. Tune the output: ATX or setext headings, the bullet marker, fenced or indented code blocks, inline or referenced links, and the emphasis/strong delimiters; toggle GFM on or off. The inverse of a Markdown-to-HTML renderer. Pure local conversion (the optional URL fetch aside) — no key, no third-party service, instant. Live. 3 endpoints. Built for content migration, web clipping and \"save as Markdown\", scraping cleanup, CMS import and documentation pipelines.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/htmltomarkdown-api","description":"oanor gateway"}],"tags":[{"name":"Convert"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/convert":{"get":{"operationId":"get_v1_convert","tags":["Convert"],"summary":"HTML string to Markdown","description":"","parameters":[{"name":"html","in":"query","required":true,"description":"HTML to convert","schema":{"type":"string"},"example":"<h1>Title</h1><p>Hello <b>world</b></p>"},{"name":"heading_style","in":"query","required":false,"description":"atx|setext","schema":{"type":"string"}},{"name":"bullet","in":"query","required":false,"description":"-|*|+","schema":{"type":"string"}},{"name":"gfm","in":"query","required":false,"description":"true|false (tables, strikethrough)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"length":24,"markdown":"# Title\n\nHello **world**"},"meta":{"timestamp":"2026-06-02T16:51:57.866Z","request_id":"ab43f6ed-3e05-4f25-b050-1ebc7535bf29"},"status":"ok","message":"HTML string to Markdown","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/from-url":{"get":{"operationId":"get_v1_from_url","tags":["Convert"],"summary":"Fetch a URL and convert to Markdown","description":"","parameters":[{"name":"url","in":"query","required":true,"description":"Web page URL","schema":{"type":"string"},"example":"https://example.com"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"url":"https://example.com/","length":167,"markdown":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)"},"meta":{"timestamp":"2026-06-02T16:51:58.018Z","request_id":"b281d36e-d61b-461c-a05f-64691ab9d612"},"status":"ok","message":"Fetch a URL and convert to Markdown","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"auth":"none upstream; this gateway requires x-api-key","name":"HTML to Markdown API","note":"Convert HTML to GitHub-Flavored Markdown. /v1/convert?html=... for a string, /v1/from-url?url=... to fetch and convert a live page. Options: heading_style (atx|setext), bullet (-|*|+), code_block (fenced|indented), link_style (inlined|referenced), em/strong delimiters, gfm=true|false (tables, strikethrough, task lists). script/style/head are stripped. Instant, nothing stored.","source":"Local conversion (turndown + GFM) — no key, no upstream","endpoints":3},"meta":{"timestamp":"2026-06-02T16:51:58.109Z","request_id":"12c4048b-01dc-4f66-82d8-ed404f626538"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1440,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":620,"monthly_call_quota":25000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2580,"monthly_call_quota":176000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6180,"monthly_call_quota":900000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/htmltomarkdown-api"}