+GitLab API
Public gitlab.com projects, issues, merge requests, commits and releases as JSON, with no access token.
The API.SH GitLab API reads public data from gitlab.com. Search projects by keyword, topic or language, list a group's projects including subgroups, and pull one project with language shares, open issues and merge requests and its latest release. Project routes return branches, commits, issues, merge requests, releases and tags with filters and paging, and user and topic routes round it out.
- 12 endpoints
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/gitlab/v1/ projects
{ "success": true } What you can build with the GitLab API
Open source project research
Search projects by topic or language and compare stars, forks, open issues and last activity.
Issue and merge request analytics
Pull issues and merge requests with labels, state, dates and votes to measure response times and backlog.
Release and changelog tracking
Watch a project's releases and tags to get notified of new versions and read their release notes.
Organization inventories
List every project in a group and its subgroups to map an organization's public code.
Contributor activity
Read commits by author or date range and a user's public projects to see who works on what.
GitLab data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
GitLab API endpoints and prices
Every GitLab endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| GitLab project search /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab topics /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab user /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab group /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab group projects /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab project /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab project branches /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab project commits /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab project issues /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab project merge requests /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab project releases /gitlab/ | $1 · $2 PAYG 1 credit |
| GitLab project tags /gitlab/ | $1 · $2 PAYG 1 credit |
Call the GitLab API
GitLab project search: GET https://api.api.sh/gitlab/
curl "https://api.api.sh/gitlab/v1/projects?q=terraform" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/gitlab/v1/projects",
params={"q": "terraform"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/gitlab/v1/projects");
url.searchParams.set("q", "terraform");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); # Google Sheets (API.SH add-on)
=APISH("/gitlab/v1/projects", "q", "terraform")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "GitLab" and "GitLab project search".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 483 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for GitLab data
- Public data only: no GitLab login, cookies or account needed
- One key and one response shape for GitLab and 482 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official GitLab API
Yes. GitLab has a full official REST and GraphQL API (v4), with personal access tokens and rate limits. API.SH is not a replacement for it in your own GitLab instance; it is a read-only option for public gitlab.com data when you want no token setup and the same JSON shape and key you use for GitHub and other sites.
For public data, API.SH saves you managing tokens, pagination headers and rate limits with python-gitlab or a custom scraper: one key, one JSON shape, a fixed price per call.
GitLab API questions
What GitLab data can I get?+
Project search (/gitlab/v1/projects), one project (/gitlab/v1/project), branches, commits, issues, merge requests, releases and tags (/gitlab/v1/project/...), groups and group projects (/gitlab/v1/group, /gitlab/v1/group/projects), topics (/gitlab/v1/topics) and user profiles with their projects (/gitlab/v1/user).
How much does the GitLab API cost?+
Every GitLab endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free trial?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /gitlab/v1/group at 1 credit each.
Is there an official GitLab API?+
Yes, GitLab's REST API v4 and GraphQL API cover nearly everything in GitLab, including write actions, and they are the right choice for automating your own projects and pipelines. API.SH covers public gitlab.com data only, read-only, in the same format as its other platforms.
Do I need a GitLab account or access token?+
No. API.SH reads public gitlab.com projects, groups and users only. You use your API.SH key; no GitLab token, OAuth app or login is needed. Private projects and self-managed GitLab instances are not covered.
Can I get all projects in a group?+
Yes. /gitlab/v1/group/projects lists a group's projects, and include_subgroups adds the projects of every subgroup. Filter by keyword, language, visibility or archived state, and pass next_page back as page.
Can I use it from Python?+
Yes. Call it with requests or the API.SH Python SDK and you get JSON with a next_page value for paging, with no python-gitlab setup or token.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key from the dashboard. 3. Call /gitlab/v1/project with a path such as gitlab-org/gitlab-runner, then its issues or merge requests. Request examples and every parameter are in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp.