# Github Search Scraper (`saswave/github-search-scraper`) Actor

$0.9 / 1000 results. Github search scraper. Get all data from search results list

- **URL**: https://apify.com/saswave/github-search-scraper.md
- **Developed by:** [SASWAVE](https://apify.com/saswave) (community)
- **Categories:** Automation, Lead generation
- **Stats:** 76 total users, 1 monthly users, 88.1% runs succeeded, 6 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.90 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## GitHub Search Scraper

Scrape GitHub search results at scale: repositories, marketplace listings, GitHub Actions, integrations, and public metadata.

This actor lets you automate GitHub search queries and extract structured data from GitHub Marketplace listings, repository actions, and integration pages

Ideal for product research, competitor analysis, market intelligence, and software discovery.

### 🔍 What This Scraper Can Extract

Depending on your GitHub query, this actor returns structured results across different GitHub resources:

### ✅ GitHub Marketplace Listings

App and integration name

Owner / publisher

Install count

Verification status

Categories

Description (short & full)

Pricing availability

Links (docs, website, privacy policy, TOS)

### ✅ GitHub Actions & Automations

Action name

Repository owner

Description

Stars

Dependents count

Action metadata

Usage ranking

Repository ID

### ✅ Search Highlights

Matched query terms

Category classification

Marketplace type

Ownership verification

Integration metadata

### How to extract cookies from your browser

- install EditThisCookie chrome extension
- login to your account and go to your linkedin feed page
- Use the extension and click "export"
- Paste the cookies in the input "cookies" from the actor

The apify documentation has a tutorial on how to do it with screenshots, https://docs.apify.com/tutorials/log-in-by-transferring-cookies#export-your-cookies go to the export your cookies section

### Output

Output can change depending on the type of your search, start a test run and check output results

```json
{
  "type": "marketplace_listing",
  "id": "6181",
  "state": "verified",
  "name": "Metabob-app",
  "free": false,
  "primary_category": "AI Assisted",
  "secondary_category": "Code review",
  "is_verified_owner": true,
  "slug": "metabob-app",
  "owner_login": "MetabobProject",
  "resource_path": "/marketplace/metabob-app",
  "installation_count": 3004,
  "full_description": "Review your code using AI to detect problems and vulnerabilities before code gets merged.\n",
  "short_description": "AI-powered code review and analysis tool for Python",
  "extended_description": null,
  "listing_logo_url": "https://avatars.githubusercontent.com/ml/6181?s=400&v=4",
  "recommended": false,
  "marketplace_listing": {
    "listing": {
      "id": 6181,
      "state": 3,
      "name": "Metabob-app",
      "slug": "metabob-app",
      "short_description": "AI-powered code review and analysis tool for Python",
      "full_description": "## Review your code using AI to detect problems and vulnerabilities before code gets merged.",
      "extended_description": "## AI-assisted code review\nUncover bugs, security problems, and style issues. Unlike linters and rules-based static code analysis tools, Metabob not only pinpoints errors specific to a single line but also detects logical and context-based problems such as unhandled edge cases, race conditions, memory leaks, and many more! Metabob's AI detects problems from hundreds of different categories.\n\nWhen Metabob is configured to your repository, the analysis will automatically run when a Pull Request is made! Metabob explains the detected problems in natural language.\n\nTo view the results from Metabob's analysis, open the Pull Request and the results will appear under the \"Checks\" tab. ",
      "primary_category_id": 39,
      "secondary_category_id": 10,
      "privacy_policy_url": "https://metabob.com/privacy-policy.html",
      "tos_url": "https://metabob.com/user-terms.html",
      "company_url": "https://metabob.com/",
      "status_url": "",
      "support_url": "https://metabob.com/contact-us.html",
      "documentation_url": "",
      "pricing_url": null,
      "bgcolor": "ffffff",
      "light_text": false,
      "learn_more_url": null,
      "installation_url": null,
      "how_it_works": null,
      "hero_card_background_image_id": 0,
      "direct_billing_enabled": false,
      "by_github": false,
      "listable_type": "Integration",
      "listable_id": 47250,
      "copilot_app": false
    }
  }
},
{
  "type": "repository_action",
  "id": "9757",
  "name": "Setup Python",
  "free": null,
  "primary_category": "Utilities",
  "secondary_category": null,
  "is_verified_owner": true,
  "slug": "setup-python",
  "owner_login": "actions",
  "resource_path": "/marketplace/actions/setup-python",
  "highlights": {
    "description": null,
    "name.ngram": [
      "Setup <em>Python</em>"
    ]
  },
  "description": "Set up a specific version of Python and add the command-line tools to the PATH\n",
  "stars": 1737,
  "dependents_count": 1198830,
  "icon_svg": "<svg width=\"91\" height=\"91\" viewBox=\"0 0 91 91\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg/">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M91 45.5C91 70.6289 70.629 91 45.5 91C20.371 91 0 70.6289 0 45.5C0 20.3711 20.371 0 45.5 0C70.629 0 91 20.3711 91 45.5ZM33.2774 70.9818L70.876 45.916C71.1728 45.7181 71.1728 45.2819 70.876 45.084L33.2774 20.0182C32.9451 19.7967 32.5 20.0349 32.5 20.4343V70.5657C32.5 70.9651 32.9451 71.2033 33.2774 70.9818Z\" fill=\"#FFFFFF\"/>\n</svg>\n",
  "repository_action": {
    "repository_action": {
      "id": 9757,
      "path": "action.yml",
      "name": "Setup Python",
      "description": "Set up a specific version of Python and add the command-line tools to the PATH",
      "icon_name": "code",
      "color": "0366d6",
      "featured": false,
      "repository_id": 192625525,
      "rank_multiplier": 1,
      "slug": "setup-python"
    }
  }
}
```

### 🧠 Use Cases

This actor is perfect for:

SaaS market research

Developer tools discovery

GitHub competitor monitoring

GitHub integration analysis

Feature comparison

AI tools research

Market trend analysis

Automation exploration

### ✅ Advantages

Works on GitHub Marketplace and Actions

Supports large-scale extraction

Authentication supported via cookies

Structured JSON output

Easy to automate with Apify

Works without GitHub API limits

### 🛟 SUPPORT

Share your runs with the developer team and create issues on error to help us improve actor quality.

You might discover edge case we didn't test yet

We stay available anytime

# Actor input Schema

## `url` (type: `string`):

With or without a strating page in URL

## `max_page` (type: `integer`):

Default '0' will go through all pages, You can setup starting page in URL using query param (ex: \&p=15)

## `cookies` (type: `array`):

Check readme on how to extract cookies from browser and paste as input

## Actor input object example

```json
{
  "url": "https://github.com/search?q=python&type=marketplace&query=is%3Asponsorable",
  "max_page": 1
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "url": "https://github.com/search?q=python&type=marketplace&query=is%3Asponsorable"
};

// Run the Actor and wait for it to finish
const run = await client.actor("saswave/github-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "url": "https://github.com/search?q=python&type=marketplace&query=is%3Asponsorable" }

# Run the Actor and wait for it to finish
run = client.actor("saswave/github-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "url": "https://github.com/search?q=python&type=marketplace&query=is%3Asponsorable"
}' |
apify call saswave/github-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,saswave/github-search-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/8H3vD3vB6DwEZ1isj/builds/kg1FxmPkvcvTXnfFn/openapi.json
