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

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:** 73 total users, 3 monthly users, 100.0% runs succeeded, 6 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$25.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=saswave/github-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Github Search Scraper",
        "description": "Github search scraper. Get all data from search results list",
        "version": "0.0",
        "x-build-id": "dROweb4CyNuAzeult"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/saswave~github-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-saswave-github-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/saswave~github-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-saswave-github-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/saswave~github-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-saswave-github-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "url"
                ],
                "properties": {
                    "url": {
                        "title": "Github Search Url",
                        "type": "string",
                        "description": "With or without a strating page in URL"
                    },
                    "max_page": {
                        "title": "Max Page Results",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Default '0' will go through all pages, You can setup starting page in URL using query param (ex: &p=15)",
                        "default": 1
                    },
                    "cookies": {
                        "title": "Github Session Cookies (remove default value [] before pasting)",
                        "type": "array",
                        "description": "Check readme on how to extract cookies from browser and paste as input"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
