> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hydrafetch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Hydrafetch

> Turn any URL into clean, LLM-ready data through one API.

<div className="hf-wrap">
  <div className="hf-hero">
    <span className="hf-eyebrow">The web, LLM-ready</span>

    <h1 className="hf-title">
      Turn any URL into <span className="hf-acc">clean, LLM-ready data</span>.
    </h1>

    <p className="hf-sub">
      One API for scraping, crawling, search, and structured extraction. Point it at a
      link, a whole site, or a query. Get back Markdown, JSON, and structured entities a
      model can use right away.
    </p>

    <div className="hf-cta">
      <a className="hf-btn hf-btn-primary" href="/quickstart">Quickstart →</a>
      <a className="hf-btn hf-btn-ghost" href="https://app.hydrafetch.com">\$ Get an API key</a>
    </div>
  </div>

  <CardGroup cols={3}>
    <Card title="Scrape" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/markdown.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=99978311844d5cd234e2eda5718b96f8" href="/endpoints/scrape" width="18" height="18" data-path="icons/markdown.svg">
      One URL in, clean Markdown and structured data out. The core primitive.
    </Card>

    <Card title="Map" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/route.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=a90e59c4049b15132bda8bdb33dae436" href="/endpoints/map" width="18" height="18" data-path="icons/route.svg">
      Discover every URL on a site, fast, before you decide what to pull.
    </Card>

    <Card title="Crawl" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/spider-web.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=8e85f0aba01eebd1c66a46d77891383e" href="/endpoints/crawl" width="18" height="18" data-path="icons/spider-web.svg">
      Walk a whole site and scrape every page as one asynchronous job.
    </Card>

    <Card title="Search" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/globe-search.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=c6b1e0d936179bfd17cf422c976cde8e" href="/endpoints/search" width="18" height="18" data-path="icons/globe-search.svg">
      Run a query and get ranked results, each scraped to clean data.
    </Card>

    <Card title="Extract" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/brackets-sparkle.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=07468c79969f3468b9c0aed4e71ac90a" href="/endpoints/extract" width="18" height="18" data-path="icons/brackets-sparkle.svg">
      Pull schema-shaped JSON from pages, with per-field confidence and sources.
    </Card>

    <Card title="Media" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/image.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=0fea9a1d13e00de7a3a82e670ef0a255" href="/endpoints/media" width="18" height="18" data-path="icons/image.svg">
      Capture a full-page screenshot or collect a page's images.
    </Card>
  </CardGroup>

  ## Why Hydrafetch

  <Columns cols={2}>
    <Card title="LLM-ready by default" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/markdown.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=99978311844d5cd234e2eda5718b96f8" horizontal width="18" height="18" data-path="icons/markdown.svg">
      Output is clean Markdown and normalized structured data. No boilerplate, no
      navigation cruft, no half-rendered pages.
    </Card>

    <Card title="One surface for the whole job" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/layers.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=eed78667f725d33cd5193a7118a8ba5c" horizontal width="18" height="18" data-path="icons/layers.svg">
      Scrape, crawl, map, search, and extract share the same options and the same clean
      response shape.
    </Card>

    <Card title="Trustworthy extraction" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/target.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=379230e902df6dcb6c68987271563188" horizontal width="18" height="18" data-path="icons/target.svg">
      Structured extraction can return, per field, how confident it is and the exact
      passage a value came from.
    </Card>

    <Card title="Predictable cost" icon="https://mintcdn.com/hydrafetch/koPVMLXM3S4OTC3p/icons/gauge.svg?fit=max&auto=format&n=koPVMLXM3S4OTC3p&q=85&s=70970b1e5a9495b267194e7bbc11d0d7" horizontal width="18" height="18" data-path="icons/gauge.svg">
      Every call is billed in credits, charged only on success, and each response tells
      you what it consumed.
    </Card>
  </Columns>

  ## Your first call

  Send a URL, get clean Markdown back.

  <CodeGroup>
    ```bash cURL theme={"dark"}
    curl -X POST https://api.hydrafetch.com/v1/web/scrape \
      -H "X-API-Key: $HYDRAFETCH_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "url": "https://example.com" }'
    ```

    ```ts TypeScript theme={"dark"}
    const res = await fetch("https://api.hydrafetch.com/v1/web/scrape", {
      method: "POST",
      headers: {
        "X-API-Key": process.env.HYDRAFETCH_API_KEY!,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ url: "https://example.com" }),
    });

    const { data } = await res.json();
    console.log(data.markdown);
    ```

    ```python Python theme={"dark"}
    import os, requests

    res = requests.post(
        "https://api.hydrafetch.com/v1/web/scrape",
        headers={"X-API-Key": os.environ["HYDRAFETCH_API_KEY"]},
        json={"url": "https://example.com"},
    )
    print(res.json()["data"]["markdown"])
    ```
  </CodeGroup>

  ## How it works

  <Steps>
    <Step title="Get an API key">
      Every request carries your key in the `X-API-Key` header. See [Authentication](/authentication).
    </Step>

    <Step title="Call an endpoint">
      Send a URL, or a query, to the endpoint that fits your job. Most calls return clean
      data synchronously.
    </Step>

    <Step title="Get clean data back">
      Responses are LLM-ready: Markdown, structured entities, extracted JSON, links,
      summaries, or images.
    </Step>
  </Steps>

  ## Base URL

  All endpoints live under a single versioned base URL:

  ```
  https://api.hydrafetch.com/v1/web
  ```

  Ready to make your first call? Head to the [Quickstart](/quickstart).
</div>
