Fetch any public web page and get back clean, LLM-ready markdown (polite, robots-respecting)
设计与多媒体
EnConvert
试用Render web pages and files into agent-ready markdown, structured data, screenshots, and PDFs via EnConvert, with a render_quality honesty score on every read.
它能做什么
Render web pages and files into agent-ready markdown, structured data, screenshots, and PDFs via EnConvert, with a render_quality honesty score on every read.
技能文档
EnConvert
EnConvert renders web pages and files into agent-ready data: clean markdown,
structured JSON, screenshots, and PDFs. Every page read comes back with a
render_quality score (0.0-1.0) — an honesty signal for how well the page actually
rendered, so a blocked, empty, or bot-walled page is flagged rather than silently trusted.
Use this skill when the task involves: reading a URL into markdown, searching the web, crawling a site for its URLs, extracting structured fields from pages, or converting an uploaded/hosted file into markdown or PDF.
Authentication
- Base URL:
https://api.enconvert.com - Header:
X-API-Key:on every EnConvert API call. NeverAuthorization: Bearer. - The key is the user's private key (prefix
sk_). Read it from theENCONVERT_API_KEYsecret/env. Never hardcode it, never print it, never put it in a URL. Publicpk_keys are rejected with403. - Validate a key before real work with
GET /v1/whoami(headerX-API-Key):200 {"project_id":..., "plan_slug":...}means good;401/403means missing, invalid, or apk_key was used.
Two fetches in this skill deliberately carry no
X-API-Keyheader: (1) downloading a user-supplied source file URL before a convert, and (2) fetching apresigned_url/ signed output URL. Sending the key to those would leak it to a third-party host. See below.
Operations
1. Perceive URL
Read one URL into agent-ready outputs.
- Method / URL:
POST /v2/perceive - Headers:
X-API-Key,Content-Type: application/json - Body (JSON):
url(string, required)outputs(string[], optional) — default["markdown","structured"]. Allowed:markdown,html_cleaned,html_raw,screenshot,screenshot_full_page,pdf,links,images,structured.only_main_content(bool, optional) — strip nav/footer/boilerplate.
- Response:
{ "render_quality": 0.0-1.0, "outputs": { "": { "url", "object_key", "size_bytes", "content_type", "expires_in" } }, "structured": {...}, "status", ... }- Every artifact under
outputsis a 15-minute signed URL, markdown included — never inline text.outputs.markdown.urlis a URL you mustGET(with noX-API-Key) to read the page. Same forhtml_cleaned,html_raw,screenshot,screenshot_full_page,pdf,links,images. structuredis the exception: it comes back inline at the top level of the response, not underoutputs.- Always read
render_quality. A low score means the render is degraded (bot wall, empty body, JS that never settled) — surface it, don't present the content as reliable.
- Every artifact under
2. Web Search
- Method / URL:
POST /v2/lookup - Headers:
X-API-Key,Content-Type: application/json - Body (JSON):
query(string, required)category(optional) —web(default) |news|images|scholar|patents|mapsnum_results(int, optional, default 10),page(int, optional)country,locale,location(strings, optional)time_filter(optional) —hour|day|week|month|yearautocorrect(bool, optional)
- Response:
{ "results": [ { "title", "url", "snippet", "position" }, ... ], ... }
3. Discover URLs
Enumerate the URLs of a site (for a follow-up perceive/distill).
- Method / URL:
POST /v2/discover - Headers:
X-API-Key,Content-Type: application/json - Body (JSON):
url(string, required)mode(optional) —sitemap|crawl|hybrid(default)max_urls(int, optional, default 100),max_depth(int, optional, default 2)include_patterns/exclude_patterns(string[], optional)same_domain_only(bool, optional, defaulttrue)respect_robots(bool, optional, defaultfalse)
- Response:
{ "urls": [ ... ], "total", ... }
4. Extract Structured (Distill)
Pull typed fields off one or many pages against a schema.
- Method / URL:
POST /v2/distill - Headers:
X-API-Key,Content-Type: application/json - Body (JSON):
schema(object, required) — a JSON-Schema{"type":"object","properties":{...}}or a flat{ "field": "description" }map.- Provide exactly one source:
urls(string[], max 50), ordiscover_from(object) —{ "url", "max_pages"?, "mode"? }to crawl then extract.
css_schema,wait_for(optional)
- Response:
{ "operation_id", "total", "completed", "failed", "total_cost_cents", "results": [ { "url", "status", "data", "extraction_tier", "render_quality", ... } ] }— the extracted fields are per URL, inresults[].data. There is no top-leveldataorextraction_tier.
5. Convert File to Markdown
Convert any uploaded/hosted file (PDF, DOCX, PPTX, XLSX, HTML, ...) into markdown.
- Method / URL:
POST /v1/convert/anything-to-markdown - Headers:
X-API-Key(do not setContent-Typeyourself — the multipart boundary sets it) - Body:
multipart/form-datawith a single field namedfile(the file bytes). - Response:
{ "presigned_url": "...", ... }— the markdown output. Fetchpresigned_urlwith a plain GET and noX-API-Keyheader.
When the user gives a URL, not a local path (the normal case on an agent platform):
GETthe source URL to get the bytes — noX-API-Keyheader (it is a third-party host).POSTthose bytes as multipart fieldfileto the endpoint above withX-API-Key.- Read
presigned_urlfrom the JSON, thenGETit withoutX-API-Keyfor the result.
The bundled scripts/convert.sh does exactly this end to end (see Examples).
6. Convert File to PDF
Same contract as #5, different endpoint and output.
- Method / URL:
POST /v1/convert/anything-to-pdf - Headers / Body: identical to #5 — multipart field
file,X-API-Key, no manualContent-Type. - Response:
{ "presigned_url": "...", ... }— the PDF. Fetch it with noX-API-Key. - URL-in flow: identical to #5 (download source with no key → multipart post with key → fetch presigned result with no key).
Fetching signed / presigned URLs
All output URLs — perceive's screenshot/pdf/html_* (15-minute signed) and convert's
presigned_url — are pre-authenticated. Fetch them with a plain GET and NO X-API-Key
header. Adding the key leaks your credential to the storage host and is unnecessary; the
signature in the URL is the auth.
Usage examples
Perceive a URL to markdown:
curl -sS -X POST https://api.enconvert.com/v2/perceive \
-H "X-API-Key: $ENCONVERT_API_KEY" -H "Content-Type: application/json" \
-d '{"url":"https://example.com","outputs":["markdown"],"only_main_content":true}'
# -> read .render_quality first, then GET .outputs.markdown.url (no X-API-Key)
Convert a PDF URL to markdown (download-then-multipart, key never touches the source host):
scripts/convert.sh markdown "https://example.com/whitepaper.pdf"
# prints the presigned_url of the markdown result; GET it without the key
Search, then perceive the top result:
TOP=$(curl -sS -X POST https://api.enconvert.com/v2/lookup \
-H "X-API-Key: $ENCONVERT_API_KEY" -H "Content-Type: application/json" \
-d '{"query":"open source vector database","num_results":5}' \
| grep -o '"url":"[^"]*"' | head -n1 | cut -d'"' -f4)
curl -sS -X POST https://api.enconvert.com/v2/perceive \
-H "X-API-Key: $ENCONVERT_API_KEY" -H "Content-Type: application/json" \
-d "{\"url\":\"$TOP\",\"outputs\":[\"markdown\"]}"
Errors
401/403— key missing, invalid, or a publicpk_key was used. Use a privatesk_key from https://www.enconvert.com/dashboard/api-keys.422— bad body (e.g. distill given bothurlsanddiscover_from, or neither).- Low
render_qualityis not an HTTP error — it is a content-quality warning inside a200. Check it on every perceive.
相关技能
Convert PDF documents to PowerPoint presentations via GoAI API. Use when the user asks to convert PDF to PPT, turn a PDF into slides, make a presentation fro...
将 PDF 和图片转换为 10 种文档或数据格式,并提供 OCR 与版面分析控制。
MarkItDown Hosted Markdown Generator: Convert files to Markdown. Supports PDF, Word (.docx), Excel (.xlsx/.xls), PowerPoint (.pptx), HTML, CSV, JSON, XML, im...
Convert Word (.doc, .docx), PowerPoint (.ppt, .pptx), Excel (.xls, .xlsx), OpenDocument (.odt, .ods, .odp), RTF, EPUB, CSV, and PDF files to GitHub-Flavored Markdown. Use when a task needs the contents of an office document, spreadsheet, presentation, ebook, or PDF you cannot read directly.
Convert unstructured documents into LLM-ready structured data. Supports PDF, Word, PPT, and images; extracts paragraphs, formulas, tables, charts, and other...