# Choosing an endpoint

Pick the right endpoint when two look alike — scrape or fetch, which bulk API, schema or scrape, which monitor type, and search or sitemap.

Several ByteKit endpoints overlap. Each choice below says which one to use and links to the guide with the detail.

## Scrape or fetch

Use [`/v1/scrape`](https://bytekit.com/docs/guides/scraping) when you want a JSON envelope with the content as `raw`, `markdown`, `links` or `images`, plus metadata, or when you need rendering options or `async`.
Use [`/v1/fetch`](https://bytekit.com/docs/guides/fetch) when you want the target's response as the body of a successful reply instead of a JSON envelope, with metadata in `X-Fetch-*` headers; it takes no `format`, and a scrape format such as `markdown` returns `400 validation_error` that points at `/v1/scrape` ([details](https://bytekit.com/docs/guides/fetch#when-to-use-v1scrape-instead)).

## Which bulk API

Use [`/v1/bulk`](https://bytekit.com/docs/guides/bulk#which-bulk-api-to-use) when the job includes screenshots, alone or together with scrapes.
Use [`/v1/scrape/bulk`](https://bytekit.com/docs/guides/bulk#scrapes-only) for a job of scrapes and [`/v1/fetch/bulk`](https://bytekit.com/docs/guides/bulk#raw-fetches) for a job of raw fetches.

## Schema or scrape

Use [`/v1/schema`](https://bytekit.com/docs/guides/schema-extraction) when you want only data from a page as a JSON object that follows a JSON Schema you supply; today a successful extraction costs 10 credits plus the page's bandwidth ([Cost](https://bytekit.com/docs/guides/schema-extraction#cost)).
Use [`/v1/scrape`](https://bytekit.com/docs/guides/scraping) when you want the page's content itself, or when you also want that object in the same response, by adding a `json` entry to `formats`; the entry costs 10 credits, charged only when the extraction validates, on top of the scrape's own bandwidth charge ([`json` entry](https://bytekit.com/docs/api/scrape/createscrape)).

## Screenshot monitor or scrape monitor

Set `type` to `screenshot`, the default, to detect visual change: it compares perceptual hashes of successive captures and alerts when the change reaches `change_threshold` ([Monitors](https://bytekit.com/docs/guides/monitors)).
Set `type` to `scrape` to detect content change: it alerts when the content hash differs from the previous capture's ([Monitors](https://bytekit.com/docs/guides/monitors)).

## Search or sitemap

Use [`/v1/search`](https://bytekit.com/docs/guides/search) to find URLs from a query; it returns ranked results and costs credits.
Use [`/v1/sitemap`](https://bytekit.com/docs/guides/sitemap) to discover the URLs on one domain; it starts a job whose results you download as a file.