GitLab Projects - Repositories by Stars and Activity
Pricing
from $1.00 / 1,000 results
GitLab Projects - Repositories by Stars and Activity
Browse public GitLab repositories as flat rows - name, namespace, description, stars, forks and last activity. Free public API, no key.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
alaudin burki
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
GitLab Projects — Repositories by Stars and Activity
Browse public GitLab projects and get one flat row per repository: name, namespace path, description, stars, forks, topics, default branch and activity dates. The GitLab API is public for public projects, so no token is needed.
How to use
- Enter words to match in Search text, or a Topic tag such as
devopsorkubernetes, or leave both empty to browse the most-starred public projects. - Optionally set Order by to one of
id,name,path,created_at,updated_at,last_activity_atorstar_count. The sort direction is always descending, socreated_atgives the newest projects first. - Run the Actor. The dataset holds one row per project; the
SUMMARYkey-value record shows how many rows came back and why the run stopped.
Inputs
| Input | What it does | Default |
|---|---|---|
query | Words matched by GitLab against project names and descriptions. | none — no search term |
topic | GitLab topic tag to filter on, e.g. devops or kubernetes. | none — no topic filter |
orderBy | Field to order by: id, name, path, created_at, updated_at, last_activity_at or star_count. | star_count |
maxItems | Stop after this many rows. Capped at 20,000. | 500 |
maxPages | Stop after this many requests. Each request returns up to 100 projects. Capped at 200. | 5 |
Example input:
{ "query": "kubernetes", "topic": "devops", "orderBy": "star_count", "maxItems": 100, "maxPages": 1 }
Output dataset
| Field | Meaning |
|---|---|
name | Project display name, as GitLab stores it. Not unique on its own. |
pathWithNamespace | Full path including group or user, e.g. gitlab-org/gitlab-foss. This is the unique one. |
description | Project description. Null for projects that have none. |
stars | Star count recorded by GitLab at the time of the run. |
forks | Fork count recorded by GitLab at the time of the run. |
topics | Topic tags, joined into one comma-separated string because a dataset row is flat. |
defaultBranch | Name of the default branch, e.g. main. It is a project setting and can be anything. |
createdAt | ISO 8601 timestamp of when the project was created. |
lastActivity | ISO 8601 timestamp of the last recorded activity on the project. |
url | Web URL of the project, e.g. https://gitlab.com/group/project. |
Each row also carries id (gitlab: followed by the numeric project id), source, firstSeenAt and
scrapedAt. Rows are de-duplicated by project id, so a project that appears on two pages is stored once.
Why this is different
- It reads GitLab directly, at
gitlab.com, without a token — the usual reason a GitLab export stalls is authentication, and public project listing does not need it. - Every row carries both
pathWithNamespaceand the numeric project id, so results can be joined or revisited after a project is renamed. - The topic, search, ordering and paging parameters are separate inputs rather than one query string, so the request is readable and repeatable.
- Array-valued topics are flattened to a string, which keeps the dataset sortable and exportable as CSV without a second step.
SUMMARYrecordstruncatedandstopReason, so a capped run is visible instead of looking like a complete list.
Limitations
- Public projects only. Private and internal repositories require an authenticated token, which this Actor does not ask for.
- Only
gitlab.comis queried. Self-hosted GitLab instances are not covered. - Star and fork counts are snapshots from the moment of the run, not historical series.
- The search is GitLab's own matching on names and descriptions; it is not a code search and does not look inside repositories.
- The topic filter matches the tag exactly, so a project tagged
dev-opswill not matchdevops. - The sort direction cannot be changed — results are always descending, so
orderBy: "name"gives Z-to-A. - A run stops at
maxItemsormaxPages; the 500-row, 5-request default truncates a broad query.
FAQ
Do I need a GitLab account or token? No. Public project listing is read without credentials, and the Actor sends none.
Why does the same project name appear for different groups?
name is not unique. Use pathWithNamespace or id; both are unique per project.
Why are topics a string rather than a list?
The dataset row must be flat, so the array is joined with commas. Split on , if you need a list
back.
Can I search inside repository code? No. This Actor lists projects and their metadata, not their files.
What happens if GitLab rate-limits the run? Requests are spaced 200 ms apart and retried up to three times on rate-limit and server errors. If the first request still fails, the run stops with an error rather than returning an empty dataset.
Pricing and limits
Pricing is per event: one charge per run, with the current price shown on this Actor's Apify pricing panel. Requests return up to 100 projects each; a run defaults to 500 rows over 5 requests and can be raised to 20,000 rows and 200 requests. Requests are paced 200 ms apart and time out after 30 seconds. The source is free to query.