ScraperFlyAI-ready Web Data API

use cases

Market Research Web Scraping API for public evidence

ScraperFly helps market research teams capture public web evidence from company pages, products, marketplaces, directories, reviews, pricing pages, articles, and documentation. Choose HTML, text, Markdown, metadata, screenshots, or PDFs based on the source, then add rendering or routing only when the page proves it matters.

Research evidence

Capture public market signals before drawing conclusions

Market research teams need more than scraped pages. They need source evidence that is comparable, fresh, and clear enough to support a decision later. ScraperFly gives that workflow a practical capture layer: fetch public pages, inspect what came back, choose the response format, and keep the source context attached to the evidence.

Use ScraperFly for company pages, product launches, marketplaces, directories, reviews, pricing pages, articles, documentation, and other public sources. The API handles capture and response formats; your research system handles scoring, modeling, segmentation, dashboards, and conclusions.

public evidencemarket signalssource context
Market research team reviewing public web evidence from product pages and marketplaces

What is a market research web scraping API?

A market research web scraping API is a hosted request layer for capturing public web pages that researchers use as source material. It can retrieve company pages, product pages, marketplace listings, directories, pricing pages, reviews, news articles, documentation, launch pages, and public catalogs, then return the response as HTML, text, Markdown, metadata, screenshots, or PDFs.

The API does not replace the research process. It does not decide market size, score competitors, forecast demand, or build the final report. Its job is to make the source capture reliable enough that the downstream research workflow can compare evidence, classify sources, normalize fields, check freshness, and defend conclusions.

That boundary is what makes the page useful. ScraperFly helps teams avoid overbuilding before the source is proven. Start with a small source sample, test the response, compare raw and rendered content, and only add heavier request controls when they produce better evidence.

Practical takeaway: use ScraperFly to capture trustworthy public source evidence; keep analysis and conclusions in your research workflow.

Which public sources matter for market research?

Market research usually depends on a mixed source set. A competitor product page tells one story. A marketplace category page tells another. A pricing page, a review thread, a local directory, a documentation page, and a launch announcement may all provide different evidence about positioning, demand, pricing, availability, messaging, and customer needs.

The strongest workflows do not treat every source as the same kind of data. They classify sources by purpose, inspect representative pages, and decide which capture profile makes sense. Some pages are simple HTML. Some need rendering. Some need regional context. Some need a screenshot because the visual state is part of the evidence.

Source typeResearch signalCapture note
Company pagesPositioning, offers, locations, messaging, product linesUse HTML or Markdown for readable comparison
Product pagesAttributes, price, claims, availability, bundles, reviewsPreserve source URL and visible page state
Marketplace categoriesAssortment, ranking, seller mix, category language, pricing spreadInspect pagination, sorting, and duplicate patterns
Review pagesCustomer language, pain points, sentiment clues, recurring complaintsCapture readable text and timestamps when visible
Pricing pagesPackages, limits, plan names, discounts, positioningUse visual proof when pricing display matters
News and launch pagesTiming, product direction, announcements, market narrativeMarkdown can preserve headings and links for review
Directories and local listingsMarket coverage, geography, categories, participantsCountry or language context may change results

What evidence should a research capture keep?

A captured page is more useful when it carries context. Researchers need to know what was requested, what URL finally responded, whether the page redirected, what content type came back, how large the response was, whether JavaScript changed the result, and whether the visible page matched the expected source. Without that context, the research team may confuse page changes, scrape failures, stale records, and true market movement.

ScraperFly helps preserve that capture context while letting the team choose the response shape. A parser may need HTML. A research analyst may prefer Markdown. A dashboard pipeline may want text plus metadata. A QA workflow may need screenshots or PDFs for proof.

Evidence groupExamplesWhy it helps
Source identityRequested URL, final URL, page type, source categoryKeeps research traceable back to the public page
Response contextStatus, content type, response size, redirects, timingSeparates source behavior from extraction assumptions
Content fieldsPrice, title, category, claim, description, review text, availabilityFeeds comparison and normalization downstream
Freshness signalsTimestamp, visible update date, capture date, stale-page signsPrevents old evidence from being treated as current
Visual proofScreenshot, PDF, rendered state, visible layoutSupports review when claims or price displays are disputed

When does market research need rendering, routing, or visual files?

Market research sources vary widely. A simple company page may return complete HTML. A marketplace category page may render products after JavaScript runs. A pricing page may show different plans by country. A review site may paginate aggressively. A product page may need a screenshot because the visual presentation matters as much as the text.

The cleanest workflow is evidence-based escalation. Start with the lightest request. If the source HTML already contains the useful data, keep it simple. If the visible page has content that the source response does not contain, try the JavaScript rendering API. If geography changes the content, review country targeting. If the research record needs a visual artifact, use screenshot or PDF output instead of trying to describe the layout from text alone.

This keeps research cost connected to actual source behavior. It also keeps the team from making the classic mistake of turning every page into the heaviest possible request before knowing whether the source is valuable.

Practical takeaway: add rendering, routing, waits, screenshots, or PDFs only when the evidence gets better.

Which response format fits market research?

Different research tasks need different output shapes. HTML is useful when a parser needs structure, links, tables, product cards, attributes, or metadata. Text and Markdown are easier for analysts, summaries, search, and AI-assisted review. JSON metadata helps keep response context attached to the record. Screenshots and PDFs are useful when the visible page is part of the evidence.

Before writing production collection code, test the same source in the API Builder. Compare HTML, rendered HTML, text, Markdown, JSON metadata, screenshot, and PDF output. The best format is not the fanciest one; it is the format your downstream research process can use with the least cleanup and the most confidence. The response formats guide gives a deeper decision framework.

OutputBest for research whenTrade-off
HTMLYour parser needs structured markup, links, product cards, or attributesRequires downstream extraction rules
Rendered HTMLUseful content appears only after browser executionHeavier than source HTML
TextYou need compact content for search, summaries, or classificationRemoves most structure
MarkdownAnalysts or AI workflows benefit from readable headings, lists, and linksNot ideal for DOM-specific extraction
JSON metadataYou need status, final URL, content type, and capture contextDoes not replace source-specific field extraction
ScreenshotPrice display, layout, ranking, or visible claim needs proofHeavier and less queryable than text
PDFThe team needs a portable archive for review or complianceLarger output and less convenient for parsing

How do teams keep research scraping cost predictable?

Market research often starts with uncertainty. The team may not know which sources are valuable, how often they change, which pages need rendering, or whether the project will become recurring. That is exactly where a flexible API is useful. ScraperFly supports a practical path: start free, test sources, buy credits for uneven projects, and move toward monthly credits only when recurring demand is clear.

Cost control begins with request classification. A basic HTML request should not carry the same weight as a rendered browser session with premium routing and visual output. Use the pricing page and web scraping API credit cost calculator to estimate how request controls affect usage before the source list expands.

This is where ScraperFly is especially practical for research teams. You can validate source quality and response formats before committing budget, then reserve heavier controls for sources that have already proven their value.

Practical takeaway: research sources are uneven, so buy and scale around proven request profiles rather than guessing volume on day one.

What mistakes weaken market research data?

Bad market research scraping usually starts with a weak evidence model. Teams collect pages, but they do not preserve enough context to explain what the data means later. When a source changes, a price disappears, a page redirects, or a result differs by country, the research pipeline cannot tell whether the market changed or the capture strategy failed.

Mixing source types without labels. A review page, product page, pricing page, and directory listing should not be treated as the same evidence type. Label the source class early.

Ignoring freshness. A public page can be useful and still be stale. Keep capture date, visible update signals, final URL, and status attached to the record.

Rendering everything by default. Browser execution should solve a content gap, not become a habit. Compare raw and rendered output before scaling the heavier profile.

Collecting visual claims without visual proof. If layout, placement, price display, or messaging is part of the research claim, keep a screenshot or PDF.

Expecting the capture API to write the report. ScraperFly captures public evidence. Your research team or downstream tooling should handle interpretation, scoring, modeling, and decisions.

How should teams start with ScraperFly?

Choose a small source sample before scaling: one company page, one product or pricing page, one marketplace category page, one review or article page, and one source that may need rendering or regional context. Capture each with the lightest request profile. Compare the response formats. Keep notes on what fields are reliable, what needs visual proof, and what should be excluded from the research dataset.

Once the source set is proven, turn the workflow into a repeatable profile. Simple public pages can stay light. JavaScript-heavy pages can use rendering. Region-sensitive sources can use country routing. Research claims that depend on visual layout can use screenshots or PDFs. ScraperFly lets the team grow into those controls instead of paying for them before the evidence is valuable.

Practical takeaway: start with a small evidence sample, prove the source, then scale the request controls that improve research confidence.

Market research scraping

Collect public market signals with enough context to compare, segment, and trust the data

Market research scraping is not just about collecting pages. Teams need comparable public evidence: prices, offers, inventory, copy, categories, locations, reviews, company pages, news, product attributes, and visible changes over time.

Commerce

Turn public commerce pages into pricing and inventory intelligence

Track competitor prices, stock changes, sellers, marketplace offers, travel rates, and catalog shifts before they affect revenue.

Laptop with analytics charts for price monitoring
Commerce

E-commerce price monitoring

Watch competitor prices, discounts, stock status, shipping terms, and seller movement so pricing teams can react before market changes become invisible.

Useful fields: price, discount, stock, seller, shipping

Person browsing products on a smartphone
Commerce

Product catalog enrichment

Fill missing titles, descriptions, specifications, images, variants, and identifiers from public product pages and manufacturer catalogs.

Useful fields: title, description, specs, images, SKU

Large warehouse aisle representing marketplace operations
Commerce

Marketplace seller intelligence

Compare seller presence, fulfillment models, assortment depth, ratings, and offer changes across marketplaces.

Useful fields: seller, rating, offer, fulfillment, assortment

Warehouse worker organizing inventory shelves
Commerce

Inventory and availability tracking

Detect stockouts, pickup availability, regional inventory, delivery promises, and product availability gaps before customers do.

Useful fields: stock, region, pickup, delivery, timestamp

Person with shopping bags checking a smartphone
Commerce

Brand protection

Find unauthorized sellers, suspicious pricing, counterfeit signals, incorrect product claims, and risky listings in public marketplaces.

Useful fields: seller, price, claims, images, marketplace

Busy outdoor restaurant and hospitality scene
Commerce

Travel and hospitality monitoring

Collect room availability, rates, amenities, cancellation terms, local demand signals, and review context across booking surfaces.

Useful fields: rate, availability, amenities, policy, rating

Phone showing an online shopping interface
Commerce

Classifieds and secondhand tracking

Monitor new listings, asking prices, seller activity, item condition, location, and posting age across resale markets.

Useful fields: listing, price, condition, seller, location

Laptop showing financial graphs and analytics
Commerce

Price comparison and repricing

Turn competitor price snapshots into repricing inputs, assortment gaps, margin alerts, and market-position reports.

Useful fields: competitor, price, rank, availability, change

Growth

Find demand signals before they show up in your own analytics

Monitor search results, ads, competitor pages, business directories, hiring activity, and lead signals to see where attention is moving.

Laptop displaying analytics dashboard for SEO monitoring
Growth

SERP and SEO monitoring

Track ranks, snippets, ads, local packs, language, device, and geo differences to see how visibility changes in the real search surface.

Useful fields: rank, URL, snippet, ads, geo

Laptop open on a news or content page
Growth

Competitor content monitoring

Watch page changes, headings, CTAs, schema, internal links, and content inventory without waiting for manual audits.

Useful fields: heading, CTA, schema, links, updated text

Hands holding a phone with social media content
Growth

Ad intelligence

Collect public ad copy, creative patterns, landing pages, regions, timing, and advertiser activity for campaign research.

Useful fields: copy, creative, landing page, region, date

Business people exchanging documents in an office
Growth

Lead generation and company enrichment

Build account lists and enrich company records with domains, locations, industries, public contacts, hiring signals, and technology hints.

Useful fields: company, domain, industry, location, signals

Small local coffee shop storefront
Growth

Local business directory data

Collect names, categories, addresses, hours, websites, ratings, and review counts from public directory pages.

Useful fields: name, category, address, hours, rating

Office workers reviewing professional documents
Growth

Job market intelligence

Track job titles, skills, salary ranges, seniority, remote policies, and hiring velocity across career pages and job boards.

Useful fields: title, salary, skills, location, seniority

Voice

Turn public conversations into product and reputation signals

Collect reviews, media mentions, community discussions, public posts, and creator signals to understand what customers and markets are saying.

Person reading a newspaper while working on a laptop
Voice

News and media monitoring

Collect articles, authors, dates, topics, entities, links, and source metadata for reputation, research, and alerting workflows.

Useful fields: title, author, date, source, entities

People shopping and checking a smartphone together
Voice

Review and sentiment tracking

Capture rating trends, complaint themes, praise patterns, business responses, and product-location context from public reviews.

Useful fields: rating, review, theme, response, date

Person browsing a social media app on a smartphone
Voice

Social and public web monitoring

Monitor public posts, engagement, hashtags, timestamps, and profile context where policy and source access allow it.

Useful fields: post, engagement, hashtag, profile, time

Person reading news articles in a room
Voice

Community and forum intelligence

Find recurring questions, complaints, feature requests, and problem language from public communities and support forums.

Useful fields: question, topic, complaint, reply count, date

Workspace with laptop, coffee and newspaper
Voice

Creator and influencer discovery

Build discovery lists from public profile pages, content topics, audience hints, posting cadence, and collaboration signals.

Useful fields: profile, topic, audience signal, cadence, link

Records

Make public records and listings easier to monitor at scale

Extract tenders, legal notices, filings, financial data, and real estate listings into sourced datasets that teams can search, compare, and review.

Professionals exchanging business documents
Records

Public procurement and tenders

Track buyers, budgets, deadlines, requirements, attachments, awards, and changes across tender portals and public notices.

Useful fields: buyer, budget, deadline, requirements, award

Professionals discussing legal documents in an office
Records

Regulatory and legal monitoring

Monitor notices, public registers, effective dates, document versions, affected entities, and compliance-relevant changes.

Useful fields: notice, entity, date, document, status

Professionals reviewing financial documents
Records

Financial and public market research

Collect filings, disclosures, tables, news, instrument metadata, and public financial context for research pipelines.

Useful fields: filing, table, issuer, date, metric

House keys and cash for real estate market data
Records

Real estate listings and market data

Track listing prices, addresses, property attributes, agent details, status, history, and neighborhood context.

Useful fields: price, address, beds, agent, status

Data products

Build data products from scraped pages, not page dumps

Clean, normalize, validate, enrich, compare, and deliver public web data into databases, dashboards, alerts, and LLM pipelines.

Laptop screen with programming code
Data products

LLM-ready web data pipelines

Convert public pages into clean text, Markdown, chunks, metadata, citations, and freshness signals for retrieval or model workflows.

Useful fields: clean text, Markdown, chunk, source URL, timestamp

Data center server racks for database workflows
Data products

Structured extraction to database

Turn HTML, PDFs, tables, and page text into typed records that can be stored, queried, joined, and audited later.

Useful fields: JSON, type, source, schema, record ID

Laptop with coding and data analysis interface
Data products

Change detection and alerting

Compare snapshots and alert teams when prices, stock, rank, content, status, or regulatory language changes.

Useful fields: previous value, new value, delta, threshold, alert

Computer screen with colorful code and data
Data products

Entity enrichment and normalization

Normalize product IDs, company names, locations, people, categories, units, currencies, and taxonomy mappings.

Useful fields: entity, canonical ID, category, unit, confidence

Close-up of server rack with blue indicators
Data products

Data quality validation

Check required fields, data types, ranges, duplicates, source evidence, and suspicious records before downstream use.

Useful fields: required field, type, range, evidence, confidence

Laptop with code editor for data reporting feed
Data products

Reporting and dashboard feeds

Feed BI dashboards, market reports, operating scorecards, and recurring analyses with web data that refreshes on schedule.

Useful fields: metric, dimension, period, source, refresh

Why ScraperFly

Flexible capture lets research teams learn the source before committing budget

Start free, test sample targets, choose the response format, and add heavier controls only for sources that improve coverage or confidence.

  • Fill gaps left by APIsMany sources expose useful public pages but no complete API for the exact fields, geos, filters, or histories a team needs.
  • Monitor change over timeRecurring scrapes create a history of prices, content, availability, ranks, reviews, notices, and market movement.
  • Compare across sourcesScraping makes cross-site comparison possible when marketplaces, directories, portals, and publishers structure data differently.
  • Create usable recordsThe useful output is not a page dump; it is a sourced, timestamped, normalized record that downstream systems can trust.
Best fit

Useful for market maps, pricing research, category analysis, demand signals, and public trend monitoring

ScraperFly fits research workflows that start with uncertain sources, uneven volume, and a need to test page quality before recurring collection.

One API for varied sources

Use the same integration pattern across stores, search pages, directories, documents, public listings, and data-product pipelines.

Delivery controls when needed

Rendering, sessions, headers, geo, and proxy routing can be added for targets that need them without rebuilding the workflow.

Output that supports post-processing

HTML, screenshots, clean text, Markdown, and structured extraction paths help teams move from page retrieval to usable records.

Less scraping infrastructure to own

Teams can focus on fields, validation, freshness, and business logic instead of browser fleets, routing edge cases, and retry plumbing.

Source mix

Map source types, freshness, regional behavior, and template stability

Research sources can include marketplaces, directories, competitor pages, review sites, news pages, forums, local listings, and public catalogs. Each source can differ in rendering, pagination, geography, duplicates, missing fields, and update frequency.

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.

Checks before market research scraping

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.

How research sources change scraping setup

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.

Research economics

Choose a scraping API that fits exploratory research before volume is predictable

Research projects often begin with unknown sources and uneven volume. ScraperFly keeps that phase lighter with free credits, pay-as-you-go options, and request controls that can grow only where source evidence proves value.

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 fits market research workflows

The advantage is practical flexibility: compare sources, test response formats, and control rendering or routing costs before turning research into a recurring pipeline.

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.

Research request builder

Build research capture requests around the evidence each source can provide

Use HTML for custom extraction, text or Markdown for readable comparison, JSON-oriented metadata for enrichment, screenshots for visual proof, and rendering or routing when source samples require them.

SRC
Sources

Test each source before adding it to a research pipeline

Market data quality depends on coverage, freshness, field consistency, and how the site behaves across repeated samples.

samplesfreshnesscoverage
CMP
Compare

Use formats that make comparison easier

Text, Markdown, and structured metadata make public evidence easier to review, classify, and normalize.

textmarkdownjson
QA
Proof

Capture screenshots when research claims need verification

Visual proof helps validate price displays, offer pages, claims, layouts, and source states.

screenshotpdf

Controls that shape market research scraping

url

The public source page being captured for research.

format

The output shape for comparison, review, or enrichment.

render

Browser execution when source content is client-side.

premium

Stronger routing for sources that resist simple delivery.

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"

Research FAQ

Common questions about market research scraping workflows

Practical answers for teams capturing public web evidence for comparison, source review, market maps, pricing research, product research, and trend monitoring.

Research answers

Public market evidence

Use varied source types without treating them as one generic dataset.

What sources can market research teams capture?

Teams can capture public company pages, product pages, pricing pages, marketplaces, directories, reviews, launch pages, articles, and documentation when access and use are allowed.

Should every source use the same fields?

No. A product page, pricing page, review page, and directory listing each need different evidence fields and source labels.

Capture versus analysis

Keep source capture separate from interpretation and reporting.

Does ScraperFly provide market analysis?

No. ScraperFly captures public page evidence. Research conclusions, scoring, modeling, dashboards, and reports happen downstream.

Can ScraperFly replace a research workflow?

No. It gives the workflow better source capture, response formats, and request controls, but the research process still decides what the evidence means.

Research output choices

Choose the response shape that makes evidence easiest to compare.

Which format is best for analyst review?

Markdown or text often works well for readable comparison. HTML is better when a parser needs structure, links, tables, or attributes.

When should I use screenshots or PDFs?

Use visual files when layout, visible claims, price display, or page state is part of the research evidence.

Rendering and cost

Escalate request weight only when better evidence requires it.

When should market research sources use rendering?

Use rendering when useful public content is missing from source HTML and appears only after browser-side JavaScript runs.

How do I keep costs predictable?

Test representative sources first, keep simple pages on light requests, and reserve rendering, routing, screenshots, and PDFs for sources that justify them.