Measurement Lab NDT Scraper avatar

Measurement Lab NDT Scraper

Pricing

from $3.75 / 1,000 result items

Go to Apify Store
Measurement Lab NDT Scraper

Measurement Lab NDT Scraper

Scrapes NDT speed test measurements from Measurement Lab. Returns flat rows with throughput, latency, packet loss, and location. Filter by country, city, or protocol.

Pricing

from $3.75 / 1,000 result items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ParseForge

Measurement Lab NDT Scraper

Scrape NDT internet speed test measurements from Measurement Lab, up to a million per run. Each row includes download and upload throughput, latency, packet loss, and the client and server location. No login or API key. Export to CSV, JSON, Excel, or XML.

Measurement Lab's NDT dataset is the largest open collection of internet performance measurements, but querying it directly means writing BigQuery SQL or parsing raw archives. This Actor reads the public NDT results for you, filtered by country, city, or protocol, and returns each measurement in one flat row.

Who uses itWhat they scrape Measurement Lab for
Network researchersCompare broadband performance across regions or time periods
ISPs and telecom analystsMonitor real-world throughput and latency in their service areas
Policy makersAssess digital divide and infrastructure quality by geography
Data journalistsFind local internet speed stories backed by public measurements

What it does

This Actor collects NDT speed test measurements from Measurement Lab and returns each one as a flat row with throughput, latency, packet loss, and location fields.

  • 🌍 Location filters: narrow results by country or city, or leave empty for worldwide measurements.
  • πŸ“‘ Protocol selection: choose ndt7 (modern WebSocket) or ndt5 (legacy) tests.
  • πŸ”’ Volume control: set a maximum number of measurements per run, from 1 to 1,000,000.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Measurement Lab data

πŸ“Š Benchmark regional internet speeds.

A telecom analyst runs the Actor with country set to 'US' and city set to 'New York' to collect recent NDT measurements and compare median download throughput against other cities.

πŸ—ΊοΈ Map broadband quality for policy reports.

A researcher collects measurements across multiple countries and visualizes latency and packet loss to support a digital divide study.

πŸ“° Find local speed test stories.

A journalist filters measurements for a specific city and uses the throughput and latency data to write about internet performance in that area.

πŸ” Audit ISP performance claims.

A consumer advocate gathers NDT results for a region and compares actual measured speeds against advertised broadband tiers.

Why choose this scraper

What you get
No BigQuery neededGet NDT measurements without writing SQL or managing cloud credentials
Flat, ready-to-use rowsEach measurement arrives as one record with all key fields
Location targetingFilter by country or city to focus on specific markets
Protocol choiceInclude ndt7, ndt5, or both in the same run

How it compares

No other Store actor targets Measurement Lab the same way, so the honest comparison is with the alternatives teams actually weigh.

Measurement Lab NDT ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When Measurement Lab changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst hours

Configure the run

Drive the Actor with optional country and city filters, select the NDT protocol, and cap the number of measurements per run. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10
}

A larger pull:

{
"maxItems": 200
}

Pricing

Pay-per-result: $0.005 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$0.50
1,000 results$5.00
10,000 results$50.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Measurement Lab NDT Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Measurement Lab through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/measurement-lab-ndt-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your country and city filters. If you set a city that does not match any M-Lab station, the Actor returns nothing. Try clearing the city filter or using a broader country code.

The run is slow or times out.

Reduce the 'Maximum measurements' value. Collecting a million rows takes time. Start with a smaller number and increase as needed.

I see fewer rows than my maximum.

The Actor stops when it has collected the requested number of measurements or when no more matching results are available. Your filters may be too restrictive.

Some fields are empty in the output.

Not every NDT measurement includes all fields. For example, packet loss may be missing for some tests. This is normal and reflects the source data.

FAQ

QuestionAnswer
What is NDT?NDT (Network Diagnostic Tool) is an open-source internet speed test developed by Measurement Lab. It measures download and upload throughput, latency, and packet loss.
What is the difference between ndt7 and ndt5?ndt7 is the current protocol using WebSockets and provides more accurate measurements. ndt5 is the legacy protocol. You can select either or both in the input.
How do I filter measurements by location?Use the country and city inputs. Country expects an ISO-3166 alpha-2 code like 'US' or 'DE'. City is a free-text hint matched against station locations. Leave both empty for worldwide results.
How many measurements can I collect in one run?Set the 'Maximum measurements' input to any number from 1 to 1,000,000. The Actor will stop after collecting that many rows.
Do I need an API key or login?No. The Actor reads public Measurement Lab data and requires no authentication.
What format is the output?The Actor returns a flat dataset that you can export to CSV, JSON, Excel, or XML from the Apify platform.
Can I get historical measurements?The Actor returns the most recent measurements available from Measurement Lab. For deep historical analysis, you may need to query the M-Lab BigQuery archive directly.
What fields are included in each row?Each row includes download and upload throughput, latency, packet loss, client and server location, test timestamp, and protocol version. The exact field list is shown in the sample output.
  • google-search-scraper: Use this to scrape Google search results for queries about internet speeds or broadband providers.

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Measurement Lab. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.