GitLab Projects Scraper - Open Source Repos, Stars & Topics avatar

GitLab Projects Scraper - Open Source Repos, Stars & Topics

Pricing

from $6.80 / 1,000 results

Go to Apify Store
GitLab Projects Scraper - Open Source Repos, Stars & Topics

GitLab Projects Scraper - Open Source Repos, Stars & Topics

Scrape public GitLab.com projects by keyword, topic or path with stars, forks, topics, activity, namespace and web URL. Optional language breakdown, license and latest release. JSON, CSV, Excel.

Pricing

from $6.80 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

GitLab Projects Scraper - Open Source Repos, Stars & Topics

GitLab Projects Scraper - Open Source Repos, Stars & Topics

Here is one real result, with every field the actor returns:

{
"id": 250833,
"name": "gitlab-runner",
"pathWithNamespace": "gitlab-org/gitlab-runner",
"namespace": "GitLab.org",
"namespaceKind": "group",
"namespaceFullPath": "gitlab-org",
"description": "GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab",
"starCount": 2569,
"forksCount": 2646,
"openIssuesCount": null,
"topics": ["golang", "hacktoberfest"],
"createdAt": "2015-04-27T21:10:25.322Z",
"lastActivityAt": "2026-08-17T07:48:29.709Z",
"defaultBranch": "main",
"webUrl": "https://gitlab.com/gitlab-org/gitlab-runner",
"avatarUrl": "https://gitlab.com/uploads/-/system/project/avatar/250833/runner.png",
"readmeUrl": "https://gitlab.com/gitlab-org/gitlab-runner/-/blob/main/README.md",
"visibility": "public",
"languageBreakdown": { "Go": 98.33, "Shell": 0.87, "Makefile": 0.49, "HCL": 0.14, "PowerShell": 0.07 },
"primaryLanguage": "Go",
"license": "MIT License",
"latestReleaseTag": "v19.2.2",
"latestReleaseName": "v19.2.2",
"latestReleaseAt": "2026-08-13T15:31:29.907Z",
"aiWhatItDoes": "GitLab Runner is an open-source tool that executes CI/CD jobs and reports the results back to GitLab, facilitating continuous integration and deployment workflows.",
"aiCategory": "CI/CD",
"aiTechStack": ["Go", "Shell", "Makefile", "HCL", "PowerShell"],
"aiTargetUser": "Developers and DevOps teams looking to automate their software development processes.",
"source": "GitLab",
"observedAt": "2026-08-17T08:24:29.811Z",
"error": null
}

The most complete GitLab.com projects scraper available. It browses or searches public projects and returns every listing field GitLab exposes, including stars, forks, open issues, topics, namespace, activity and web URL, plus optional add-ons that enrich each project with its full language breakdown, license and latest release, and an AI summary of what the project does. Complements our GitHub Repositories Scraper by covering the GitLab ecosystem.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor browses or searches public projects on GitLab.com and writes one normalized record per project to the run's dataset. Each record carries the project metadata (stars, forks, open issues, topics, namespace, default branch, activity timestamps and web URL). Optional paid add-ons fetch the project's language breakdown, license and latest release, and write an AI summary describing what the project does, its category, tech stack and target user.

Three ways to find projects:

  • Browse the most popular public projects, sorted by stars, last activity or creation date.
  • Search project names and descriptions by keyword, optionally filtered by topic.
  • Project lookups by exact namespace/project path for a known list of repositories.

Data covers only what GitLab exposes publicly. Fields a project keeps private or has disabled (for example releases on a project with releases turned off) are returned as null; the actor never invents a value.

Use cases

  • OSS intelligence. Track the open-source projects, tooling and communities that live on GitLab rather than GitHub, with stars, forks and activity as adoption signals.
  • Developer tools and market research. Map competing projects in a category, watch topic ecosystems (devops, kubernetes, rust) and benchmark popularity and release cadence.
  • Dependency and supply-chain tracking. Monitor specific namespace/project paths for latest release tags, license changes and activity so you know when an upstream dependency moves.
  • Recruiting and developer sourcing. Discover active maintainers and groups behind popular projects in a language or topic, with links straight to each project and namespace.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the top 5 most-starred public GitLab projects.

{
"mode": "browse",
"sort": "stars",
"maxResults": 5
}

Search a topic with full enrichment:

{
"mode": "search",
"query": "kubernetes",
"sort": "stars",
"maxResults": 25,
"includeDetails": true,
"withAiSummary": true
}

Input reference

FieldTypeRequiredDefaultDescription
modestringnobrowsebrowse lists top public projects, search filters by keyword/topic, project looks up specific paths.
querystringnoKeyword to search project names and descriptions (search mode).
topicstringnoFilter projects by a GitLab topic/tag, for example devops.
sortstringnostarsOrder results by stars, activity (last updated) or created (newest).
minStarsintegerno0Only keep projects with at least this many stars.
projectPathsstring[]noSpecific projects to look up as namespace/project (project mode).
maxResultsintegerno25Maximum number of projects to collect.
includeDetailsbooleannofalsePaid add-on. Adds language breakdown, license and latest release per project. Charged per project enriched.
withAiSummarybooleannofalsePaid add-on. Adds an AI summary, category, tech stack and target user per project. Charged per project summarised.

Paid add-ons are disabled for free (non-paying) Apify users.

Output reference

One dataset item per project. Types: string, integer, object, string[], or null when the source value is absent.

FieldTypeDescription
idintegerGitLab numeric project ID.
namestringProject name.
pathWithNamespacestringnamespace/project identifier.
namespacestringNamespace (group or user) display name.
namespaceKindstringgroup or user.
namespaceFullPathstringFull namespace path.
descriptionstringProject description, or null.
starCountintegerStar count.
forksCountintegerFork count.
openIssuesCountintegerOpen issues count, or null when disabled.
topicsstring[]Project topics/tags set by the owner.
createdAtstringISO 8601 creation timestamp.
lastActivityAtstringISO 8601 last-activity timestamp.
defaultBranchstringDefault branch name.
webUrlstringCanonical project URL.
avatarUrlstringProject avatar image URL, or null.
readmeUrlstringREADME URL, or null.
visibilitystringProject visibility, always public.
languageBreakdownobjectDetails add-on. Map of language to percent.
primaryLanguagestringDetails add-on. Highest-percentage language.
licensestringDetails add-on. License name, or null.
latestReleaseTagstringDetails add-on. Latest release tag, or null.
latestReleaseNamestringDetails add-on. Latest release name, or null.
latestReleaseAtstringDetails add-on. Latest release date, or null.
aiWhatItDoesstringAI add-on. Plain-English summary of the project.
aiCategorystringAI add-on. Normalized category label.
aiTechStackstring[]AI add-on. Inferred tech stack.
aiTargetUserstringAI add-on. Who the project is for.
sourcestringAlways GitLab.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringPresent only on a failed lookup, where an item with a populated error field is written instead.

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~gitlab-projects-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode":"search","query":"kubernetes","maxResults":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~gitlab-projects-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode":"browse","sort":"stars","maxResults":100,"includeDetails":true}'

Apify CLI:

apify call scrapers_lat/gitlab-projects-scraper \
--input '{"mode":"project","projectPaths":["gitlab-org/gitlab-runner"],"includeDetails":true}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per project returned (result event). See the pricing tab for the current per-result price.
  • Details add-on. The details event (includeDetails) is billed once per project only when the language breakdown, license or latest release is genuinely returned.
  • AI add-on. The ai_summary event (withAiSummary) is billed per project only when a usable AI summary is produced.
  • No charge on failure. If a lookup errors, the actor writes an item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results and add-ons.
  • Free Apify plans are capped at 10 projects per run and cannot use the paid add-ons. Upgrade for higher maxResults and enrichment.

FAQ and troubleshooting

A run returned 0 records. Why? The browse or search filter matched nothing. Loosen the query, drop the topic or lower minStars. Zero-result runs are not charged.

How do I look up specific projects? Set mode to project and pass projectPaths as a list of namespace/project strings, for example gitlab-org/gitlab-runner. Each path is resolved individually and a bad path returns an error row without a charge.

Why is latestReleaseTag null on some projects? GitLab lets a project disable its releases feature. When releases are off or a project has none, the field is null. Languages and license are still returned when available.

What do the add-ons cost me? includeDetails adds language, license and release data and is billed per project enriched. withAiSummary adds an AI description and is billed per project summarised. Both require a paid Apify plan and are billed only when they produce data.

Is this an official GitLab tool? No. This actor is independent and has no affiliation with GitLab. It reads only data that is publicly available through GitLab.com. Use it in accordance with GitLab's terms of service.