# URL to markdown API for your agent

URL to markdown API for an agent: it sends a page URL to a catalog endpoint and reads markdown text, page title and description back. Several providers sell the call, so the agent tries the cheapest first. You pay per call, and a failed call costs nothing.

## What this does

Raw HTML is mostly menus, scripts and styling. An agent that reads it spends tokens on noise and can still miss the article. Turning the page into markdown first keeps the headings, lists, links and code, and drops the rest.

The providers differ in how they load the page. Steel opens it in a browser before it reads it, Linkup renders JavaScript when you ask, and Firecrawl can wait and run actions such as a click first. Context.dev turns a YouTube link into the video's transcript, and Jina reports how many tokens the text holds.

You give: a page URL. Example: https://docs.example.com/getting-started.

## What differs between providers

- Jina Search Foundation API (jina-reader): returns the main content as markdown with the title, metadata, external links and the token count.
- Context API (context-dev-web-scrape-markdown): can keep only the main content, keep or drop links and images, wait for the page, fetch it from a given country, and reads YouTube links as transcripts.
- Linkup (linkup-fetch): returns the page as clean markdown in standard or pro mode, and renders JavaScript first on request.
- Steel API (steel-scrape): loads the page in Steel's browser, waits up to 10 seconds if asked, and can add a screenshot or a PDF.
- Firecrawl API (firecrawl-scrape): returns markdown and metadata, and can wait, run page actions, read the mobile version or fetch from a location.

## Before you start

- Send the full URL with https:// in front. One provider here rejects a link without it.
- A page built in JavaScript can come back nearly empty from a plain fetch. Use a browser endpoint for it, or Linkup with JavaScript rendering on.
- Long pages make long markdown. Jina returns the token count of its answer, so your agent can check the size before it passes the text on.
- Each call reads one URL. To read many pages, your agent loops over the links and you pay per page.

## Prompt

Use looot to read https://docs.example.com/getting-started as markdown, keep the headings, lists and code blocks, drop the menus and footer, and give me the page title with the text. 1. Set up https://looot.ai/skill.md. 2. Search the catalog for each step and check its price before you call. 3. Run the cheapest endpoint that fits. 4. Show the results as a table and the total cost.

## Steps and providers

- Read the page as markdown: jina, context-dev, linkup, steel, firecrawl. 1 call per page.

## What comes back

- Markdown text
- Page title
- Description and language
- Links on the page
- Screenshot on some providers

## The request and what comes back

Each run is one POST to /v1/runs with an endpoint id and an input. These are illustrative calls with generic values. The run's result holds the provider's own fields.

- Jina Search Foundation API: {"endpointId":"jina-reader","input":{"url":"https://docs.example.com/getting-started"},"wait":30}
- Context API: {"endpointId":"context-dev-web-scrape-markdown","input":{"url":"https://docs.example.com/getting-started"},"wait":30}

## What it cannot do

It does not sign in to sites, so a page behind a login or a paywall comes back as the login page or empty. It reads one URL per call and does not crawl a whole site. Checking a page for changes on a timer needs scheduled runs, not available yet.

## What is a URL to markdown API?

It is an endpoint that takes a link, fetches the page and returns its main content as markdown. Your agent gets the text with its headings and links, without the menus and scripts, ready to read or store.

## How do I convert a web page to markdown for an LLM?

Send the page URL to one of the endpoints on this page and read the markdown in the run's result. Your agent can then quote it, summarise it or split it into chunks.

## Is this the Jina Reader API?

Jina Reader is one of the endpoints on this page, billed per call through your looot key. The looot page for Jina at /mcp/jina covers its MCP server and its other tools.

## Can it convert HTML I already have?

No. Every endpoint here takes a URL and fetches the page itself. If you hold the HTML already, convert it in your own code or publish it at a link the provider can reach.

## Can I read a page as a visitor from another country sees it?

Yes, with Context.dev or Firecrawl, which fetch the page from a location you set. The other endpoints fetch from wherever the provider runs.

## Does it work on YouTube links?

Context.dev returns the video's title, channel, description and transcript for a YouTube link. For transcripts at scale, the YouTube transcript API page compares the providers built for it.

## How much does one page cost?

You pay per call, and the price depends on the provider your agent picks. This page reads the cheapest live price from the catalog and shows no number when the catalog is unreachable.

## Do I pay when a URL to markdown call fails?

No. A call that fails at the provider costs nothing, and your agent can retry it or send it to another provider.

## Do I need an account with each URL to markdown provider?

No. One looot key reaches every provider in the catalog. You top up once, and each call is billed at the price shown before it runs.

## How do I call URL to markdown from code?

Send a POST to /v1/runs with the endpoint id, the input and a new idempotency key, and your looot token in the Authorization header. With wait set to 30, the answer comes back in the response when the run ends within 30 seconds. Otherwise poll GET /v1/runs/<runId>.

## Can I run URL to markdown on a schedule?

That needs scheduled runs, not available yet. Run it by hand whenever you want fresh results.

## Do I pay while my agent is idle?

No. looot bills per call, and nothing runs while your agent is idle.

## Related pages

- /use-cases/web-search-api
- /use-cases/youtube-transcript-api
- /use-cases/enrich-a-company

## Last reviewed

2026-10-04. The cost per 1,000 page runs is read live from the catalog on the web page.

## Agent skill for this page

https://looot.ai/use-cases/url-to-markdown-api/skill.md sets an agent up for exactly the jobs on this page, with the live price of each, and offers the page's starter task once the user has picked a job and seen the price. The line to give an agent is under "Give this to your agent" below.

## For agents

### Give this to your agent

```text
set up looot for URL to markdown API - https://looot.ai/use-cases/url-to-markdown-api/skill.md
```
