# GitHub Weekly Trending Repos & Org Repo Finder (`dataspryva/github-weekly-trending-repos-and-org-repo-finder`) Actor

Find GitHub repositories gaining stars this week, run keyword searches across all public repos, or list an organization's public repos with stars, forks, language, topics and license for each one.

- **URL**: https://apify.com/dataspryva/github-weekly-trending-repos-and-org-repo-finder.md
- **Developed by:** [Dataspryva](https://apify.com/dataspryva) (community)
- **Categories:** Developer tools, Automation, Open source
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## GitHub Trending, Developer & Organization Repository Scraper

Track what GitHub is amplifying right now, then go deeper: scrape the Trending page for repositories and developers, search every public repository, list an organization's or user's repos, or pull complete details for repositories you already care about. Every request is cookieless and works without a GitHub account or token.

### What you can collect

Six modes share one output shape:

| Mode | What it does |
|---|---|
| `trending` | The actual github.com/trending list, filtered by daily/weekly/monthly period, programming language and spoken language |
| `developers` | The github.com/trending/developers list: developer, avatar, profile URL and the repository that put them on the list |
| `search` | Keyword search across public repository names, descriptions and READMEs, with server-side language, star and push-date filters |
| `orgRepos` | Every public repository owned by an organization, paginated up to 1,000 results |
| `userRepos` | Every public repository owned by a user, paginated up to 1,000 results |
| `repoDetails` | Full metadata for a list of `owner/repo` paths or GitHub URLs, with optional language breakdown, top contributors and README markdown |

### Output fields

Repository records use these fields (empty values are omitted, never `null`):

- **Identity** — `repoId`, `repoName`, `owner`, `ownerType`, `ownerUrl`, `ownerAvatarUrl`, `fullName`
- **Visibility** — `visibility`, `defaultBranch`, `isForked`, `isArchived`, `isTemplate`, `allowForking`
- **Popularity** — `stars`, `forks`, `watchers`, `subscribers`, `openIssues`, `networkCount`
- **Trending** — `trendingRank`, `trendingPeriod`, `starsGained`, `starsGrowthPercent`, `builtBy[]`
- **Content** — `description`, `homepage`, `topics[]`, `language`, `languages` (byte breakdown), `languagesCount`
- **Dates** — `createdAt`, `updatedAt`, `pushedAt`
- **License** — `license`, `licenseKey`, `licenseSpdxId`, `licenseUrl`
- **Links** — `repoUrl`, `cloneUrl`, `sshUrl`, `stargazersUrl`, `forksUrl`, `contributorsUrl`, `releasesUrl`
- **Detail extras** — `contributors[]`, `readme`
- **Metadata** — `recordType` (`github_repo` or `github_developer`), `scrapedAt`

Developer records carry `username`, `displayName`, `avatarUrl`, `profileUrl`, `popularRepoName`, `popularRepoFullName`, `popularRepoDescription`, `popularRepoUrl`, `trendingRank`, `trendingPeriod`, `recordType` and `scrapedAt`. Set `includeDeveloperProfiles` to add `bio`, `followers`, `following`, `publicRepos`, `company`, `location`, `blogUrl`, `twitterUsername`, `profileCreatedAt` and `profileUpdatedAt`.

### Input

| Field | Default | Notes |
|---|---|---|
| `mode` | `trending` | One of the six modes above |
| `since` | `weekly` | `daily`, `weekly` or `monthly` for trending/developers |
| `searchQuery` | `machine learning` | Free-text query, GitHub search qualifiers allowed |
| `language` | all | Programming language dropdown; `customLanguage` overrides it |
| `spokenLanguage` | all | README language filter for trending |
| `customSpokenLanguage` | — | Free-text ISO code that overrides the spoken-language dropdown |
| `org` / `user` | `openai` / `torvalds` | Organization or user login (URLs accepted) |
| `repoUrls` | `[]` | `owner/repo` paths or GitHub URLs for `repoDetails` |
| `sortBy` | `stars` | `stars`, `forks`, `updated`, `help-wanted-issues` or `best-match` |
| `minStars` | `0` | Minimum star count; 0 disables |
| `pushedWithinDays` | `0` | Only repos pushed within N days; 0 disables |
| `aiOnly` | `false` | Keep AI/ML-related repos based on topics and descriptions |
| `filterTopics` | `[]` | Keep repos with at least one of these topics |
| `includeForks` | `false` | Include forked repositories |
| `includeDeveloperProfiles` | `false` | Profile bio and stats (developers) |
| `includeLanguages` | `true` | Language byte breakdown (repoDetails) |
| `includeContributors` | `false` | Top 10 contributors (repoDetails) |
| `includeReadme` | `false` | README markdown (repoDetails) |
| `maxItems` | `20` | 1–1,000 |

#### Examples

This week's trending Rust repositories:

```json
{ "mode": "trending", "language": "Rust", "since": "weekly", "maxItems": 20 }
```

Trending developers this month:

```json
{ "mode": "developers", "since": "monthly", "maxItems": 25 }
```

Search for actively maintained vector databases:

```json
{
  "mode": "search",
  "searchQuery": "vector database",
  "language": "Python",
  "minStars": 500,
  "pushedWithinDays": 90,
  "sortBy": "stars",
  "maxItems": 50
}
```

Every public repo in an organization, newest activity first:

```json
{ "mode": "orgRepos", "org": "vercel", "sortBy": "updated", "maxItems": 100 }
```

Full details plus contributors for three repositories:

```json
{
  "mode": "repoDetails",
  "repoUrls": ["openai/whisper", "https://github.com/rust-lang/rust", "pallets/flask"],
  "includeContributors": true,
  "includeReadme": true,
  "maxItems": 3
}
```

### How it works

- **Trending** is scraped from the public GitHub Trending HTML page, so it reflects the same ordering GitHub shows. The page exposes about 25 repositories per period/language; filters are applied after parsing.
- **Search, org and user** modes use GitHub's public search API. The search UI and API both cap a single query at 1,000 results; narrow with language, stars, dates or topics to cover more.
- **Repository details** use the public repository endpoint and, only when you enable them, the languages, contributors and README endpoints.
- If the unauthenticated API limit is reached, the actor falls back to GitHub's public HTML pages where possible and says so in the run status. Trending mode does not depend on the API.
- Every field is written only when the source has a real value; empty values and empty lists are omitted at every depth.

### No credentials, no proxy setup

The actor uses public GitHub pages and endpoints only. You do not need a GitHub token, cookie, login or proxy configuration. Unauthenticated GitHub API allowances are shared per IP, which is enough for normal runs; very large searches may pause briefly or fall back to HTML.

### FAQ

**Is this the same list as github.com/trending?**
Yes for `trending` and `developers`: those modes parse the Trending pages directly, including the selected period and language.

**Why did trending return fewer than `maxItems`?**
GitHub Trending publishes roughly 25 repositories or developers per period/language combination. Switch language or period to see a different slice.

**Why is my search capped at 1,000 records?**
That is GitHub's search API limit for any single query. Split the request by language, topic, star range or keyword to collect more.

**Why are some fields missing on trending records?**
Trending-page fields are always present when GitHub shows them. Deeper metadata (repository ID, topics, license, dates) comes from the public repository endpoint; if that endpoint is rate-limited, the actor keeps the trending-page fields instead of inventing values.

**Are forks included?**
No by default. Set `includeForks` to `true` for search, org and user modes.

**Can I use saved inputs from the previous version?**
Yes. Existing `mode`, `searchQuery`, `language`, `org`, `sortBy` and `maxItems` inputs keep working. The actor also recognizes common legacy aliases such as `query`, `maxRepos`, `scrapeType` and `resultsPerQuery` in code, without cluttering the input form.

**How does `aiOnly` work?**
A repository counts as AI-related when its GitHub topics match an AI/ML list or its name/description contains AI/ML phrases such as “large language model”, “computer vision”, “RAG” or “fine-tuning”. Use `filterTopics` for exact topic control.

**Is this affiliated with GitHub?**
No. This is an independent third-party actor that reads publicly available GitHub data. It is not endorsed by or affiliated with GitHub, Inc.

### Data source

Public GitHub Trending pages (`github.com/trending`), the public GitHub REST API (`api.github.com`), and `raw.githubusercontent.com` for optional README downloads. No authentication is used.

# Actor input Schema

## `mode` (type: `string`):

What to fetch: GitHub Trending repositories, trending developers, keyword search, an organization's repos, a user's repos, or specific repository details.

## `since` (type: `string`):

Time window for trending repositories and developers (mode=trending / developers).

## `searchQuery` (type: `string`):

Keywords to search in repository names, descriptions and READMEs (mode=search). GitHub search syntax such as `language:` or `topic:` also works.

## `language` (type: `string`):

Restrict results to one programming language (all modes except developers; trending uses the language's trending page).

## `customLanguage` (type: `string`):

Optional free-text GitHub language name that overrides the dropdown above (e.g. `Blade`, `QML`, `Tcl`).

## `spokenLanguage` (type: `string`):

Only show trending repos whose README is written in this language (mode=trending).

## `customSpokenLanguage` (type: `string`):

Optional ISO 639-1 code that overrides the spoken language dropdown (e.g. `fi`, `uk`, `vi`).

## `org` (type: `string`):

GitHub organization login or profile URL (mode=orgRepos).

## `user` (type: `string`):

GitHub user login or profile URL (mode=userRepos).

## `repoUrls` (type: `array`):

Repository links or `owner/repo` paths, one per line (mode=repoDetails).

## `sortBy` (type: `string`):

Result order for search, org and user modes. `Best match` uses GitHub relevance; other values rank by that metric.

## `minStars` (type: `integer`):

Drop repositories with fewer stars than this. Set 0 to disable.

## `pushedWithinDays` (type: `integer`):

Only repositories with a push in the last N days. Set 0 to disable (365 = one year).

## `aiOnly` (type: `boolean`):

Keep repositories related to AI, machine learning, LLMs, computer vision and related topics (all repository modes).

## `filterTopics` (type: `array`):

Keep repositories with at least one of these GitHub topics (e.g. `llm`, `rag`, `pytorch`). Empty = no topic filter.

## `includeForks` (type: `boolean`):

Include forked repositories in search, org and user results. Off by default for a clean signal.

## `includeDeveloperProfiles` (type: `boolean`):

Fetch bio, followers, public repo count, company and location for each trending developer (mode=developers). Adds one request per developer.

## `includeLanguages` (type: `boolean`):

Fetch the byte-count language breakdown for each repository (mode=repoDetails). Adds one request per repository.

## `includeContributors` (type: `boolean`):

Fetch the top 10 contributors for each repository (mode=repoDetails). Adds one request per repository.

## `includeReadme` (type: `boolean`):

Fetch each repository's README as markdown (mode=repoDetails). Adds one download per repository.

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

Maximum number of records to return. GitHub search, org and user modes cap at 1,000 results; Trending exposes about 25 per page.

## Actor input object example

```json
{
  "mode": "trending",
  "since": "weekly",
  "searchQuery": "machine learning",
  "language": "",
  "spokenLanguage": "",
  "org": "openai",
  "user": "torvalds",
  "repoUrls": [],
  "sortBy": "stars",
  "minStars": 0,
  "pushedWithinDays": 0,
  "aiOnly": false,
  "filterTopics": [],
  "includeForks": false,
  "includeDeveloperProfiles": false,
  "includeLanguages": true,
  "includeContributors": false,
  "includeReadme": false,
  "maxItems": 3
}
```

# Actor output Schema

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

Dataset containing all scraped GitHub repository and developer records.

# 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 = {
    "mode": "trending",
    "maxItems": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("dataspryva/github-weekly-trending-repos-and-org-repo-finder").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 = {
    "mode": "trending",
    "maxItems": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("dataspryva/github-weekly-trending-repos-and-org-repo-finder").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 '{
  "mode": "trending",
  "maxItems": 3
}' |
apify call dataspryva/github-weekly-trending-repos-and-org-repo-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dataspryva/github-weekly-trending-repos-and-org-repo-finder"
        }
    }
}
```

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/U0CWdV7bxFGtUC1Ne/builds/DGRXP7CBtuvak3Z5y/openapi.json
