Drupal.org Modules Scraper
Pricing
from $3.00 / 1,000 results
Drupal.org Modules Scraper
Scrape Drupal.org modules with search by keyword, browse by category, fetch trending by install count, or look up specific module IDs. Returns title, machine name, install count, compatible Drupal versions, author, categories, and more.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Scrape module listings from Drupal.org — the official marketplace for Drupal CMS extensions.
Extract module titles, machine names, install counts, compatible Drupal versions, categories, author information, and more — no API key, no proxy, no login required.
Data Source
Data is fetched from the public Drupal.org REST JSON API (https://www.drupal.org/api-d7/node.json) which is openly accessible without authentication. Drupal.org is polite to scrapers when using appropriate headers.
Features
- Search modules by keyword (partial title match)
- Trending modules sorted by total install count
- Browse by category (Developer Tools, E-commerce, Media, Security, SEO, and more)
- Fetch by IDs — retrieve specific modules by their node IDs
- Filter by compatible Drupal version (7.x through 11.x)
- Filter by minimum install count
- Sort by installs, creation date, or last updated
Input
| Field | Type | Description |
|---|---|---|
mode | select | search, byIds, trending, or byCategory |
searchQuery | string | Keyword to search module titles (mode=search) |
moduleIds | array | List of node IDs to fetch (mode=byIds) |
category | select | Category TID — Developer Tools, E-commerce, Media, etc. |
compatibleWith | select | Drupal version filter: 7.x, 8.x, 9.x, 10.x, 11.x |
sortBy | select | installs, created, or updated |
minInstalls | integer | Minimum install count threshold |
maxItems | integer | Maximum number of results (1–1000, default 50) |
Example Inputs
Search for SEO modules:
{"mode": "search","searchQuery": "seo","maxItems": 20}
Top trending modules:
{"mode": "trending","maxItems": 50}
E-commerce modules compatible with Drupal 10:
{"mode": "byCategory","category": "48","compatibleWith": "10.x","maxItems": 30}
Fetch specific modules by ID:
{"mode": "byIds","moduleIds": ["1005090", "2660066", "3060061"]}
Output
Each record contains:
| Field | Type | Description |
|---|---|---|
moduleId | string | Drupal node ID |
title | string | Module project title |
machineName | string | URL-safe machine name |
url | string | Full project URL on Drupal.org |
summary | string | Module description (HTML stripped) |
status | string | Maintenance status (e.g., "Actively maintained") |
installCount | integer | Reported active installs |
issueCount | integer | Open issue count |
createdAt | string | ISO 8601 creation date |
updatedAt | string | ISO 8601 last updated date |
categories | array | Category names |
compatibleVersions | array | Compatible Drupal versions (e.g., ["10.x", "11.x"]) |
authorName | string | Module author username |
authorUrl | string | Author profile URL |
screenshotUrl | string | Screenshot image URL (when available) |
recordType | string | Always "module" |
scrapedAt | string | ISO 8601 scrape timestamp |
Fields with no data are omitted (never null).
Example Output Record
{"moduleId": "2627832","title": "Metatag","machineName": "metatag","url": "https://www.drupal.org/project/metatag","summary": "Manage meta tags for all entities.","status": "Actively maintained","installCount": 500000,"issueCount": 42,"createdAt": "2015-04-01T00:00:00+00:00","updatedAt": "2024-11-01T12:00:00+00:00","categories": ["SEO/Optimization"],"compatibleVersions": ["10.x", "11.x"],"authorName": "DamienMcKenna","authorUrl": "https://www.drupal.org/u/DamienMcKenna","recordType": "module","scrapedAt": "2026-05-22T10:00:00+00:00"}
Categories
| TID | Name |
|---|---|
| 46 | Developer Tools |
| 48 | E-commerce |
| 50 | Media |
| 52 | Performance and Scalability |
| 54 | Security |
| 56 | SEO/Optimization |
| 58 | Site Structure |
| 60 | Spam Prevention |
| 62 | User Management |
| 64 | Other |
FAQs
Does this require a Drupal.org account or API key? No. The Drupal.org REST API is fully public. No authentication needed.
Does this require a proxy? No. Drupal.org serves API requests from datacenter IPs without blocking.
How many modules can I scrape?
Up to 1,000 per run (configurable via maxItems). Drupal.org has 50,000+ modules.
How accurate are the install counts? Install counts are as reported by Drupal.org's update statistics system, refreshed daily.
Can I filter by multiple categories? Currently one category per run. Run multiple times for multiple categories.
What Drupal versions are supported?
Drupal 7.x through 11.x. Filter using the compatibleWith input.