Skip to main content
API Reference

Public REST API

Fetch your releases, story 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 story entries.

Parameters

NameTypeRequiredDescription
repostringNoRepository full name (e.g. owner/repo)
slugstringNoStory page 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",
    "storyUrl": "https://yanib.dev/stories/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
slugstringNoStory page 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" }
    ],
    "storyUrl": "https://yanib.dev/stories/acme-web"
  }
}
GET/api/stories/{slug}/embed

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

Parameters

NameTypeRequiredDescription
slugstring (path)YesStory page slug from the repo settings

Example

curl https://yanib.dev/api/stories/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 stories, banners, notifications, and developer feeds.

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

<!-- Full story feed -->
<yanib-stories 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