relayted API

Service

websitepro

Give it a URL, get the page back as Markdown, plain text, metadata, clean HTML or PDF. The page is fetched over HTTP first; if that yields too little (JavaScript pages, blocked requests), a real Chromium renders it.

POST/v1/websitepro/jobs[?wait=seconds]
POST/v1/websitepro/quote same body, free, nothing is fetched

Request

FieldTypeDescription
urlstring, requiredhttp:// or https://, public host, no credentials in the URL.
outputsarray, requiredOne or more of metadata, markdown, text, html, pdf. Each is one result. The page is fetched once for all of them.
curl -s "https://api.relayted.de/v1/websitepro/jobs?wait=20" \
  -H "Authorization: Bearer $RELAYTED_KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/article","outputs":["markdown","metadata","pdf"]}'

Outputs and prices

OutputContent typeNotes
metadataapplication/jsonTitle, description, language, canonical URL, Open Graph, Twitter cards, JSON-LD, icons.
markdowntext/markdownThe main content (readability extraction), navigation and boilerplate removed.
texttext/plainThe same content without any markup.
htmltext/htmlSanitised: no scripts, handlers or styles, absolute links. Served as a download, never rendered by us.
pdfapplication/pdfRendered by Chromium.

Response

{
  "job": {
    "id": "Zq3...", "service": "websitepro", "target": "example.com", "status": "completed",
    "cost": 215, "refunded": 150, "charged": 65,
    "results": [
      { "key": "metadata", "status": "done", "price": 20, "url": ".../results/metadata", "contentType": "application/json; charset=utf-8", "bytes": 912 },
      { "key": "markdown", "status": "done", "price": 45, "url": ".../results/markdown", "contentType": "text/markdown; charset=utf-8", "bytes": 5120 },
      { "key": "pdf", "status": "failed", "price": 150, "refunded": true, "error": "browser_failed" }
    ]
  },
  "balance": 49935
}

In this example the PDF could not be rendered and its price came back automatically.

Error codes of this service

CodeWhen
no_outputoutputs is empty or contains no known output.
bad_urlNot a valid http(s) URL, or it contains credentials.
blocked_addressThe host is private, local or reserved.
unreachableThe host does not resolve. As a result error: the page could not be loaded.
busyThe queue is full (503). Retry shortly.
Result errors (in results[].error, always refunded): for example unreachable, timeout, not_html, empty, too_large, too_many_redirects, browser_failed, worker_lost, internal. Treat unknown codes as "not delivered".

Notes