Raycast Store Scraper - Extension Catalog Export
DEVELOPER TOOLSBUSINESSOTHER
Raycast Store Scraper - Extension Catalog Export
Scrapes the full extension catalog from the Raycast Store — the public marketplace for Raycast extensions on macOS and Windows. Returns flat JSON records for every extension, including commands, AI tools, author profiles, download counts, and source-repo URLs.
No auth required. The Raycast backend exposes a public JSON API that returns the complete catalog with all metadata in a single paginated feed.
Raycast Store Scraper Features
- Pulls all 2,800+ extensions in the catalog with a single run.
- Filter by platform (macOS only, Windows only, or both) and search by keyword.
- Returns 30+ fields per extension: title, description, platforms, categories, commands, AI tools, author handle/bio/social links, download count, source URL, and icon URLs.
- Flattens nested commands and tools into readable strings ("command-name: Command Title — description") for easy CSV/spreadsheet use.
- Hits Raycast's public JSON API directly — no browser, no proxies, no captchas.
- Configurable
maxItemscap — test with 10 records or pull the full catalog.
Who Uses Raycast Store Data?
- Developer tool analysts — track which extensions are growing fastest, which categories are underserved, which authors dominate which verticals.
- VC scouts — identify high-download extensions whose authors might be building a standalone product.
- AI extension builders — survey existing AI prompt sets and tool definitions before building a competitor or complement.
- Productivity tool SaaS — find which apps already have Raycast integrations (and which are missing one).
- Technical recruiters — authors of popular extensions are often strong candidates for developer-experience or DevOps roles.
- Market research — catalog the macOS + Windows productivity extension landscape across platforms.
How the Scraper Works
- Pick a mode:
catalogstreams the full Raycast Store (all 2,800+ extensions in popularity order), orsearchfinds extensions matching a keyword. - Optionally filter by platform (
macOS,Windows, or leave blank for both). - The scraper paginates Raycast's backend API at 100 records per page with a 200ms delay between pages.
- Records stream into the dataset as flat JSON — commands and tools are flattened to string arrays.
Input
{
"mode": "catalog",
"platform": "",
"maxItems": 100
}
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | "catalog" |
catalog = full store, search = keyword search |
query |
string | "" |
Keyword to search for. Required when mode is search. |
platform |
string | "" |
Filter by platform: "" (all), "macOS", or "Windows". |
maxItems |
integer | 10 |
Cap on records returned. Set to 0 for no limit (full catalog). |
Search example (find all GitHub-related extensions):
{
"mode": "search",
"query": "github",
"maxItems": 50
}
Windows-only filter:
{
"mode": "catalog",
"platform": "Windows",
"maxItems": 0
}
Output
Each record is a flat JSON object. Array fields (platforms, categories, seo_categories, commands, tools) contain plain strings.
{
"extension_id": "a9696c4c-a4e8-4ff1-bf49-c9015f796200",
"name": "linear",
"title": "Linear",
"description": "Bring Linear to every corner of your Mac. Create, search, and modify your issues.",
"platforms": ["macOS", "Windows"],
"categories": ["Developer Tools", "Productivity", "AI Extensions"],
"seo_categories": ["productivity", "project-management", "developer-tools"],
"access_status": "public",
"status": "active",
"download_count": 285334,
"created_at": 1658413349,
"updated_at": 1777036189,
"extension_url": "https://www.raycast.com/linear/linear",
"source_url": "https://github.com/raycast/extensions/tree/...extensions/linear/",
"icon_url": "https://files.raycast.com/8xxyzqx1xuryvgovan2zp8ac5fzc",
"author_handle": "thomaslombart",
"author_name": "Thomas Lombart",
"author_github": "thomaslombart",
"author_twitter": "thomas_lombart",
"commands": [
"create-issue: Create Issue — Create and assign new issues.",
"my-issues: My Issues — Browse issues assigned to you.",
"search-issues: Search Issues — Search across all your Linear issues."
],
"tools": [
"create_issue: Create Issue — Creates a new issue in Linear",
"get_issues: Get Issues — Retrieves issues from Linear"
],
"api_version": "1.104.10",
"commit_sha": "186d955eda64f9e956b25a3fdf5566b1d38f57f2"
}
Output Fields
| Field | Type | Description |
|---|---|---|
extension_id |
string | Raycast extension UUID |
name |
string | Extension slug (e.g. linear) |
title |
string | Display title |
description |
string | Short description |
platforms |
string[] | Supported platforms (macOS, Windows) |
categories |
string[] | Display category names |
seo_categories |
string[] | URL-friendly category slugs |
access_status |
string | public or private |
status |
string | active or archived |
download_count |
number | Total installs |
created_at |
number | Creation timestamp (Unix epoch) |
updated_at |
number | Last update timestamp (Unix epoch) |
extension_url |
string | Raycast Store page URL |
source_url |
string | GitHub source URL |
readme_url |
string | README file URL on GitHub |
icon_url |
string | Light-theme icon URL |
icon_dark_url |
string | Dark-theme icon URL |
author_handle |
string | Author username |
author_name |
string | Author display name |
author_bio |
string | Author bio |
author_github |
string | GitHub handle |
author_twitter |
string | Twitter/X handle |
author_location |
string | Author location |
author_website |
string | Author website |
author_avatar_url |
string | Author avatar URL |
commands |
string[] | Commands as "name: title — description" |
tools |
string[] | AI tools as "name: title — description" |
api_version |
string | Raycast API version targeted |
commit_sha |
string | Published git commit SHA |
Pricing
Pay-per-record: $0.001 per extension + $0.10 per run start. Full catalog of 2,800+ extensions costs approximately $3.
Notes
- The Raycast Store API does not return a total count field. Pagination stops automatically on the first empty page.
- Commands and tools are flattened to strings for spreadsheet compatibility. The raw structure (name, title, description) is encoded as
"name: title — description". - The
download_countfield reflects cumulative installs at scrape time — useful for ranking extensions by popularity.