Skip to main content
API Reference

Public REST API

Fetch your releases, changelog entries, and developer feeds programmatically. All public endpoints are CORS-enabled and require no authentication.

Base URL

https://yanib.dev

All endpoints return JSON. CORS is enabled for cross-origin requests. Responses are cached for 60s (client) and 5min (CDN).

Endpoints

GET/api/v1/releases

Fetch published releases for a repo with all changelog entries.

Parameters

NameTypeRequiredDescription
repostringNoRepository full name (e.g. owner/repo)
slugstringNoChangelog slug (alternative to repo)
limitnumberNoMax results (default 10, max 50)

Example

curl https://yanib.dev/api/v1/releases?repo=acme/web&limit=5

Response

{
  "repo": {
    "fullName": "acme/web",
    "slug": "acme-web",
    "title": "Acme Web",
    "changelogUrl": "https://yanib.dev/changelog/acme-web"
  },
  "releases": [
    {
      "id": "clx...",
      "tag": "v2.4.0",
      "summary": "Team collaboration, auth fixes, legacy API removed",
      "publishedAt": "2026-04-10T14:00:00.000Z",
      "entries": [
        {
          "title": "Team roles & collaboration",
          "description": "Owner, Admin, Member roles with invite flow",
          "changeType": "FEATURE",
          "prNumber": 42
        }
      ]
    }
  ]
}
GET/api/v1/releases/latest

Fetch the single most recent published release.

Parameters

NameTypeRequiredDescription
repostringNoRepository full name
slugstringNoChangelog slug (alternative to repo)

Example

curl https://yanib.dev/api/v1/releases/latest?slug=acme-web

Response

{
  "release": {
    "tag": "v2.4.0",
    "summary": "Team collaboration, auth fixes",
    "publishedAt": "2026-04-10T14:00:00.000Z",
    "entries": [
      { "title": "Team roles", "changeType": "FEATURE" }
    ],
    "changelogUrl": "https://yanib.dev/changelog/acme-web"
  }
}
GET/api/changelog/{slug}/embed

JSON endpoint for embeddable widgets. Returns the latest releases formatted for the SDK components. CORS-enabled.

Parameters

NameTypeRequiredDescription
slugstring (path)YesChangelog slug from the repo settings

Example

curl https://yanib.dev/api/changelog/acme-web/embed

Response

{
  "repo": { "fullName": "acme/web", "title": "Acme Web" },
  "releases": [...]
}
GET/api/feed/{username}

Public JSON feed of a developer's releases across all repos. Used by the <yanib-feed> SDK component.

Parameters

NameTypeRequiredDescription
usernamestring (path)YesYanib username
limitnumberNoMax results (default 10)

Example

curl https://yanib.dev/api/feed/alice?limit=5

Response

{
  "user": { "username": "alice", "name": "Alice" },
  "releases": [...]
}

Embed SDK

Drop one script tag on your site and use web components to display changelogs, banners, notifications, and developer feeds.

<script src="https://yanib.dev/sdk.js"></script>

<!-- Full changelog feed -->
<yanib-changelog slug="your-repo-slug" theme="light" limit="5" />

<!-- Dismissible announcement banner -->
<yanib-banner slug="your-repo-slug" dismissible="true" />

<!-- Notification bell popup -->
<yanib-notifications slug="your-repo-slug" position="bottom-right" />

<!-- Personal developer feed -->
<yanib-feed user="your-username" limit="5" />
See live demo