DOTmed Scraper — Used Medical Equipment Listings avatar

DOTmed Scraper — Used Medical Equipment Listings

Pricing

from $1.25 / 1,000 scraped dotmed listings

Go to Apify Store
DOTmed Scraper — Used Medical Equipment Listings

DOTmed Scraper — Used Medical Equipment Listings

Scrape DOTmed new & used medical equipment: imaging, surgical, lab, auctions. Get asking prices, condition, manufacturer, model, seller, specs and images. Category, keyword or PDP — DOTmed API alternative.

Pricing

from $1.25 / 1,000 scraped dotmed listings

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Disclaimer: Unofficial tool for publicly accessible DOTmed marketplace pages. Not affiliated with, sponsored by, or endorsed by DOTmed.com, Inc. Trademarks belong to their respective owners.

For informational and research use only (market research, dealer intelligence, inventory monitoring, pricing workflows). You are responsible for compliance with applicable laws, site terms, and your organization policies.

No warranty as to accuracy, completeness, or continued availability of third-party data.

Crawloop Medical & Lab Suite — NA clinical marketplace plus EU clinical and lab inventory.

Labexchange (lab)Bimedis (clinical EU)DOTmed (clinical NA)
Labexchange ScraperBimedis ScraperDOTmed Scraper ◄── you are here

This DOTmed scraper (DOTmed API alternative) extracts new and used medical equipment listings into clean JSON on Apify — asking prices, condition, manufacturer, model, seller, specs, and images. Pull imaging, surgical, laboratory, cardiology, ultrasound, and related categories via category browse, keyword search, newest feed, auctions, or direct listing URLs. Run from Python, Node.js, cURL, or MCP / AI assistants and export the dataset to CSV / Excel.

Built for medical equipment dealers, hospital procurement, appraisers, and market-data teams who need North America–heavy secondary-market price comps.

When to use this Actor

Use the DOTmed Scraper when you need:

  • Used medical equipment prices — asking price + currency from public DOTmed listings
  • Brand / model comps — Voluson, LOGIQ, Epiq, Siemens, Philips, Medtronic and similar when listed
  • Condition & stock flags — Used / New / Refurbished, qty available, in stock
  • Auctions & private sales — bid-now amounts, time left, sale ids
  • Full PDP enrichment — specification table, description, image gallery, public seller fields
  • Keyword discovery — search across hundreds of thousands of equipment listings

Ideal for dealer sourcing, procurement shortlists, valuation comps, and scheduled inventory monitors.

When not to use this Actor

  • European clinical marketplace only — start with Bimedis Scraper
  • European lab warehouse stock — start with Labexchange Scraper
  • Bulk personal contact harvesting — prefer public seller name / company / profile URL; phones may appear on some PDPs but are not the product intent

Data pipeline

Input Mode Output
───────────────────────── ──────────────────── ──────────────────────────
Category / newest / search ──► listings (fast cards) ──► title, price, seller, URL
Keyword search ──► details (full PDP) ──► specs, gallery, condition
Direct listing / auction ──► ──► seller, location, images
categories[] / listingFormat
Join by manufacturer+model ──► comps & inventory alerts

Key features

  • Two extraction modeslistings for cheap card-level catalogs; details for specs, seller, gallery
  • 25 equipment categories — Imaging, Surgical, Laboratory, Cardiology, and more
  • Category hub expansion — auto-discovers subcategories when a top-level browse hub is auction-heavy
  • Keyword search — brand/model discovery (e.g. Voluson, LOGIQ E9)
  • Listing formats — fixed-price, auction, private sale, or all
  • Pagination controlspageSize 15–100 and maxPagesPerUrl for predictable run size
  • Streaming dataset — rows appear while the run progresses; dedupe by listing id
  • Lightweight HTTP — Chrome TLS fingerprinting; residential proxy recommended on Apify cloud (Cloudflare)

Input parameters

ParameterTypeDefaultDescription
startUrlsArraynewest feedBrowse, search, listing, or auction URLs
categoriesArrayimagingUsed when startUrls empty and no keyword
searchKeywordStringBrand/model keyword (e.g. Voluson)
listingFormatString"all"all, listing, auction, or private_sale
runModeString"details"listings or details
expandSubcategoriesBooleantrueExpand category hubs into leaf browse URLs
maxItemsInteger50Max rows (0 = unlimited)
maxPagesPerUrlInteger3Pagination depth (0 = until exhausted)
pageSizeInteger15Results per page (15–100)
concurrencyLimitInteger5Parallel PDP workers (1–20)
proxyConfigurationObjectresidentialPrefer Apify RESIDENTIAL for cloud runs

Input example — newest listings

{
"startUrls": [{ "url": "https://www.dotmed.com/equipment/newest" }],
"runMode": "listings",
"maxItems": 50,
"maxPagesPerUrl": 3,
"pageSize": 15,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Input example — keyword details

{
"searchKeyword": "Voluson",
"runMode": "details",
"listingFormat": "listing",
"maxItems": 30,
"maxPagesPerUrl": 2,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Input example — imaging category (with hub expansion)

{
"categories": ["imaging"],
"expandSubcategories": true,
"listingFormat": "all",
"runMode": "listings",
"maxItems": 100,
"maxPagesPerUrl": 2
}

Output format

FieldDescription
listingId, url, titleIdentity
manufacturer, model, equipmentType, categoryTaxonomy
price, priceCurrency, priceTextAsking / bid price
condition, quantityAvailable, inStockCondition context
listingType, isAuction, bidCloses, timeLeftSale format
seller, sellerCompany, sellerName, sellerUrlPublic seller fields
location, countryLogistics
description, specificationsPDP enrichment
mainImage, imagesGallery
scrapedAtUTC timestamp

Example record (details mode)

{
"listingId": "5828428",
"url": "https://www.dotmed.com/listing/other/medtronic/8670055/55mm-cannulated-tap-instrument/5828428",
"title": "For Sale MEDTRONIC 8670055 5.5mm Cannulated Tap Instrument",
"manufacturer": "MEDTRONIC",
"model": "8670055",
"equipmentType": "Other",
"condition": "Used - Good",
"price": 195,
"priceCurrency": "USD",
"listingType": "listing",
"isAuction": false,
"seller": "SHREE INC",
"location": "IL, USA",
"country": "US",
"inStock": "Yes",
"quantityAvailable": "1",
"specifications": {
"Condition": "Used - Good",
"Brand": "MEDTRONIC",
"Type": "Other",
"Model": "8670055",
"Height": "10 inches",
"Length": "5 inches",
"Width": "15 inches"
},
"mainImage": "https://images.dotmed.com/images/listingpics2/5/8/2/8/5828428.jpg",
"scrapedAt": "2026-08-08T10:04:00Z"
}

Use cases

  1. Dealer price comps — scrape DOTmed ultrasound / CT / MRI by brand and compare asking prices
  2. Hospital procurement shortlists — filter in-stock listings by condition and category
  3. Auction monitoring — schedule auction / private-sale pulls with bid-now and time left
  4. Cross-market comps — chain with Bimedis for EU vs NA secondary pricing
  5. Inventory alerts — recurring keyword runs for target models into CSV / Sheets

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/dotmed-scraper').call({
searchKeyword: 'Voluson',
runMode: 'details',
maxItems: 25,
proxyConfiguration: {
useApifyProxy: true,
apifyProxyGroups: ['RESIDENTIAL'],
},
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 5));

Python

from apify_client import ApifyClient
client = ApifyClient(token)
run = client.actor("crawloop/dotmed-scraper").call(
run_input={
"categories": ["imaging"],
"runMode": "listings",
"maxItems": 50,
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"],
},
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("title"), item.get("price"), item.get("priceCurrency"))

cURL

curl "https://api.apify.com/v2/acts/crawloop~dotmed-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.dotmed.com/equipment/newest"}],"runMode":"listings","maxItems":50,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store ID / name (crawloop/dotmed-scraper).

Example prompts:

  • "Run the DOTmed scraper for keyword Voluson, details mode, max 30, return title, manufacturer, price, condition as JSON"
  • "Scrape DOTmed newest equipment listings and summarize median asking price by manufacturer"
  • "Chain DOTmed Scraper then Bimedis Scraper for NA vs EU ultrasound price comps"

Suite next step

After DOTmed NA clinical listings, compare EU clinical inventory with Bimedis Scraper, or enrich European lab stock via Labexchange Scraper.

FAQ

Is this an official DOTmed API?

No. It is an unofficial DOTmed API alternative that reads publicly available listing pages and returns structured JSON for analysis workflows.

Can I scrape used medical equipment prices with Python or Node.js?

Yes. Call crawloop/dotmed-scraper via the Apify client (Python / Node.js), cURL, Console, or MCP — then export the dataset.

Why do some category hubs return mostly auctions?

DOTmed top-level browse hubs often prioritize live auctions. Enable Expand category hubs (default) to crawl leaf subcategories that carry fixed-price inventory, or use Search keyword / Newest start URLs.

Listings vs details — which mode should I use?

Use listings for fast catalog / price discovery. Use details when you need specs, full description, seller profile fields, and image galleries.

Do I need a proxy?

On Apify cloud, RESIDENTIAL proxy is recommended. Datacenter IPs often hit Cloudflare 403/429; the Actor retries and rotates sessions when configured.