VS Code Marketplace Scraper avatar

VS Code Marketplace Scraper

Pricing

Pay per event

Go to Apify Store
VS Code Marketplace Scraper

VS Code Marketplace Scraper

Scrape VS Code extensions from the Marketplace — search by keyword, category, or publisher and extract install counts, ratings, versions, and metadata.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Extract data from the Visual Studio Code Marketplace — search by keyword, browse by category, filter by publisher or tags, or look up specific extension IDs. Returns install counts, ratings, version history, categories, tags, and marketplace URLs in a clean structured format.

What does it do?

VS Code Marketplace Scraper connects to the official VS Code Gallery API and extracts structured data about extensions. You can:

  • 🔍 Search for extensions by keyword (e.g. "python", "linter", "git")
  • 📂 Browse by category (Themes, Debuggers, Programming Languages, Snippets, Linters, etc.)
  • 👤 Filter by publisher (e.g. "ms-vscode", "ms-python", "GitHub")
  • 🏷️ Filter by tag (e.g. "formatter", "javascript", "docker")
  • 🆔 Fetch specific extensions by their ID (e.g. "ms-python.python")
  • 📊 Sort results by install count, rating, publish date, or last updated date

All data comes directly from the official VS Code Marketplace API — no browser needed, no scraping of HTML pages.

Who is it for?

🧑‍💻 Developer tool researchers

Track the competitive landscape in VS Code extensions. Which formatters are winning? How is ESLint doing compared to Biome? What new AI extensions are trending? Get hard install numbers and ratings across any category.

📈 Extension publishers & analytics teams

Monitor your own extensions and competitors. Compare install counts, ratings, and update frequency across your portfolio. Feed data into dashboards to track growth week-over-week.

🤖 AI & data science teams

Build datasets of VS Code extensions for recommendations, categorization, or training data. The structured output is ready for pandas, BigQuery, or any data pipeline.

🛠️ Developer productivity teams

Find the best-rated tools in each category to standardize across your engineering org. Compare linters, formatters, and debuggers by install count and community satisfaction.

Why use this scraper?

The VS Code Marketplace website limits search to 50 results per page and lacks bulk export. This actor:

  • Fetches up to 10,000 extensions per run with automatic pagination
  • Returns complete metadata including install counts, ratings, categories, and tags
  • Works without a browser — fast and cheap HTTP API calls
  • No authentication required — uses the public Gallery API
  • Structured output ready for spreadsheets, databases, or data pipelines

What data does it extract?

FieldTypeDescription
extensionNamestringFull extension ID (e.g. ms-python.python)
displayNamestringHuman-readable name (e.g. Python)
publisherNamestringPublisher slug (e.g. ms-python)
publisherDisplayNamestringPublisher display name (e.g. Microsoft)
publisherVerifiedbooleanWhether publisher domain is verified
shortDescriptionstringExtension description
categoriesarrayExtension categories (e.g. ["Programming Languages"])
tagsarrayExtension tags (system tags filtered out)
latestVersionstringCurrent version number
publishedDatestringDate first published (ISO 8601)
lastUpdatedstringDate last updated (ISO 8601)
releaseDatestringPublic release date (ISO 8601)
installCountnumberTotal install count
downloadCountnumberRecent download count
updateCountnumberTotal update count
averageRatingnumberAverage rating (0–5)
ratingCountnumberNumber of ratings
weightedRatingnumberWeighted rating score
trendingDailynumberDaily trending score
trendingWeeklynumberWeekly trending score
trendingMonthlynumberMonthly trending score
marketplaceUrlstringDirect URL to the extension's Marketplace page

How much does it cost to scrape VS Code Marketplace extensions?

This actor uses pay-per-result pricing. You're only charged for extensions actually extracted — no wasted costs.

PlanPrice per extension100 extensions1,000 extensions10,000 extensions
FREE$0.002$0.20$2.00$20.00
BRONZE$0.002$0.20$2.00$20.00
SILVER$0.0016$0.16$1.60$16.00
GOLD$0.0012$0.12$1.20$12.00
PLATINUM$0.0008$0.08$0.80$8.00
DIAMOND$0.0006$0.06$0.60$6.00

Plus a flat $0.005 start fee per run.

Free plan estimate: The Apify free plan ($0 credit/month) gives approximately 200–250 extensions per month.

Since this actor uses only HTTP API calls (no browser), runs are fast and inexpensive. A search for 1,000 extensions takes about 10–15 seconds.

How to use VS Code Marketplace Scraper

Step 1 — Create a free Apify account

Sign up at apify.com — no credit card required. The free plan gives you enough credits to test.

Step 2 — Open the actor

Go to https://apify.com/automation-lab/vscode-marketplace-scraper and click Try for free.

Step 3 — Configure your input

Choose your search mode:

Search by keyword:

{
"searchQuery": "linter",
"maxResults": 100,
"sortBy": "installs"
}

Browse by category:

{
"categories": ["Themes"],
"maxResults": 200,
"sortBy": "installs"
}

Filter by publisher:

{
"publisherName": "ms-vscode",
"maxResults": 50,
"sortBy": "installs"
}

Fetch specific extensions:

{
"extensionIds": ["ms-python.python", "esbenp.prettier-vscode"],
"maxResults": 10
}

Step 4 — Run and export

Click Start and wait for the run to complete. Download results as JSON, CSV, or Excel from the Dataset tab.

Input parameters

ParameterTypeDefaultDescription
searchQuerystringKeyword or phrase to search for
publisherNamestringPublisher to filter by (e.g. ms-vscode)
extensionIdsarraySpecific extension IDs in publisher.name format
categoriesarrayCategories to filter by
tagsarrayTags to filter by
maxResultsinteger100Maximum number of extensions to return
sortBystringinstallsSort order: relevance, installs, rating, publishedDate, updatedDate
maxRequestRetriesinteger3Max retries for failed API calls

Valid categories: Programming Languages, Snippets, Linters, Themes, Debuggers, Formatters, Keymaps, SCM Providers, Other, Extension Packs, Language Packs, Data Science, Machine Learning, Visualization, Notebooks, Education, Testing

Output example

{
"extensionId": "f1f59ae4-9318-4f3c-a9b5-81b2eaa5f8a5",
"extensionName": "ms-python.python",
"displayName": "Python",
"publisherName": "ms-python",
"publisherDisplayName": "Microsoft",
"publisherVerified": true,
"shortDescription": "Python language support with extension access points for IntelliSense...",
"categories": ["Programming Languages", "Debuggers", "Data Science"],
"tags": ["python", "linters", "django", "unittest"],
"latestVersion": "2026.5.1",
"publishedDate": "2016-01-19T15:03:11.337Z",
"lastUpdated": "2026-04-26T21:39:15.593Z",
"installCount": 216379645,
"averageRating": 4.2,
"ratingCount": 628,
"trendingMonthly": 2.148,
"marketplaceUrl": "https://marketplace.visualstudio.com/items?itemName=ms-python.python"
}

Tips for getting the best results

  • 🎯 Combine category + keyword for focused results: set categories: ["Linters"] and searchQuery: "javascript" to find JS-specific linters
  • 📊 Sort by updatedDate to find actively maintained extensions
  • 🔍 Use extensionIds for competitor monitoring — track specific extensions and check their metrics daily via the API
  • 💡 Tags vs categories — categories are broad groupings; tags are more granular. Use tags to find extensions for specific languages or tools (e.g. tag "docker", "rust", "graphql")
  • Pagination is automatic — set maxResults: 10000 and the actor handles all pagination automatically

Integrations

📊 Export to Google Sheets

  1. Run this actor to get a list of extensions (e.g. top 200 Python tools)
  2. Use the Apify Google Sheets integration to export the dataset directly to a spreadsheet
  3. Use Google Sheets formulas to build a competitive analysis dashboard

🔔 Monitor your extension's rank daily

  1. Use extensionIds mode with your extension ID
  2. Set up a scheduled run (daily or weekly)
  3. Use Apify webhooks to post results to Slack when your install count or rating changes

🐍 Feed data into pandas for analysis

import pandas as pd
import requests
run_id = "YOUR_RUN_ID"
api_key = "YOUR_APIFY_API_KEY"
url = f"https://api.apify.com/v2/datasets/{run_id}/items?token={api_key}&format=json"
df = pd.read_json(url)
# Top 10 by installs
print(df.nlargest(10, 'installCount')[['displayName', 'installCount', 'averageRating']])

🗄️ Load into BigQuery or Snowflake

Export the dataset as NDJSON from the Apify dataset API and load it directly into BigQuery using bq load or into Snowflake using the Snowflake Python connector.

API usage examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/vscode-marketplace-scraper').call({
searchQuery: 'python',
maxResults: 100,
sortBy: 'installs',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} extensions`);
console.log('Top extension:', items[0].displayName, '-', items[0].installCount, 'installs');

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("automation-lab/vscode-marketplace-scraper").call(run_input={
"searchQuery": "python",
"maxResults": 100,
"sortBy": "installs",
})
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
print(f"Got {len(items)} extensions")
print(f"Top: {items[0]['displayName']}{items[0]['installCount']:,} installs")

cURL

# Start a run
curl -X POST "https://api.apify.com/v2/acts/automation-lab~vscode-marketplace-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQuery": "python",
"maxResults": 100,
"sortBy": "installs"
}'
# Fetch results (replace DATASET_ID from run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=json"

MCP — use with Claude and AI assistants

You can connect this actor to Claude Code, Claude Desktop, or any MCP-compatible AI assistant to query the VS Code Marketplace conversationally.

Claude Code (terminal)

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/vscode-marketplace-scraper"

Claude Desktop / Cursor / VS Code (JSON config)

{
"mcpServers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com?tools=automation-lab/vscode-marketplace-scraper",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Example prompts for Claude

"Find the top 20 most installed VS Code extensions for Rust development"

"What are the highest-rated debugging extensions with at least 100,000 installs?"

"List all extensions published by the GitHub publisher sorted by install count"

"Get the metadata for ms-python.python, esbenp.prettier-vscode, and ms-vscode.cpptools"

Legality

This actor uses the official public VS Code Marketplace Gallery API — the same API used by VS Code itself to install extensions. No login is required, no private data is accessed, and no rate limits are circumvented. All data returned is publicly accessible on the Marketplace website.

Scraped data is intended for research, analytics, and legitimate competitive intelligence purposes. Do not use this actor to spam extension publishers or misuse their extension metadata commercially.

FAQ — Frequently asked questions

What's the difference between searchQuery and categories?

searchQuery does a full-text search across extension names, descriptions, and publishers. categories is a structured filter that matches only extensions classified under a specific category (like "Themes" or "Debuggers"). You can combine both for precise results.

Can I search by multiple categories at once?

Yes — pass multiple values in the categories array. Note that the Marketplace API may return the intersection or union depending on filter logic. Test with a small maxResults first to verify behavior.

Why does my publisher filter return unrelated extensions?

Publisher filtering uses text search (there is no dedicated publisher filter in the public Gallery API). The publisher name is used as a search keyword, which means extensions that mention that publisher name in their description may also appear. For high-precision publisher lookups, use extensionIds with a list of known extension IDs.

How do I troubleshoot a run that returns 0 results?

  1. Check your category spelling — categories are case-sensitive ("Themes" not "themes")
  2. Try broadening the search: remove some filters
  3. Check that your extension IDs are in publisher.extensionName format (e.g. ms-python.python)
  4. The Marketplace API may be temporarily unavailable — try again in a few minutes

Is there a rate limit?

The VS Code Marketplace API is a high-throughput public API. This actor uses reasonable pagination (100 items per page) and doesn't hammer the API. No rate limits have been observed in testing with up to 10,000 items.

  • GitHub Scraper — scrape GitHub repositories, issues, and user profiles
  • npm Package Scraper — extract npm package metadata including download counts and dependencies