SYSTEM all green source dfs.co.uk queue 14,892 pages p99 latency 184ms dataflirt.com · scraper/dfs-co.uk
RUN · 31 active pipelines · dfs.co.uk live

DFS furniture data,
extracted at scale.

We extract sofa configurations, fabric variants, dimension metrics, finance pricing, and delivery estimates from DFS. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your cadence.

Products extracted
48.2K /day
Price updates
112K /24h
Fabric variants
341K /run
Active pipelines
31
Uptime
99.94%
Data Dictionary

Every field we extract from dfs.co.uk

Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.

Complete list of extractable fields for Product Catalogue objects from dfs.co.uk. All fields typed and schema-versioned.

skutitlecategorysub_categorybase_pricesale_priceguarantee_yearsdescriptiondimension_summaryurl
product_catalogue
● 200 OK
"sku": "SFA-392-BLU",
"title": "French Connection Zinc 4 Seater Sofa",
"category": "Sofas",
"base_price": 999.0,
"sale_price": 899.0,
"guarantee_years": 15,
"dimension_summary": "H88 x W227 x D93 cm"
# skutitlecategorysub_categorybase_pricesale_price
1
2
3

Complete list of extractable fields for Fabric & Variants objects from dfs.co.uk. All fields typed and schema-versioned.

skuparent_skufabric_namefabric_typecolour_familyvariant_pricein_stockswatch_availableimage_url
fabric_& variants
● 200 OK
"sku": "SFA-392-BLU-VEL",
"parent_sku": "SFA-392",
"fabric_name": "Teal Velvet",
"fabric_type": "Velvet",
"colour_family": "Blue",
"variant_price": 949.0,
"in_stock": true,
"swatch_available": true
# skuparent_skufabric_namefabric_typecolour_familyvariant_price
1
2
3

Complete list of extractable fields for Finance Options objects from dfs.co.uk. All fields typed and schema-versioned.

skucash_pricedeposit_amountmonthly_paymentterm_monthsapr_pcttotal_payablefinance_provider
finance_options
● 200 OK
"sku": "SFA-392-BLU",
"cash_price": 899.0,
"deposit_amount": 0.0,
"monthly_payment": 18.72,
"term_months": 48,
"apr_pct": 0.0,
"total_payable": 899.0,
"finance_provider": "Novuna"
# skucash_pricedeposit_amountmonthly_paymentterm_monthsapr_pct
1
2
3

Complete list of extractable fields for Dimensions & Specs objects from dfs.co.uk. All fields typed and schema-versioned.

skuheight_cmwidth_cmdepth_cminternal_width_cmseat_height_cmseat_depth_cmarm_height_cmweight_kgframe_material
dimensions_& specs
● 200 OK
"sku": "SFA-392-BLU",
"height_cm": 88.0,
"width_cm": 227.0,
"depth_cm": 93.0,
"seat_height_cm": 45.0,
"seat_depth_cm": 60.0,
"frame_material": "Hardwood"
# skuheight_cmwidth_cmdepth_cminternal_width_cmseat_height_cm
1
2
3

Complete list of extractable fields for Delivery & Stock objects from dfs.co.uk. All fields typed and schema-versioned.

skupostcodedelivery_lead_time_weeksstock_statusclick_and_collect_eligiblestore_availabilitydelivery_costassembly_included
delivery_& stock
● 200 OK
"sku": "SFA-392-BLU",
"postcode": "M1 1AA",
"delivery_lead_time_weeks": 4,
"stock_status": "Made to order",
"click_and_collect_eligible": false,
"delivery_cost": 79.0,
"assembly_included": true
# skupostcodedelivery_lead_time_weeksstock_statusclick_and_collect_eligiblestore_availability
1
2
3

Capabilities

Extract every sofa configuration and price point

Our DFS scraper navigates complex product configurators, extracting every permutation of fabric, colour, and finance option alongside precise dimension metrics.

Full Product Extraction

Capture titles, descriptions, frame guarantees, and care instructions across sofas, beds, dining, and living categories.

Fabric & Colour Variant Mapping

Extract every combination of fabric type and colour family, mapping variant-specific pricing and high-resolution imagery.

Dynamic Pricing & Finance

Record base prices, sale discounts, and exact finance calculator outputs including deposit, term length, and APR.

Dimension Parsing

Extract and normalise height, width, depth, seat height, and internal dimensions into structured numeric fields.

Delivery Lead Times

Input target postcodes to scrape dynamic delivery estimates, stock status, and assembly service availability.

Review Aggregation

Scrape customer ratings, review text, and recommendation percentages paginated across all product reviews.

Category Hierarchies

Map the exact breadcrumb structure from primary category down to specific collections and designer collaborations.

Image & Swatch Extraction

Download URLs for main gallery images, lifestyle shots, and specific fabric swatch thumbnails.

Scheduled Diffs

Run continuous pipelines to detect price changes, discontinued fabrics, or shifts in delivery lead times.

// engagement pipeline

From product URL to warehouse record

Brief in. Clean data out.

Define Scope
d 0

Provide target categories, specific collections, or postcodes. We design the extraction schema together.

Pipeline Build
d 2–4

We configure Scrapy / Playwright crawlers, proxy rotation, session management, and CAPTCHA handling for dfs.co.uk.

Validation & QA
d 4–6

Schema validation, null-rate checks, price-outlier detection, and sample variants before full launch.

Delivery
ongoing

JSON / CSV / Parquet pushed to your S3 bucket, BigQuery dataset, or Snowflake stage on agreed cadence.

Under the hood

Navigating DFS configurators and dynamic state

Extracting data from modern furniture retailers requires rendering complex 3D configurators and stateful finance calculators. Here is how we build resilient pipelines.

pipeline-monitor · dfs.co.uk · live ● active
// fingerprinting
Identity rotation
TLS fingerprintrandomised
User-agentrotated
IP poolresidential
Challenges blocked0
// pagination
Page coverage
48,291 pages queued running
// observability
Pipeline health
99.9%
uptime
142ms
p99 lat
0.3%
null rate
2
alerts
JavaScript rendering
Handling the fabric switcher

DFS product pages use heavy JavaScript to update pricing, imagery, and stock status when a user selects a different fabric or colour. We use Playwright to programmatically iterate through every swatch, waiting for network idle to capture the correct variant state.

Stateful widgets
Finance calculator extraction

Finance terms update dynamically based on the selected variant price and user-defined deposit. Our crawlers interact with the DOM to extract the precise matrix of term lengths, APRs, and monthly payments for every product configuration.

Localisation
Postcode-dependent lead times

Delivery estimates require a valid UK postcode. We inject target postcodes into the session state to retrieve accurate, localised delivery weeks and assembly costs, rather than relying on generic national averages.

Schema stability
Normalising dimension tables

Dimension data is often presented in varied HTML table structures or raw text blocks. We use XPath fallbacks and regex parsing to consistently extract height, width, and depth into clean, queryable numeric columns.

Anti-bot layer
UK residential proxies

To prevent rate limiting during high-volume variant iteration, we route requests through UK-based residential proxies, maintaining session continuity for stateful interactions.

Applications

Who uses DFS data — and how

Teams across industries use dfs.co.uk data to build competitive products and smarter operations.

01
Competitor Price Monitoring

Furniture retailers track DFS base prices, promotional discounts, and finance offers to maintain competitive positioning.

02
Trend & Assortment Analysis

Merchandisers monitor the introduction and discontinuation of specific fabric colours and frame styles to identify consumer trends.

03
Supply Chain Forecasting

Analysts track fluctuations in delivery lead times across different collections to gauge manufacturing backlogs and demand spikes.

04
Product Dimension Benchmarking

Design teams use aggregated dimension data to standardise sizing for compact living versus large-scale modular sofas.

05
Consumer Finance Analysis

Financial analysts track the prevalence of 4-year interest-free offers and deposit requirements across the catalogue.

06
Market Share Estimation

Investors correlate review velocity and stock availability indicators to estimate category-level performance.

Why DataFlirt

"DFS holds the UK's most comprehensive dataset on upholstered furniture trends, pricing, and consumer finance preferences."

Extracting this requires more than simple HTTP requests. Fabric configurations, dynamic finance calculators, and postcode-dependent delivery estimates demand full browser rendering and session management. DataFlirt handles this complexity natively, delivering structured catalogue data ready for analysis.

Technical Spec

DFS scraper — technical capabilities

Everything supported by our dfs.co.uk scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.

JavaScript rendering
Full Playwright sessions — required for fabric switchers and finance widgets
Supported
UK Proxy rotation
ISP-grade residential IPs from UK pools to prevent rate limiting
Supported
Fabric variant mapping
Iterative extraction of all colour and material combinations per frame
Supported
Postcode delivery estimates
Localised lead times based on injected postcode state
Supported
Finance calculator extraction
Capture of deposit, term, APR, and monthly cost configurations
Supported
Change detection (diffs)
Hash-based diff: only emit records with changed fields since last run
Supported
Webhook delivery
HTTP POST per record or batch for downstream processing
Supported
User account order history
Requires individual user authentication credentials
Partial
Saved wishlists
Gated behind user login sessions
Partial
Infrastructure

Infrastructure powering the DFS pipeline

Open-source tooling on proven cloud infra — no vendor lock-in, full observability.

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheus
Scrapy + Playwright Stack

Scrapy handles crawl orchestration, deduplication, and retry logic. Playwright handles JavaScript rendering, cookie sessions, and interaction flows. Combined via scrapy-playwright middleware.

Residential Proxy Infrastructure

We maintain pools of residential ISP proxies across UK regions. Rotation happens per-request with sticky sessions where required. IP score monitoring prevents blacklisted pool contamination.

Cloud-Native Orchestration

Pipelines run on AWS Lambda (burst) and ECS (sustained). Airflow handles scheduling, dependency management, and SLA alerting. All state stored in managed Postgres.

Output & Delivery

Your data, your destination

Data delivered to where your team already works — no new tooling required.

JSON
Newline-delimited or nested — schema versioned per run
CSV
Flat file with typed columns — Excel/Sheets compatible
XLS
Excel format for immediate business analyst use
Parquet
Columnar format for BigQuery, Snowflake, Athena
AWS S3
Direct bucket delivery — compatible with any data lake
Webhook
HTTP POST per record for real-time downstream processing
API
REST endpoints to query your extracted datasets
PostgreSQL
Upsert into your existing schema with conflict resolution
BigQuery
Streamed directly into your dataset with schema auto-detect
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

About dfs.co.uk scraping, legality, and pipeline operations.

Ask us directly →
Is scraping dfs.co.uk legal?

Scraping publicly available information from DFS is generally permissible under UK law. DataFlirt targets only public, non-authenticated product, pricing, and variant data. We do not extract personal data, circumvent authentication walls, or violate GDPR. Clients should consult legal counsel for specific use cases.

How do you handle fabric and colour variants?

DFS product pages use JavaScript to load variant data. We use Playwright to programmatically iterate through all available fabric and colour swatches on a product page, capturing the specific price, image, and stock status for each combination.

Can you extract postcode-specific delivery times?

Yes. We can inject a target UK postcode into the session state during the crawl to extract localised delivery lead times and assembly availability.

How do you extract finance pricing?

We interact with the on-page finance calculator widget, extracting the matrix of available terms, deposit requirements, monthly payments, and APR percentages for the selected product.

Do you scrape dimension specifications?

Yes. We parse the dimension tables or text blocks on the product page, normalising height, width, depth, and internal measurements into structured numeric fields in centimetres.

How fresh is the data?

Full catalogue refreshes at daily or weekly cadences complete within a 4-8 hour window depending on variant depth. Subsequent runs emit only changed records to optimise downstream processing.

What is the minimum viable engagement?

Our packages start with a defined category scope (e.g., all sofas and beds) with weekly delivery. Contact us with your specific requirements for a scoped quote.

$ dataflirt scope --new-project --source=dfs.co.uk ready

Tell us what
to extract.
We do the rest.

20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a one-off catalogue export or continuous monitoring of furniture pricing and lead times — we scope, build, and operate the pipeline. Tell us what you need.

hello@dataflirt.com · Bengaluru · IST · typical reply < 4h
Related Scrapers

More in furniture

Services

Data Extraction for Every Industry

View All Services →