Discovery & seeding
Finding the URL space before fetching it.
- Sitemap and index parsing
- Link graph traversal with depth control
- Category and facet enumeration
- Pagination and infinite-scroll handling
- Seed expansion from search where permitted
Discovery at scale, with coverage measured rather than assumed.
Scraping fetches pages you already know about. Crawling finds the pages you do not. That difference is why crawl coverage has to be a measured number rather than an assumption, and why nobody should quote you a crawl without discussing completeness.
Free pilot on your own sources, returned in 24 hours. No card, no trial clock — and you keep the sample data either way.
Last verified 5 August 2026 by the Actowiz Solutions Data Engineering team.
Enterprise web crawling is discovery-led collection at scale. You give us a target — a site, a set of sites, a category tree — and we enumerate the URL space, fetch it, and report what we reached. Scraping, by contrast, fetches a list you already have.
The distinction sounds academic and is entirely practical, because it changes what can go wrong.
Every crawl run ships with a report: seeds used, URLs discovered, URLs fetched, frontier remaining, and an estimated coverage percentage with coverage_basis naming how it was derived — sitemap comparison, link graph saturation, or both.
Where the frontier is not exhausted, we say so rather than presenting a partial crawl as complete. A crawl reported at 98.2% coverage with a stated basis is useful. A crawl reported as "complete" without a basis is a claim nobody can check, including us.
Ignore robots.txt, crawl at rates that degrade a site, or crawl behind authentication. Politeness is not only ethics here — aggressive crawling is self-defeating, because the access disappears.
Discovery and frontier control are where crawls succeed or fail. The rest is engineering discipline.
Finding the URL space before fetching it.
Stopping an infinite space from consuming the crawl.
Freshness proportional to change rate.
Collection that does not lose its own access.
Only where a page genuinely needs it.
The output nobody else supplies.
A managed engagement, not a tool licence. We own the pipeline and everything that breaks in it.
Two layers: a run-level report and a page-level record. The run report is what makes the crawl auditable.
| Field | Type | What it captures | Refresh |
|---|---|---|---|
crawl_id / target |
string | Run identity and the crawl target, so runs are comparable over time | Per run |
urls_discovered / urls_fetched |
int | Size of the discovered space and how much of it was actually retrieved | Per run |
frontier_remaining |
int | URLs still queued when the run ended, which is the honest completeness signal | Per run |
coverage_est_pct / coverage_basis |
decimal / enum | Estimated coverage and how the estimate was derived | Per run |
rendered_pct |
decimal | Share of pages that required JS rendering, which drives cost | Per run |
robots_respected / peak_rps |
boolean / decimal | Politeness compliance and the peak request rate reached | Per run |
url_hash / depth |
string / int | Page identity and crawl depth at which it was found | Per page |
page_type |
enum | Classified page type, which drives both extraction and recrawl interval | Per page |
content_hash / changed_since_last |
string / boolean | Content fingerprint and whether it changed since the prior crawl | Per page |
canonical_of / dup_cluster |
string | Canonical resolution and near-duplicate cluster, so pages are counted once | Per page |
recrawl_due |
timestamp | When this page is next scheduled, based on its observed change rate | Per page |
frontier_remaining is deliberately prominent. A crawl that ended with 400,000 URLs still queued is not a complete crawl, and a report that omits the frontier is hiding the one number that would tell you.
Scope is defined by URL space rather than record count, because the record count is an output.
Crawl scale is quoted by URL space and recrawl frequency rather than by record count, since records are what the crawl produces rather than what it consumes. Request a source we don't list →
We deliver into 40+ countries. These are the markets where this particular service is requested most, and the reason demand concentrates there.
| Market | Why demand concentrates here |
|---|---|
| United States | The largest concentration of platform and AI companies running crawls at a scale where frontier control and coverage reporting become the deciding factors. |
| United Kingdom & European Union | Strong regulatory attention on crawling practice, which makes documented politeness parameters and retained robots snapshots a purchase requirement. |
| India & Singapore | Fast-growing platform and aggregator businesses building catalogue coverage from discovery rather than from supplied lists. |
| Germany & Nordics | Data engineering teams with mature infrastructure standards, where run-level coverage reporting is expected rather than novel. |
We run production collection across 40+ countries. Coverage depth varies by market and by source, so we confirm what is actually available for your specific markets during scoping rather than claiming uniform global coverage. Ask about a market we don't list →
Data engineering leads dominate, with search, AI and research teams close behind.
Building and operating a crawler at scale means frontier control, politeness, scheduling and coverage reporting — none of which is your product.
A managed crawl with run-level coverage reporting into your storage, with the frontier and politeness engineering handled by us.
Engineering hours reclaimed
Index freshness depends on recrawl scheduling matched to change rate, which a fixed interval cannot deliver.
Per-page-type recrawl scheduling with content hashing, so your index refreshes where content actually changed.
Index freshness
Corpus building needs breadth with provenance, and an uncontrolled crawl produces duplicates and traps rather than data.
Discovery-led crawling with deduplication, canonical resolution and per-document provenance for downstream corpus work.
Corpus quality
Your catalogue depends on discovering listings you have never seen, not on refreshing ones you have.
Full URL space enumeration with new-page detection, so newly published listings enter your catalogue promptly.
Catalogue completeness
Web-scale research needs documented, reproducible crawl methodology rather than an opaque dataset.
Documented crawl design with coverage basis, politeness parameters and frontier state recorded per run.
Reproducibility
Crawling at scale raises questions your compliance function will ask before you can deploy anything.
robots.txt snapshots retained per run, documented rate limits, and a written methodology document per engagement.
Approval time
Four patterns, with the outcome each is judged on.
The entire URL space of target sites is discovered and fetched with canonical resolution and duplicate clustering, so new listings are found rather than only known ones refreshed.
Outcome: Catalogue completeness measured against a reported coverage figure instead of assumed.
Change rates are observed per page type and recrawl intervals set accordingly, with content hashing so only genuinely changed pages are reprocessed downstream.
Outcome: Freshness improved while total fetch volume falls, because effort follows change.
Discovery-led crawling with deduplication and per-document provenance feeds corpus pipelines, with robots and opt-out signals recorded at fetch.
Outcome: Breadth achieved without the duplicate load and trap pages that inflate uncontrolled crawls.
We crawl the same target independently and report coverage, frontier and duplication, which quantifies what an existing in-house crawl is missing.
Outcome: A measured gap figure instead of a suspicion that coverage is incomplete.
Clients rarely permit naming. These are real engagement shapes with identifying detail removed, so you can judge whether the work resembles your situation.
An in-house crawler fetched nine million URLs against a large retail target and retained roughly forty thousand distinct pages, with no error to explain it.
Rebuild with URL normalisation, facet combination budgets, trap detection and content hashing, plus run-level coverage and duplication reporting.
Fetch-to-distinct-page ratio came down close to one, and coverage became a reported number rather than a guess.
Corpus building relied on a crawl that expanded into calendar and sort-parameter traps, consuming budget on duplicate content rather than new documents.
Discovery-led crawling with canonical resolution, duplicate clustering and per-page-type recrawl scheduling, with robots snapshots retained per run.
Distinct document volume rose substantially at lower total fetch volume.
Examples are anonymised at client request. Named references are available on request under NDA. See published case studies →
Before you commit to anything, we run this service against your own sources and send you the output. If the coverage isn't there, the sample will show you that too — which is the point. We would rather lose the deal at the pilot than at month three.
Same collection pipeline and same QA underneath. The difference is who holds the schedule and how the data reaches you.
We own the collection, the QA and the delivery. You receive clean data on a schedule and never touch a scraper.
Best fit: Teams who need the data, not the infrastructure.
The same collection pipeline exposed as an authenticated REST endpoint your systems query directly.
Best fit: Product and engineering teams building on live data.
A defined pull for a specific question — market sizing, diligence, a pitch, a one-off audit.
Best fit: Research, strategy and diligence work with a deadline.
Every engagement is quoted individually, because the honest answer depends on your scope: how many sources, how many records, how often, and how the data reaches you. We scope it with you, run a free pilot on your own sources, and then quote a fixed monthly figure — no per-request metering and no overage billing when volumes move. Request a quote and you will have a number after one call.
Frontier control and politeness engineering are where in-house crawls stall, usually after the first infinite facet space.
| Consideration | In-house scraping team | Generic proxy / DIY tool | Actowiz managed feed |
|---|---|---|---|
| Time to first usable data | 6–12 weeks of engineering before anything is trustworthy | Days, but output needs manual cleanup before use | Free pilot in 24 hours, production in 5–10 business days |
| Who fixes it when a source changes | Your engineers, at the cost of their roadmap | You do — tools report failures, they don't resolve them | We do, same business day, inside the retainer |
| Data quality assurance | Whatever your team has time to build | None beyond HTTP success | Schema validation plus sampled human QA on every run |
| Compliance documentation | Rarely produced, then requested urgently by legal | Not provided; terms risk sits with you | Sources, method and lawful basis documented for review |
| Accountability | Distributed across a team with other priorities | A support ticket queue | A named engineer and an account owner |
| True annual cost | Engineer salaries, proxies, hosting, ongoing maintenance | Low licence fee plus significant hidden analyst time | One fixed monthly retainer, quoted after scoping |
The classic in-house crawl failure is not a crash. It is a crawl that runs for three weeks, fetches nine million URLs, and returns forty thousand distinct pages. Nothing errored. The crawl simply expanded into a space that has no end.
URL normalisation with parameter allow-lists rather than block-lists, facet combination budgets, depth and breadth caps per page type, trap pattern detection, and content hashing so a page that duplicates one already fetched does not seed further frontier expansion.
The measurable result is the ratio between URLs fetched and distinct pages retained. On a well-controlled crawl of a large retail site that ratio is close to one. On an uncontrolled crawl it can exceed twenty, and every one of those redundant fetches is cost you paid and load the target site absorbed.
We report the ratio per run. If it drifts, that is a signal the site has changed its URL structure, and it is worth knowing before it becomes twenty million wasted fetches.
Crawl politeness is usually framed as ethics. It is also the single most important factor in whether a crawl still works next quarter.
Request rates are capped per host and reported per run as peak_rps. Concurrency is limited. We back off on rising error rates and slow responses rather than pushing through them. robots.txt is respected and the snapshot in effect is retained per run, so the compliance claim is verifiable rather than asserted.
Crawl windows are agreed with you, and where a target is a partner or a site you have a relationship with, we will crawl during their low-traffic hours. Several clients have told their target sites they are crawling and negotiated a rate — which is the best outcome available and one we actively encourage.
The honest tradeoff: polite crawling is slower. A full crawl of a large site takes hours or days rather than minutes. We would rather quote a realistic duration than a fast one that ends in a block.
Target URL space, coverage expectations and politeness parameters are agreed before build, since those three define the crawl rather than the record count.
You send us target sites, regions, SKUs or keywords. We return a field-level schema proposal, coverage estimate and refresh recommendation — usually within two working days.
We extract a real sample from your actual targets so you can inspect field fill rates, edge cases and match quality before any commitment.
Our engineers build extractors, then wire validation rules: type checks, range checks, duplicate detection and golden-record comparison against a manually verified subset.
Feeds run at your chosen cadence and land in the warehouse or bucket you already use. Schema changes are versioned and announced before they ship.
We watch coverage drift, fill rates and source changes daily. A named engineer owns your account, and layout breaks are fixed by us — not queued for you.
JSON, JSONL, CSV, Parquet or XLSX, delivered to Amazon S3, Google Cloud Storage, Azure Blob, SFTP, Snowflake, BigQuery, Databricks or a REST/GraphQL endpoint. Webhooks fire on completion, and every batch ships with a manifest containing row counts, schema version and QA results so your pipeline can fail loudly instead of silently ingesting a bad file. Crawl run reports are delivered alongside page data so every batch is auditable.
We respect robots.txt and retain the snapshot in effect per run, cap request rates per host, limit concurrency and back off on errors. We do not crawl behind authentication, do not ignore crawl directives, and do not crawl at rates that degrade target infrastructure. Politeness parameters are documented per engagement.
These are contractual, not marketing copy. They appear in the engagement document.
| Commitment | What we hold ourselves to |
|---|---|
| Pilot turnaround | A real sample from your own sources within 24 hours of scoping, at no cost. |
| Go-live | Production collection running within 5–10 business days of sign-off. |
| Delivery punctuality | 99.5% on-schedule delivery, measured monthly and reported to you. |
| Breakage response | Source layout changes triaged same business day; critical sources inside 4 hours. |
| Data quality | Schema validation on every run plus sampled human QA before any delivery leaves us. |
| Escalation | A named engineer and an account owner, not a shared ticket queue. |
| Change requests | Field additions and source changes handled inside the retainer, not re-quoted. |
| Exit | Your historical data exported in full on request. No lock-in, no export fee. |
Plain definitions of the terms used on this page, so procurement and legal reviewers are working from the same vocabulary as your data team.
What data engineering and compliance teams ask during evaluation.
Scraping fetches a list of URLs you already have. Crawling discovers the URL space first — enumerating pages you do not know about — and then fetches it.
That changes the failure modes. With scraping you can verify completeness against your list. With crawling the target size is unknown, so coverage has to be estimated with a stated basis, and the frontier has to be controlled or the crawl expands into an effectively infinite space and never finishes.
Strictly, you do not, which is why we report frontier_remaining and coverage_est_pct with a coverage_basis naming how the estimate was derived — sitemap comparison, link graph saturation, or both.
A crawl that ended with 400,000 URLs still queued is not complete, and a report that omits the frontier is hiding the one number that would tell you. We would rather report 98.2% with a basis than claim completeness nobody can verify.
Frontier control: URL normalisation with parameter allow-lists, facet combination budgets, depth and breadth caps per page type, trap detection for calendars and sort loops, and content hashing so duplicate pages do not seed further expansion.
We report the ratio of URLs fetched to distinct pages retained per run. Close to one means the crawl is controlled. Above twenty means it is fetching the same content repeatedly — cost you paid and load the target absorbed for nothing.
Slower than you would like, deliberately. Polite crawling means capped request rates per host, limited concurrency and backoff on errors, which puts a full crawl of a large retail site in hours or days rather than minutes.
We would rather quote a realistic duration than a fast one that ends in a block. Where speed genuinely matters, the honest answer is usually to narrow the URL space rather than raise the rate.
Yes, and we retain the snapshot in effect per run so the claim is verifiable rather than asserted. We also cap rates, limit concurrency and back off on rising error rates.
This is self-interest as much as ethics: aggressive crawling ends in blocking, and demonstrable burden on infrastructure moves any dispute from access questions to harm questions, which is a much worse position for the client.
Canonical resolution where a site declares one, plus URL normalisation and content-hash based near-duplicate clustering. The same page under six sort parameters is six URLs and one page, and we count pages.
Both the URL count and the distinct page count are reported, because the gap between them is diagnostic. A widening gap usually means the site changed its URL structure, and that is worth catching early.
Yes, and this is where most ongoing value sits. Change rates are observed per page type, recrawl intervals are set accordingly, and content hashing flags whether a page actually changed since the last fetch.
The effect is that effort follows change: product pages might recrawl hourly while policy pages recrawl monthly. Total fetch volume typically falls while freshness improves, because a single blanket interval is wrong for every page type simultaneously.
Yes, and it is a common first engagement. We crawl the same target independently and report coverage, frontier state and duplication, which quantifies what your current crawl is missing.
It is also a low-commitment way to evaluate us: you already know the target, so you can judge our coverage figure against your own data rather than against a claim.
We quote individually, and the drivers here differ from our other services. Cost follows URL space size, recrawl frequency and rendered share — not record count, since records are the output rather than the input.
A category-scoped crawl of one large site refreshed weekly sits at the lighter end. Multi-domain crawls in the tens of millions of URLs with daily change detection and heavy rendering sit considerably higher. One scoping call, a free pilot crawl on your own target within 24 hours with a coverage report, then a fixed monthly quote. Request a quote.
Name a site or a category tree. We run a real pilot crawl and return the coverage report, frontier state and duplication ratio within 24 hours.
Free pilot, no card, no obligation. The coverage report is the deliverable — you can check it against what you already know.Our web scraping expertise is relied on by 4,000+ global enterprises including Zomato, Tata Consumer, Subway, and Expedia — helping them turn web data into growth.
Watch how businesses like yours are using Actowiz data to drive growth.
From Zomato to Expedia — see why global leaders trust us with their data.
Backed by automation, data volume, and enterprise-grade scale — we help businesses from startups to Fortune 500s extract competitive insights across the USA, UK, UAE, and beyond.
We partner with agencies, system integrators, and technology platforms to deliver end-to-end solutions across the retail and digital shelf ecosystem.
Unlock ecommerce insights with Scrape Trendyol Saudi Arabia Data to track products, prices, inventory, and market trends for smarter decisions.
Streamline restaurant data integration with Zomato & Swiggy POS integration Data API for faster insights, accurate menus, orders, and pricing.
Brazil Car Rental Pricing Intelligence Report 2026 reveals rental price trends, market shifts, competitor rates, and opportunities for smarter pricing.
Whether you're a startup or a Fortune 500 — we have the right plan for your data needs.