# GitHub Sponsors Discovery Scraper (`automation-lab/github-sponsors-discovery-scraper`) Actor

💖 Discover sponsorable OSS maintainers and organizations with public funding tiers, goals, featured work, and partnership links.

- **URL**: https://apify.com/automation-lab/github-sponsors-discovery-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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/platform/actors/running/actors-in-store#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.

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Sponsors Discovery Scraper

Discover public OSS sponsorship prospects, funding tiers, goals, featured work, and creator links from GitHub Sponsors.

### What does GitHub Sponsors Discovery Scraper do?

Discover public sponsorable developers and organizations from GitHub Sponsors Explore, or enrich known sponsor logins. The Actor turns public profile pages into consistent records ready for research, monitoring, and outreach planning.

### Who is it for?

DevRel teams can find maintainers aligned with their ecosystem. Open-source program offices and foundations can map funding needs. Sponsorship agencies can build prospect lists. Investors and researchers can monitor public OSS funding signals.

### Why use this GitHub Sponsors scraper?

GitHub Sponsors pages vary by creator and many fields are optional. This Actor deduplicates accounts, normalizes public identity and funding details, and preserves missing values without failing the run.

### What data can you extract?

Each row can include login, display name, account type, sponsor and GitHub profile URLs, avatar, bio, location, website, social links, categories, featured work, funding goal, progress, public tiers, source URL, and crawl timestamp.

### How to scrape GitHub Sponsors

Create a task, keep the prefilled Explore URL, choose a result limit, and run. Download the dataset as JSON, CSV, Excel, or another supported Apify format.

### Input options

Use startUrls for Explore or sponsor profile URLs. Use sponsorLogins when you already know accounts. maxItems is a global deduplicated cap. includeProfiles controls detail enrichment. proxyConfiguration is optional.

### Output example

A result contains `login`, `displayName`, `sponsorProfileUrl`, `bio`, `tiers`, `featuredWork`, and `scrapedAt`. Arrays preserve multiple links, works, and public funding tiers.

### How much does it cost to scrape GitHub Sponsors?

The Actor uses pay per event pricing: a **$0.005 run-start charge** plus a tier-dependent charge for each saved sponsor profile.

| Plan tier | Price per saved profile | Example: 100 profiles including start |
|---|---:|---:|
| FREE | $0.00013575 | about $0.0186 |
| BRONZE | $0.00011805 | about $0.0168 |
| SILVER | $0.000092075 | about $0.0142 |
| GOLD | $0.000070827 | about $0.0121 |
| PLATINUM | $0.000047218 | about $0.0097 |
| DIAMOND | $0.000033053 | about $0.0083 |

Actual totals depend on the number of profiles saved. The Apify Console shows the exact charge before and after each run.

### Scheduling and monitoring

Schedule weekly or monthly runs, export by login, and compare snapshots to detect new creators, tier changes, goal changes, or newly featured projects.

### Integrations

Send records to Google Sheets for review, Airtable for sponsorship pipelines, Slack for change alerts, webhooks for automation, or your CRM through the Apify API.

### API usage

Call `automation-lab/github-sponsors-discovery-scraper` with the Apify JavaScript or Python client. You can also POST JSON input to the Actor task or run endpoint with cURL.

```javascript
const run = await client.actor('automation-lab/github-sponsors-discovery-scraper').call({ maxItems: 25 });
````

```python
from apify_client import ApifyClient
client = ApifyClient('APIFY_TOKEN')
run = client.actor('automation-lab/github-sponsors-discovery-scraper').call(run_input={'maxItems': 20})
```

```bash
curl -X POST 'https://api.apify.com/v2/acts/automation-lab~github-sponsors-discovery-scraper/runs?token=TOKEN' -H 'content-type: application/json' -d '{"maxItems":25}'
```

### Use with MCP and AI agents

Connect through `https://mcp.apify.com/?tools=automation-lab/github-sponsors-discovery-scraper`. Ask Claude to discover maintainers, compare public tiers, or summarize OSS partnership prospects.

### Tips for reliable results

Start without a proxy for small runs. Use conservative limits. Enable an Apify Proxy for repeated large crawls. Treat goals and tiers as optional because creators decide what to publish.

### Legality and ethical use

The Actor collects public profile information only. Follow GitHub terms, applicable privacy rules, and outreach laws. Do not use results for spam, harassment, or sensitive profiling.

### FAQ

Does it need a GitHub token? No. It targets public Sponsors pages. Why is a field empty? The creator may not publish it. Why are fewer rows returned? The public page, limit, or transient throttling may constrain discovery.

### Troubleshooting

If a run returns fewer profiles, retry later or configure a proxy. Validate direct URLs use `/sponsors/<login>`. Keep enrichment enabled when you need tiers, goals, and featured work.

### Related scrapers

Combine this Actor with other `automation-lab` GitHub actors for repository, contributor, release, or security context. Sponsor-specific public funding fields remain the focus here.

### Support

Open an Actor issue with the run ID, input, expected behavior, and a safe example URL. Avoid sharing private credentials or personal sponsor relationship data.

### Practical workflow examples

#### DevRel partnership pipeline

1. Run Explore discovery weekly with profile enrichment enabled.
2. Filter profiles by bio, external links, featured work, and public tier availability.
3. Import shortlisted accounts into a CRM keyed by `login`.
4. Compare each new dataset with the previous run before contacting anyone.
5. Keep outreach relevant, human-reviewed, and compliant.

#### OSPO ecosystem mapping

1. Seed known maintainers through `sponsorLogins`.
2. Add Explore pages to discover adjacent sponsorable accounts.
3. Join records with repository or contributor datasets using the GitHub login.
4. Review public funding goals and featured work as optional context.
5. Refresh monthly to identify changed public information.

#### Foundation sponsorship review

1. Run direct sponsor URLs for applicants or existing grantees.
2. Export normalized public profile and tier information to a review sheet.
3. Preserve the `sourceUrl` and `scrapedAt` fields for traceability.
4. Have reviewers visit source profiles before making funding decisions.

### MCP setup for AI assistants

#### Claude Code

Add the Apify MCP server with the Actor-scoped URL:

```bash
claude mcp add --transport http apify https://mcp.apify.com/?tools=automation-lab/github-sponsors-discovery-scraper
```

Example prompt: “Discover 20 public GitHub Sponsors profiles, then group them by the ecosystems mentioned in their bios. Cite every source URL.”

#### Claude Desktop, Cursor, and VS Code

Add an HTTP MCP server named `apify`. A typical JSON configuration is:

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=automation-lab/github-sponsors-discovery-scraper"
    }
  }
}
```

Use the same scoped URL in clients that offer a form instead of JSON:

```text
https://mcp.apify.com/?tools=automation-lab/github-sponsors-discovery-scraper
```

Example prompts:

- “Enrich the public Sponsors profiles for pypa and eslint.”
- “Create a table of public monthly tiers and profile links for these logins.”
- “Compare two exported datasets by login and summarize changed public fields.”

### Troubleshooting guide

#### Why are optional goals or tiers empty?

Creators control which information is public. Empty optional arrays do not imply a failed request. Check the source profile before assuming a parsing issue.

#### Why did the Actor skip a profile?

The Actor rejects responses without meaningful public identity/profile content rather than charging for a skeletal row. Retry transient failures, lower concurrency, or configure Apify Proxy for repeated larger jobs.

#### Why are there fewer results than `maxItems`?

`maxItems` is a ceiling, not a guarantee. The supplied Explore pages may expose fewer unique profiles, duplicates are removed by login, and invalid responses are skipped.

### Interpreting funding intelligence

Treat each profile as a public snapshot, not a complete financial record.

- `tiers` captures only options visible on the Sponsors profile at scrape time.
- `fundingGoal` and `fundingProgress` may be absent when a maintainer does not publish a goal.
- `featuredWork` identifies projects the account chose to highlight; it is not a complete repository list.
- `categories` and social links help segment partnership candidates without inferring private attributes.
- `scrapedAt` lets scheduled workflows compare snapshots in chronological order.

For monitoring, key rows by `login` rather than display name. A maintainer can rename their public display name while retaining the same GitHub login. Store prior exports in a dedicated dataset or external warehouse, then compare normalized arrays before creating alerts.

### Responsible outreach workflow

A practical sponsorship pipeline keeps human review between discovery and contact:

1. Discover or enrich accounts relevant to your ecosystem.
2. Review the creator's bio, featured work, and public sponsorship options.
3. Verify technical relevance through public repositories and contribution history.
4. Select a public contact route provided by the maintainer.
5. Personalize the proposal around concrete open-source work.
6. Record opt-outs and avoid repeated unsolicited messages.

The Actor does not supply private emails or relationship data. Pair public funding signals with respectful review rather than bulk messaging.

### Related Automation Lab actors

Combine sponsorship intelligence with [GitHub Contributors Scraper](https://apify.com/automation-lab/github-contributors-scraper), [GitHub Trending Scraper](https://apify.com/automation-lab/github-trending-scraper), and [GitHub Security Advisories Scraper](https://apify.com/automation-lab/github-security-advisories-scraper). These links add repository, contributor, trend, and security context while this Actor remains focused on public Sponsors data.

# Actor input Schema

## `startUrls` (type: `array`):

GitHub Sponsors Explore pages or direct sponsor profile URLs.

## `sponsorLogins` (type: `array`):

Optional GitHub logins to enrich directly.

## `maxItems` (type: `integer`):

Stop after this many unique sponsorable accounts.

## `includeProfiles` (type: `boolean`):

Visit each public sponsor page for goals, tiers, links, and featured work.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy configuration for larger runs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://github.com/sponsors/explore"
    }
  ],
  "sponsorLogins": [],
  "maxItems": 20,
  "includeProfiles": true
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://github.com/sponsors/explore"
        }
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/github-sponsors-discovery-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 = {
    "startUrls": [{ "url": "https://github.com/sponsors/explore" }],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/github-sponsors-discovery-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 '{
  "startUrls": [
    {
      "url": "https://github.com/sponsors/explore"
    }
  ],
  "maxItems": 20
}' |
apify call automation-lab/github-sponsors-discovery-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/github-sponsors-discovery-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "GitHub Sponsors Discovery Scraper",
        "description": "💖 Discover sponsorable OSS maintainers and organizations with public funding tiers, goals, featured work, and partnership links.",
        "version": "0.1",
        "x-build-id": "wW6FhX40BjVMni8pX"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automation-lab~github-sponsors-discovery-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automation-lab-github-sponsors-discovery-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/automation-lab~github-sponsors-discovery-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automation-lab-github-sponsors-discovery-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/automation-lab~github-sponsors-discovery-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automation-lab-github-sponsors-discovery-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",
                "properties": {
                    "startUrls": {
                        "title": "🔎 Explore or sponsor URLs",
                        "type": "array",
                        "description": "GitHub Sponsors Explore pages or direct sponsor profile URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "sponsorLogins": {
                        "title": "Sponsor logins",
                        "type": "array",
                        "description": "Optional GitHub logins to enrich directly.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum sponsor profiles",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Stop after this many unique sponsorable accounts.",
                        "default": 20
                    },
                    "includeProfiles": {
                        "title": "Enrich sponsor profiles",
                        "type": "boolean",
                        "description": "Visit each public sponsor page for goals, tiers, links, and featured work.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional Apify Proxy configuration for larger runs."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
