ScraperFlyAI-ready Web Data API

developer api

Parse Website Content API for parser-ready public pages

Capture public website content in the format your own parser can use. ScraperFly helps teams fetch source HTML, render JavaScript when needed, and return HTML, text, Markdown, JSON metadata, screenshots, or PDFs before downstream extraction, classification, enrichment, and storage take over.

Parser-ready capture

Turn public pages into clean inputs your own parser can trust

Parsing website content starts before extraction rules are written. Your team needs to know what the public page actually returns, whether the useful content is in source HTML or rendered output, and which response format will make downstream parsing easier instead of noisier.

ScraperFly gives developers a practical capture layer for public website content. Fetch the page, inspect the response, choose HTML, text, Markdown, metadata, screenshots, or PDFs, and keep the parsing logic, classification, enrichment, and storage inside your own product where the business rules belong.

source captureparser-friendly outputcontrolled escalation
Team reviewing a website content parsing workflow from public page to HTML, text, Markdown, metadata, and parser-ready output

What is a parse website content API?

A parse website content API is useful when it gives your application dependable page input for a parser, content pipeline, search index, AI workflow, archive, or quality review system. The API should capture the public page reliably and return enough structure for your downstream code to decide what matters.

ScraperFly focuses on the capture and response layer. It can return raw or rendered HTML when DOM structure matters, text when the parser only needs readable content, Markdown when headings and links help review or AI ingestion, JSON metadata when logs need operational context, and visual files when a human needs proof of how the page appeared.

Practical takeaway: use ScraperFly to capture public website content cleanly, then keep target-specific parsing rules in the system that understands your data model.

What should happen before building parsing rules?

The expensive mistake is writing parsers against an imagined page shape. A public website may expose useful content in the first HTML response, hide it behind client-side rendering, repeat it in navigation, move it into metadata, or return a small shell that tells you very little until a browser runs. The first job is to prove the capture shape.

Start with a simple request, inspect status, final URL, content type, response size, and body content, then decide what the parser should consume. If source HTML already contains the target content, keep the request lightweight. If JavaScript changes the result, test rendered output. If the pipeline is AI-facing, compare clean text and Markdown before building converters.

QuestionWhat to inspectBetter decision
Is the useful content already present?Source HTML, response size, headings, links, tables, product cards, article body, or embedded metadata.Use a lightweight HTML or text request when the first response is enough.
Does JavaScript create the final page?Compare source HTML with rendered HTML and visible page state.Enable rendering only when browser execution changes the captured content.
Does the parser need DOM structure?Selectors, attributes, lists, links, pagination, structured tables, and repeated blocks.Use HTML when structural relationships matter.
Is the consumer an AI or review workflow?Readable headings, links, article sections, boilerplate, and repeated layout noise.Try text or Markdown before building a custom cleanup layer.
Does the result need evidence?Status, final URL, content type, screenshot, PDF, or archive artifact.Add metadata or visual output when debugging, QA, compliance, or review needs proof.

Which output format is best for parsing website content?

No single format is best for every parser. HTML is powerful when the extraction logic needs DOM structure, but it also brings navigation, layout, scripts, and repeated template noise. Text is compact and easy to search, but it removes most structural context. Markdown is useful for readable content workflows because headings, links, and lists remain easier to understand. Metadata helps debug the request without forcing the parser to infer everything from the body.

The practical path is to test two or three outputs on real target pages before production. A parser for article content may prefer Markdown. A link discovery job may need HTML. A monitoring job may combine text with JSON metadata. A QA workflow may attach screenshots or PDFs only for records that need visual review.

OutputUse it whenWatch the trade-off
HTMLThe parser needs selectors, attributes, links, tables, embedded data, or repeated DOM patterns.Requires cleanup and target-specific parsing logic.
Rendered HTMLThe source response is incomplete until JavaScript builds the page.Heavier than a basic request, so enable it for proven targets.
TextThe workflow needs compact readable content for matching, search, summaries, or classification.Structural context is reduced.
MarkdownHeadings, links, lists, and readable sections help AI, RAG, documentation, or analyst review.Not a replacement for precise DOM extraction.
JSON metadataLogs need final URL, status, content type, timing, or response context.Metadata explains the request; it does not invent custom target fields.
Screenshot or PDFA reviewer or archive needs visual proof of the public page state.Less convenient for machine parsing and heavier than text output.

Compare the full format set on the web scraping API response formats page, then test a real URL in the API Builder.

When does rendering help a content parser?

Rendering helps when browser execution changes the useful content. This is common on pages that hydrate article bodies, product cards, listings, reviews, comments, search results, or route-specific content after the first HTML response. It is not a badge of quality by itself. Rendering every page can make a parser slower, heavier, and harder to reason about.

A good parser workflow compares raw source capture with rendered capture before choosing a default. If raw HTML contains the data, keep the simple path. If the page returns an empty shell, delayed content, or a different final DOM after client-side code runs, use the JavaScript rendering API and choose the smallest useful output after rendering.

Where should parsing logic live?

ScraperFly should not be treated as a black box that magically knows every target's business meaning. Your product knows which price matters, which article section is important, which review fields are acceptable, which page variants are valid, and how extracted content should be stored. That logic belongs in your application.

ScraperFly makes that application easier to build by handling the request layer: fetching public pages, rendering when needed, preserving headers or sessions when the target requires context, routing through a country when public content differs by location, and returning formats that reduce cleanup work. Your parser can then focus on the target-specific rules that create value.

For basic markup capture, see the HTML scraping API. For readable downstream inputs, compare the HTML to text parser API and HTML to Markdown parser API pages.

How does ScraperFly keep parsing workflows practical?

Parsing projects often begin with unknown targets. Some pages are simple. Some need rendering. Some need headers, cookies, country targeting, or premium routing. Some should not be scaled until the response shape is proven. ScraperFly supports that incremental path instead of forcing the heaviest request profile from day one.

Start free, test representative target pages, and keep each source on the lightest request profile that returns complete usable content. Use pay-as-you-go credits while target behavior and volume are still uncertain, then move recurring parser workloads to monthly credits once demand is predictable. That keeps engineering effort and request cost tied to evidence, not guesswork.

Practical takeaway: the best website content parser starts with a proven capture shape, a small set of response formats, and a clear upgrade path for harder targets.

Parser request builder

Build a capture request around the format your parser actually needs

Use the API Builder to test a public page, compare source HTML with rendered output, and copy a request shape that gives your parsing workflow clean input instead of more cleanup work.

Markup
Markup

HTML and rendered HTML

Capture source structure for selectors and links, or render when JavaScript builds the useful page state.

Readable inputs
Readable inputs

Text, Markdown, and metadata

Return compact text, readable Markdown, and request metadata that helps parsing logs explain what happened.

Evidence
Evidence

Screenshots and PDFs

Attach visual records when QA, review, compliance, or archive workflows need proof of the captured public page.

Request controls for parser-friendly capture

url

The public page your parser should inspect.

format

Choose html, text, markdown, json, screenshot, or pdf based on the parser consumer.

render

Run browser execution when source HTML does not contain the useful content.

render_wait

Wait when content appears after a delayed client-side load.

keep_headers

Forward allowed headers when the target needs legitimate request context.

country

Use country routing when public content differs by location.

cURL example

Generate Markdown with the same request shape you can move into production

curl "https://scraperfly.com/api/v1?url=https%3A%2F%2Fexample.com&format=markdown" \
  -H "apikey: YOUR_API_KEY"

Target fit

Choose parser inputs based on what the target page actually returns

A strong parsing workflow starts by checking source HTML, rendered state, response size, redirects, headers, content type, and repeated page structure. ScraperFly helps teams prove those signals before they turn a parser into a recurring job.

Raw HTML response mapped to visible page data
01

Raw HTML availability

Check whether the fields you need are already present in the first HTML response.

Best first test for simple pages, articles, docs, listings, and product details.

Before and after JavaScript rendering comparison
02

JavaScript dependency

Compare raw HTML with the rendered DOM or screenshot before turning on browser rendering.

Use rendering when raw HTML is only a shell and scripts create the useful content.

Cookies, consent, session and access context for scraping
03

State & access context

Identify whether cookies, consent, login boundaries, pagination, or the same visitor state affect the response.

Use sessions and headers when continuity changes the data you receive.

Regional content variations across countries and routes
04

Geo/content variation

Test whether country, language, currency, inventory, SERP, ads, or route reputation changes the result.

Use geo or premium routing only when the target proves the response varies by route.

Parser questions worth answering early

Where is the target field?

Find whether the field exists in raw HTML, rendered DOM, an API call, structured data, a file, or a later interaction state.

What changes the response?

Sample a few URLs and compare status, final URL, content length, redirects, empty states, and visible result differences.

What context is required?

Mark any dependency on consent, locale, cookies, headers, authentication boundary, pagination, filters, or previous requests.

What does failure look like?

Define the signals for blocked, partial, stale, redirected, empty, timed-out, or region-mismatched responses before scaling.

Signals to inspect before writing selectors

Fetch mode

Raw HTML availability decides whether the first request can stay simple or needs rendering, waits, screenshots, or extraction.

Request context

State requirements decide whether to add headers, cookies, sessions, consent handling, or a stable visitor profile.

Routing choice

Geo and reputation findings decide whether standard routing is enough or a country/premium route is justified.

Validation rules

Known failure states become checks for retries, escalation, QA review, and deciding when a lighter profile is still complete.

ScraperFly fit

A practical middle path between raw page access and overpromised extraction

ScraperFly is built for teams that want dependable public page capture, flexible response formats, and controlled escalation before their own parser does the target-specific work.

Happy team validating a project on a laptop
01 / Start easy

Easy, free start before any billing pressure

ScraperFly gives you room to test the real target first. Use free credits to check whether the page works, whether the data is present, and which controls are actually needed before you commit money to a plan. That makes the first experiment feel light: no procurement loop, no forced subscription, no guessing your monthly volume on day one.

Free creditsNo card for first testsValidate before scaling
Smiling professional working successfully with a laptop
02 / Spend smart

Affordable, flexible billing for real-world scraping volume

Not every scraping workload is a neat monthly curve. Some projects spike, some pause, and some only become recurring after the data proves value. ScraperFly supports that reality with a pay-as-you-go path plus monthly credit plans when steady volume makes sense. You can buy what you need, keep costs visible, and avoid turning a small test into an oversized subscription.

Pay as you goMonthly when usefulCost control
Developer preparing structured output from a laptop
03 / Ship faster

Response preprocessing that removes cleanup work

A cheap fetch is not enough if your team still has to build converters, cleaners, screenshots, PDF capture, and LLM-ready formatting around it. ScraperFly can return the response as HTML, clean text, Markdown, structured JSON, PDF, or image output, so your pipeline gets closer to the final asset in one request. Less glue code, fewer moving parts, faster delivery.

HTMLTextMarkdownJSONPDFImage

Where ScraperFly helps parser teams move faster

The advantage is not pretending every site has the same schema. The advantage is giving your parser clean evidence, usable formats, and predictable request controls.

Decision pointScraperFly advantageTypical competitor tradeoff
First experimentStart with free credits and validate the real target before spending. You can prove whether raw HTML, rendering, premium routing, or country targeting is actually needed.Trials often push you quickly toward a recurring plan or hide the true cost until add-ons enter the request.
Billing modelUse pay-as-you-go credits for uneven work, then move to monthly credits only when the workload becomes predictable. This keeps small tests and project-based scraping affordable.Many tools are optimized around monthly subscriptions, fixed allowances, or tier gates that can feel heavy before volume is proven.
Request weightKeep simple pages simple. Turn on JavaScript rendering, premium routing, sessions, headers, waits, or country routing only when the response evidence says they matter.Comparable controls may exist, but they are often bundled into higher tiers, defaults, or more complex pricing profiles.
Output formatsReturn the response in the shape your product needs: HTML for parsers, text or Markdown for content pipelines, JSON for structured metadata, and PDF/image output for visual proof.Some providers focus mainly on access and leave formatting, capture, cleanup, and downstream preparation to your own code.
Developer workflowOne API surface can cover target testing, escalation, rendering, routing, sessions, headers, response formatting, and status checks. The path from prototype to production stays compact.Proxy-first tools, actor marketplaces, and crawler platforms can be powerful, but often require more glue code or a heavier operating model.
Best fitTeams that want practical web data delivery: start small, measure cost per useful result, and scale only the controls that improve the outcome.Teams with fixed high-volume contracts, custom proxy infrastructure, or broad marketplace crawler needs may prefer a more specialized platform.

Parser cost control

Keep parser workflows affordable by matching request weight to the target

Parsing projects often begin with unknown page behavior. Start free, keep simple pages on lightweight capture, add rendering or visual output only when the response proves it is needed, and move recurring workloads to monthly credits once volume is predictable.

A lightweight HTML request returning a simple response
01

Basic fetch

Use a basic fetch when public HTML already contains the fields you need.

Lightest request profile; keep it when the response is complete.

JavaScript rendering producing a complete DOM
02

Rendering

Use rendering when raw HTML is a shell and JavaScript completes the page.

Heavier profile; use it only when browser output changes the result.

Several requests preserving cookies and visitor state
03

Stateful session

Use sessions when cookies, consent, locale, or pagination change the response.

Heavier state profile; preserve it only when continuity matters.

Request routing through geo and higher quality routes
04

Premium routing & geo

Use premium routing or geo only when origin, country, reputation, or regional content changes the result.

Heaviest routing profile; apply it only to targets that prove they need it.

What makes a request heavier

More infrastructure work

Browser rendering, routing choices, and longer waits mean the platform has to do more than return a simple response.

More target uncertainty

Redirects, empty states, rate limits, and challenge pages often require stronger delivery options or retries.

More state to preserve

Cookies, sessions, consent, and multi-page flows add moving parts that a plain stateless fetch does not have.

More evidence to return

Screenshots, PDFs, rendered output, and richer response artifacts are useful, but they are heavier than plain HTML.

How to keep request weight predictable

Sample before scale

Test a small URL set first and group targets by the lightest profile that returns complete data.

Do not render by default

Inspect raw HTML before turning on rendering. Many public pages already contain the data you need.

Escalate by evidence

Move up only when the response shows missing content, state dependency, geo variance, or routing problems.

Measure useful results

Optimize around valid records delivered, not raw request volume. A lighter profile is best only when it stays complete.

Parser FAQ

Common questions about parsing website content with ScraperFly

Practical answers for teams deciding how to capture public pages, choose parser-friendly formats, use rendering, and keep downstream extraction clean.

Parser FAQ

Public page input

For teams building parsers, crawlers, indexes, review systems, and AI ingestion pipelines.

Does ScraperFly replace my parser?

No. ScraperFly captures the public page and returns usable formats. Your parser owns target-specific fields, validation, classification, and storage.

Can I test a page before writing parsing rules?

Yes. Use the API Builder to compare source HTML, rendered HTML, text, Markdown, metadata, screenshots, and PDFs on representative target URLs.

Parser-friendly outputs

Choose the smallest response format that preserves what the parser needs.

Should I parse HTML or text?

Use HTML when selectors, links, tables, attributes, or DOM relationships matter. Use text when the workflow only needs readable content.

When is Markdown useful?

Markdown is useful for AI, RAG, documentation, and analyst review because headings, links, and readable structure are easier to consume.

Dynamic content

Render only when browser execution changes the captured result.

Do all parser jobs need browser rendering?

No. Many public pages expose complete source HTML. Enable rendering only when JavaScript creates content your parser needs.

What should I inspect when content is missing?

Compare source HTML, rendered HTML, final URL, status, content type, response size, and wait timing before changing the parser or request profile.

Cost and reliability

Keep recurring parser workloads stable without making every request heavy.

How do I keep parsing costs predictable?

Keep simple captures light, reserve rendering and visual files for proven targets, and move recurring volume to monthly credits when the workload is clear.

Can ScraperFly help debug parser failures?

Yes. Metadata such as status, final URL, content type, response size, and rendered output helps separate capture issues from parser logic issues.