Web Data

Web Fetch API

Hand it a URL and get back clean markdown — the main article isolated and the chrome stripped — plus crawl and map modes for whole sites.

/fetchfree allowance included
api.apimitra.in /fetch
am@mitra ~ %$curl "https://api.apimitra.in/fetch?url=https://nextjs.org/blog/next-16"
{
"success": true,

"url": "https://nextjs.org/blog/next-16",

"final_url": "https://nextjs.org/blog/next-16",

"status_code": 200,

"content_type": "text/html",

"title": "Next.js 16",

"description": "Next.js 16 includes Cache Components, stable Turbopack...",

"content": "# Next.js 16 Ahead of our upcoming Next.js Conf...",

"format": "markdown",

"words": 1420,

"reading_time_min": 6,

"chars": 8903,

"lang": "en",

"site_name": "Next.js",

"image": "https://nextjs.org/og.png",

"canonical": "https://nextjs.org/blog/next-16",

"cached": false,

"took_ms": 711

}

4

output formats

100k

max characters

15 min

URL cache

SSRF-safe

private hosts blocked

About the API

What this endpoint does.

Feeding a page to an LLM usually means writing your own HTML-to-text pass and hoping it survives the next redesign. This endpoint does it server-side: give it a URL and it returns clean markdown with headings, links, lists, tables and fenced code intact, everything else flattened to text.

Not every job needs the body. Ask for format=json and you get just the metadata — title, description, og:image, canonical — without parsing the page at all. Two sibling routes extend the same idea: /crawl reads the page and follows its own links, and /map lists every link on it without fetching any of them.

Who builds on this

Built for the teams shipping real products.

  1. 01

    AI & RAG pipelines

    Turn any page into markdown you can chunk, embed or cite — no bespoke HTML cleaner to maintain.

  2. 02

    Research & analysis

    Read the article, not the nav, ads and cookie banner — main=1 typically shrinks the payload 5–10×.

  3. 03

    Site auditing

    /map lists every link on a page and /crawl follows them — a sitemap without writing a crawler.

Under the hood

What you send. What comes back.

Request

Inputs you send

  • urlrequired

    full URL or bare hostname — example.com → https://example.com.

  • formatoptional

    markdown (default), text, html, or json for metadata only.

  • mainoptional

    1 isolates the main article; 0 keeps the whole page. Omitted → 1.

  • maxoptional

    character cap, 500–100000. Omitted → 20000.

  • linksoptional

    1 also returns every link found on the page.

  • limitoptional

    /crawl: extra pages to follow (1–10). /map: max links (1–500).

  • same_hostoptional

    1 keeps /crawl and /map on the same domain. Omitted → 1.

Response

JSON you get back

  • content

    the page body in the format you asked for.

  • title / description

    parsed page metadata from the document head.

  • final_url

    the landing page after redirects — followed up to 5 hops.

  • words / reading_time_min

    length signals for the extracted text.

  • canonical · image · site_name

    SEO fields read from the page head.

  • cached

    true when the URL was served from the 15-minute cache.

  • pages

    /crawl only — one entry per followed link.

Try it

One call, real data.

Try it in the playground
/fetch?url=https://nextjs.org/blog/next-16
am@mitra ~ %$curl "https://api.apimitra.in/fetch?url=https://nextjs.org/blog/next-16"
{
"success": true,

"url": "https://nextjs.org/blog/next-16",

"final_url": "https://nextjs.org/blog/next-16",

"status_code": 200,

"content_type": "text/html",

"title": "Next.js 16",

"description": "Next.js 16 includes Cache Components, stable Turbopack...",

"content": "# Next.js 16 Ahead of our upcoming Next.js Conf...",

"format": "markdown",

"words": 1420,

"reading_time_min": 6,

"chars": 8903,

"lang": "en",

"site_name": "Next.js",

"image": "https://nextjs.org/og.png",

"canonical": "https://nextjs.org/blog/next-16",

"cached": false,

"took_ms": 711

}

Content is truncated here — ask for format=json when you only need the metadata.

Free tier

Ship on this API free, then pay only when your calls outgrow it.

  • A free monthly request allowance on your first key — enough to build and test.
  • The same key works across every endpoint, so you can switch APIs as you grow.
  • When the free requests end, upgrade to paid — your code and endpoints don’t change.

Every endpoint includes a free monthly request allowance — the size differs from API to API. When your free requests run out, you move to a paid plan with the same key. No card needed to start.

Start with Web Fetch, free.

Create an account and we’ll issue your free API key in minutes — this endpoint included.

© 2026 API Mitra. All rights reserved.

service statusMade in India