ParseForge Scrapers

Terraform Registry Modules Scraper

parseforge/terraform-registry-modules-scraper

Developer toolsAutomation

Scrapes Terraform Registry module listings by search query, provider, or namespace. Returns each module as a flat row with downloads, versions, verification status, and source repository URL.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
85
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Terraform Registry Modules Scraper

Scrape Terraform Registry modules by keyword, provider, or namespace, and get every module's downloads, versions, source repo, and verification status. No API token or Terraform CLI needed. Export to CSV, JSON, Excel, or XML.

The Terraform Registry's search API is limited and the official CLI only returns modules you already know about. This Actor reads the public module listing directly, letting you search by keyword, filter by provider or namespace, and collect structured metadata for up to a million modules per run. Every record follows a fixed schema so you can compare modules across publishers without writing any glue code.

Who uses it What they scrape Terraform Registry for
DevOps engineers Find the most downloaded and verified modules for a new infrastructure project before committing to a dependency.
Cloud architects Audit which Terraform modules teams are publishing across namespaces and providers.
Security analysts Check verification status and source repository URLs for every module used in an organization's Terraform codebase.
Platform teams Build an internal catalog of approved modules by scraping the registry and filtering by namespace and provider.

What it does

This Actor collects Terraform Registry module metadata by search query, provider, or namespace and returns each module as a flat row with downloads, versions, verification status, and source repository URL.

  • ๐Ÿ” Keyword search: find modules by name or topic, like vpc, eks, or network.
  • ๐Ÿท๏ธ Provider filter: narrow results to a single provider such as aws, google, or azurerm.
  • ๐Ÿ“ฆ Namespace filter: list every module published by a specific organization, like terraform-aws-modules or GoogleCloudPlatform.
  • ๐Ÿ“Š Latest modules feed: leave all filters empty to collect the most recently published modules across the entire registry.

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

What you can do with Terraform Registry data

๐Ÿ“‹ Build an approved module catalog.

A platform team scrapes all modules under the terraform-aws-modules namespace, filters by verified status, and exports a CSV to feed their internal developer portal.

๐Ÿ”Ž Compare modules before adoption.

A DevOps engineer searches for eks modules, collects download counts and version histories, and picks the most actively maintained option for a new cluster.

๐Ÿ›ก๏ธ Audit module supply chain.

A security analyst scrapes every module referenced in the company's Terraform code, checks verification badges and source repo URLs, and flags unverified or archived repositories.

๐Ÿ“ˆ Track publisher activity.

A cloud architect monitors the GoogleCloudPlatform namespace weekly to catch new module releases and deprecations that affect their infrastructure blueprints.

Why choose this scraper

What you get
No API token Reads the public registry listing directly, no Terraform Cloud account or CLI required.
Fixed flat schema Every module returns the same fields: downloads, versions, source URL, verification status, and publisher.
Up to 1M modules Collect as many records as you need in a single run, from a handful to a million.
Multi-format export Download your dataset as CSV, JSON, Excel, or XML for direct use in spreadsheets, databases, or CI pipelines.

How it compares

Three other actors scrape the Terraform Registry. This one focuses on fast, high-volume module listing with keyword search and namespace filtering, while others target individual module details or provider endpoints.

Feature ParseForge Terraform Registry Scraper - Module Metadata Terraform Registry Scraper - Modules & Providers Terraform Registry Scraper
Keyword search across modules Yes Not listed Yes Yes
Namespace (publisher) filter Yes Not listed Not listed Not listed
Provider filter Yes Not listed Not listed Not listed
Up to 1,000,000 modules per run Yes Not listed Not listed Not listed
Verification status Yes Yes Yes Yes
Source repository URL Yes Yes Not listed Yes

Configure the run

Drive the Actor with a search query, provider, and namespace, alone or together, and set a maximum item count so only the records you need reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10
}

A larger pull:

{
  "maxItems": 200
}

Pricing

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

Results collected Approximate cost
100 results $0.30
1,000 results $3.00
10,000 results $30.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 Terraform Registry Modules 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 Terraform Registry 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/terraform-registry-modules-scraper"

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

Troubleshooting

Why am I getting no results?

Check that your search query, provider, or namespace is spelled correctly. If you set a namespace and a search query together, the namespace filter is ignored. Try leaving all filters empty to confirm the registry is reachable.

Why are my results missing the namespace filter I set?

The namespace filter only applies when no search query is set. If you provide a searchQuery, the Actor searches the whole registry and ignores the namespace field.

The run stopped before reaching my maxItems limit.

The registry may have fewer matching modules than your limit. Try broadening your search or removing filters to see if more results are available.

Some modules show zero downloads or missing versions.

Newly published modules may not have accumulated download counts yet, and some modules list versions on a separate page. The Actor returns whatever the registry listing page displays at the time of the run.

Can I scrape a specific module's detail page?

This Actor collects modules from the search and listing pages. To fetch details for a specific module you already know, use the module's namespace, name, and provider as filters to isolate it in the results.

FAQ

Question Answer
Do I need a Terraform Cloud account or API token? No. This Actor reads the public Terraform Registry web listing directly. You do not need a HashiCorp account, an API token, or the Terraform CLI installed.
What data does each module record include? Each row includes the module name, namespace, provider, downloads count, available versions, verification status, source repository URL, and publication date, among other metadata fields.
Can I search for modules by keyword? Yes. Set the searchQuery input to any term like vpc, eks, or network, and the Actor returns matching modules from the registry.
How do I filter by cloud provider? Use the provider input field. Set it to aws, google, azurerm, or any other provider slug to return only modules targeting that provider.
Can I scrape all modules from a specific publisher? Yes. Set the namespace input to a publisher name like terraform-aws-modules or GoogleCloudPlatform. This works when no search query is set.
What happens if I leave all filters empty? The Actor returns the most recently published modules across the entire Terraform Registry, up to the maximum you set.
How many modules can I collect in one run? You can set maxItems anywhere from 1 to 1,000,000. The Actor stops once it reaches your limit.
What export formats are supported? Your dataset can be downloaded as CSV, JSON, Excel, or XML from the Apify run console.
Does this Actor scrape module source code? No. It collects metadata from the registry listing page. The source repository URL is included so you can follow the link to the actual code.
Is the verification status included? Yes. Each record shows whether the module is verified by HashiCorp, so you can distinguish official partner modules from community contributions.

Related actors

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 HashiCorp, Inc. 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.

Input

FieldTypeWhat it doesDefault
searchQuery string Optional keyword to search modules by (for example vpc, eks, network). Leave empty to list the most recently published modules. not set
provider string Optional provider to filter by (for example aws, google, azurerm). Applied to both search and listing. not set
namespace string Optional namespace (publisher) to filter the listing by (for example terraform-aws-modules, GoogleCloudPlatform). Ignored when a search query is set. not set
maxItems integer How many modules to collect per run. 10

Pricing

from $2.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.002 to $0.003

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~terraform-registry-modules-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQuery": "vpc",
    "provider": "aws",
    "maxItems": 3
  }'

Examples

Input that runs as-is.

input.json
{
  "searchQuery": "vpc",
  "provider": "aws",
  "maxItems": 3
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Terraform Registry Modules Scraper on Apify All scrapers