Documentation

Integrations & API

A read-only REST API for packages, exam levels, and certificate verification — plus embeddable badges, RSS, and an in-page AI assistant. Plug it into your tools, ATS, CI pipelines, or personal site.

Packages

Read the entire package directory — search, filter by category, sort by any metric, paginate.

GET /api/v1/packages

Query parameters

ParamTypeDescription
searchstringName, description, tags, vendor.
categorystringFilter by category slug.
sortstringdefault · downloads · stars · monthly · name
per_pageint1–100 (default 20)

Example

curl
curl 'https://g4t.io/api/v1/packages?sort=downloads&per_page=3'
GET /api/v1/packages/{slug}

Single package with full detail — GitHub releases, rendered README, and trending state.

GET /api/v1/categories

Exam levels

Programmatic access to the exam catalogue. Useful for surfacing levels on your blog or in a dashboard.

GET /api/v1/exams
json
{
  "data": [
    {
      "name": "Beginner",
      "slug": "beginner",
      "mode": "mcq",
      "duration_minutes": 20,
      "questions_per_exam": 15,
      "passing_score": 70,
      "expiration_months": 12,
      "questions_pool": 250,
      "url": "https://g4t.io/exams#beginner"
    }
  ]
}
GET /api/v1/exams/{slug}

Certificate verification

Verify a g4t.io certificate from your hiring platform, internal tool, or someone's CV page.

GET /api/v1/certificates/{code}
json
{
  "valid": true,
  "status": "valid",
  "data": {
    "code": "ABCD-EFGH-IJKL",
    "recipient": {
      "name": "Jane Doe",
      "username": "jane",
      "profile": "https://g4t.io/u/jane"
    },
    "level": "Intermediate",
    "score": 88,
    "issued_at":  "2026-05-29T08:00:00+00:00",
    "expires_at": "2027-05-29T08:00:00+00:00",
    "expires_in_days": 365,
    "verify_url": "https://g4t.io/verify/ABCD-EFGH-IJKL",
    "badge_url":  "https://g4t.io/certificates/ABCD-EFGH-IJKL/badge.svg"
  }
}
An expired certificate returns 200 with valid: false, status: "expired". A missing code returns 404.

Site stats

Aggregate counts for badges, landing pages, "trusted by" sections. Cached 10 minutes.

GET /api/v1/stats
json
{
  "data": {
    "packages": { "total": 10, "total_downloads": 46920, "total_stars": 166 },
    "exams":    { "levels": 4, "certificates_issued": 42, "certificates_valid": 39 }
  },
  "cache_ttl_s": 600
}

Embeddable badges

Every issued certificate gets a self-contained SVG you can drop into a GitHub README, blog, or résumé. Colour switches to red when the certificate has expired.

GET /certificates/{code}/badge.svg

Markdown

markdown
[![g4t.io Certified](https://g4t.io/certificates/{code}/badge.svg)](https://g4t.io/verify/{code})

HTML

html
<a href="https://g4t.io/verify/{code}" target="_blank">
  <img src="https://g4t.io/certificates/{code}/badge.svg" alt="g4t.io Certified">
</a>

Packagist shields

markdown
[![Latest Version](https://img.shields.io/packagist/v/g4t/swagger)](https://packagist.org/packages/g4t/swagger)
[![Downloads](https://img.shields.io/packagist/dt/g4t/swagger)](https://packagist.org/packages/g4t/swagger)

RSS feed & AI lookup

Subscribe to recently-added packages, or talk to any package's repo via DeepWiki.

RSS

GET https://g4t.io/feed.rss

AI lookup (DeepWiki)

Every package page has an in-page Ask AI widget. You can also POST a question from your own client:

curl
curl -X POST 'https://g4t.io/packages/swagger/ai/ask' \
  -H 'Content-Type: application/json' \
  -H 'X-CSRF-TOKEN: …' \
  -d '{"question":"How do I add custom security schemes?"}'

Command palette index

GET https://g4t.io/search-index.json

Rate limits & auth

The API is public — no key required — but per-IP rate limits apply. Responses include the standard X-RateLimit-* headers. Cache where you can; prefer /stats over computing aggregates from /packages.

LinkedIn add-to-profile

Every issued certificate has an Add to LinkedIn button that opens LinkedIn's official Add-to-Profile flow pre-filled with the cert name, issuing organisation (G4T), issue date, certificate ID, and the public verify URL.

url-template
https://www.linkedin.com/profile/add?
  startTask=CERTIFICATION_NAME
  &name=…
  &organizationName=G4T
  &issueYear=2026
  &issueMonth=5
  &certId={cert-id}
  &certUrl={verify-url}