{
  "openapi": "3.0.1",
  "info": {
    "title": "GitHub Trending Scraper — Trending Repos, Stars & Topics",
    "description": "GitHub Trending scraper: daily, weekly or monthly trending repositories by programming language and spoken language, with stars, forks, stars gained in the period and description. Optional GitHub API details (topics, license, dates, open issues) and repo search. From US$0.80 per 1,000 repos.",
    "version": "0.1",
    "x-build-id": "Nqaletd6TlRhPr2K5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fabrikit~github-trending-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fabrikit-github-trending-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/fabrikit~github-trending-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fabrikit-github-trending-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/fabrikit~github-trending-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fabrikit-github-trending-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": {
          "periods": {
            "title": "Date ranges",
            "type": "array",
            "description": "Trending lists to read: daily (stars gained today), weekly (this week) and/or monthly (this month). The same repository can appear once per period, each time with the stars gained in that period.",
            "items": {
              "type": "string",
              "enum": [
                "daily",
                "weekly",
                "monthly"
              ],
              "enumTitles": [
                "Today (daily)",
                "This week (weekly)",
                "This month (monthly)"
              ]
            },
            "default": [
              "daily"
            ]
          },
          "languages": {
            "title": "Programming languages",
            "type": "array",
            "description": "One trending list per language, as GitHub names it: Python, TypeScript, Rust, Go, C++, C#, Jupyter Notebook, Unknown languages... (a github.com/trending/<language> URL also works). Leave empty for the all-languages list; add \"all\" to get it next to specific languages. A repository already saved for a period from an earlier list is not saved again.",
            "items": {
              "type": "string"
            }
          },
          "spokenLanguage": {
            "title": "Spoken language",
            "enum": [
              "any",
              "ab",
              "aa",
              "af",
              "ak",
              "sq",
              "am",
              "ar",
              "an",
              "hy",
              "as",
              "av",
              "ae",
              "ay",
              "az",
              "bm",
              "ba",
              "eu",
              "be",
              "bn",
              "bh",
              "bi",
              "bs",
              "br",
              "bg",
              "my",
              "ca",
              "km",
              "ch",
              "ce",
              "ny",
              "zh",
              "cu",
              "cv",
              "kw",
              "co",
              "cr",
              "hr",
              "cs",
              "da",
              "dv",
              "nl",
              "dz",
              "en",
              "eo",
              "et",
              "ee",
              "fo",
              "fj",
              "fi",
              "fr",
              "ff",
              "gd",
              "gl",
              "lg",
              "ka",
              "de",
              "el",
              "gn",
              "gu",
              "ht",
              "ha",
              "he",
              "hz",
              "hi",
              "ho",
              "hu",
              "is",
              "io",
              "ig",
              "id",
              "ia",
              "ie",
              "iu",
              "ik",
              "ga",
              "it",
              "ja",
              "jv",
              "kl",
              "kn",
              "kr",
              "ks",
              "kk",
              "ki",
              "rw",
              "ky",
              "kv",
              "kg",
              "ko",
              "kj",
              "ku",
              "lo",
              "la",
              "lv",
              "li",
              "ln",
              "lt",
              "lu",
              "lb",
              "mk",
              "mg",
              "ms",
              "ml",
              "mt",
              "gv",
              "mi",
              "mr",
              "mh",
              "mn",
              "na",
              "nv",
              "ng",
              "ne",
              "nd",
              "se",
              "no",
              "nb",
              "nn",
              "oc",
              "oj",
              "or",
              "om",
              "os",
              "pi",
              "ps",
              "fa",
              "pl",
              "pt",
              "pa",
              "qu",
              "ro",
              "rm",
              "rn",
              "ru",
              "sm",
              "sg",
              "sa",
              "sc",
              "sr",
              "sn",
              "ii",
              "sd",
              "si",
              "sk",
              "sl",
              "so",
              "nr",
              "st",
              "es",
              "su",
              "sw",
              "ss",
              "sv",
              "tl",
              "ty",
              "tg",
              "ta",
              "tt",
              "te",
              "th",
              "bo",
              "ti",
              "to",
              "ts",
              "tn",
              "tr",
              "tk",
              "tw",
              "ug",
              "uk",
              "ur",
              "uz",
              "ve",
              "vi",
              "vo",
              "wa",
              "cy",
              "fy",
              "wo",
              "xh",
              "yi",
              "yo",
              "za",
              "zu"
            ],
            "type": "string",
            "description": "Only repositories whose README / description is written in this language (GitHub's own spoken-language filter, applied to every list).",
            "default": "any"
          },
          "maxItems": {
            "title": "Maximum repositories",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many repositories in total across all lists and searches (exact). Each trending list holds up to 25 repositories.",
            "default": 100
          },
          "includeRepoDetails": {
            "title": "Add GitHub API details",
            "type": "boolean",
            "description": "Look up each trending repository in the GitHub REST API to add topics, license, homepage, creation / last push dates, open issues, watchers, default branch, size and archived / fork / template flags. One API request per repository: without a token GitHub allows 60 per hour per IP, so for more than ~50 repositories per hour add a token below. Repositories beyond the limit are still saved, with detailsStatus \"rate-limited\".",
            "default": false
          },
          "githubToken": {
            "title": "GitHub token (optional)",
            "type": "string",
            "description": "Personal access token used only for api.github.com requests (details and searches): 5,000 requests per hour and 30 searches per minute instead of 60 and 10. A fine-grained token with public-repository read access and no extra permissions is enough (https://github.com/settings/personal-access-tokens). Never written to the dataset or the logs."
          },
          "searchQueries": {
            "title": "Repository searches (optional)",
            "type": "array",
            "description": "GitHub repository search queries run through the API, in GitHub's search syntax, e.g. \"topic:llm stars:>500\", \"language:rust created:>=2026-10-01\", \"mcp server in:name,description\". Results come with topics, license and dates included and source = \"search\".",
            "items": {
              "type": "string"
            }
          },
          "searchSort": {
            "title": "Search sort order",
            "enum": [
              "stars",
              "forks",
              "updated",
              "best-match"
            ],
            "type": "string",
            "description": "Order of the search results.",
            "default": "stars"
          },
          "searchCreatedWithinDays": {
            "title": "Only repositories created in the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Adds created:>=<date> to every search query that has no created: filter of its own. With sort \"Most stars\" this lists the new repositories that collected the most stars, e.g. 7 for this week's breakout projects."
          },
          "maxResultsPerQuery": {
            "title": "Results per search query",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum repositories per search query (GitHub returns at most 1,000 per query, 100 per request).",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Trending pages load without a proxy. If GitHub ever refuses them on Apify, the Actor moves by itself to Apify datacenter and then residential proxy for those pages. API requests always go out directly.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}