HonestHook

Free API key (1,000/mo)Sign in

Home · Docs · Endpoints · github/repo/releases

github/repo/releases — the releases, and why most are prereleases

A repository's releases by `owner/name`. Every item says `prerelease` and `draft`, because seven of ten in a real call were prereleases — the most recent one included.

The call

PathGET /api/v1/github/repo/releases
Catalogue idgithub/repo/releases
Cost1 credit per call. A call that finds nothing costs nothing.
KeyRequired — Authorization: Bearer hk_live_...

Parameters (2)

NameInRequired
repoqueryyes
limitqueryno

That list is the whole list, and anything else is ignored in silence. An undeclared parameter is not rejected — it produces no error, no warning and no filtering. Check a parameter against this table before assuming a narrower result came back.

What the parameter list does not tell you

⚠️ 'THE LATEST RELEASE' IS USUALLY NOT A RELEASE. Measured: of ten items one real call returned, SEVEN were prereleases, and the most recent was a canary. Code that takes `items[0]` as the current version of a project will report a canary build as stable most of the time, on a popular repository, with no error anywhere. Read `prerelease` and `draft` on the item before believing its tag.

⚠️ `reactions.total_count` IS NOT LIKES, AND THE DIFFERENCE IS MEASURED. A release with `total_count` 3 had ONE `+1` and TWO `hooray`. GitHub reactions are eight distinct kinds and the total sums all of them, including `confused` and `-1`. Treating that total as approval counts a thumbs-down as applause.

SO THE REACTION NAMES ARE KEPT AS GITHUB'S. `+1`, `-1`, `laugh`, `hooray`, `confused`, `heart`, `rocket`, `eyes` — not folded into `likes`. Folding them would produce exactly the error above, permanently, inside our own response.

`assets` IS A COUNT, NOT THE FILES. It tells you how many binaries are attached, not their names or URLs. A release listing that embedded asset arrays would make the response size depend on how many platforms a project ships for.

Why there is no success body on this page

The 200 body for this endpoint is not transcribed here. Reading it needs a client key, and there is no client key on the machine these pages were built from — internal keys exist only as hashes, by design. An example we never received would look exactly like one we did, so instead of composing one, the response shape is documented field by field on the schema pages below. Those are generated from the contract and tested against it in both directions; an invented example would be tested by nothing.

Response shapes (3)

Error codes (8)

Every one of them carries the same body shape: ApiError. The error value is a stable string you can branch on — branch on that, never on the message text.

400 · 401 · 402 · 404 · 405 · 451 · 503 · 502

Machine-readable

This endpoint is in /openapi.json (OpenAPI 3.1), with its cost on the operation itself. If you are generating a client, use the spec rather than this page — and note that the spec is filtered by what is switched on right now, so it is the better answer to "can I call this today".

The other 24 endpoint pages

archive/trends · archive/movers · archive/coverage · profile/history · youtube/channel · pinterest/boards · bluesky/post · tiktok/post · tiktok/search_suggestions · tiktok/video_screen_text · tiktok/post_transcript · youtube/video · youtube/channel/videos · youtube/playlist · youtube/channel/shorts · youtube/channel/lives · youtube/channel/playlists · youtube/video/comments · youtube/video/comment/replies · github/repo · github/repo/issues · github/repo/readme · github/issue · github/issue/comments

← All endpoint pages · Recipes · Schemas · Full docs