HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
HackerNews
API
Learning & Reference2014–2026
HackerNews / API

API

Documentation and Samples for the Official HN API

206Distinct people
257Mentions
2Explicit recommenders
13.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Documentation and Samples for the Official HN API

GitHub

Where it is used

  • Hacker News Scraper & API — Hacker News Scraper & API: Stories, Who is Hiring uses the official Hacker News API to fetch HN data for its outputs. It relies on the HN Firebase API as part of those official APIs. Source
  • Haiker — Haiker uses the official Hacker News API to retrieve and display content from Hacker News within the app. Source

What people are saying

HN's Firebase-based API (https://github.com/hackernews/api) makes that easy, until you want to reconstruct the threads (i.e. who replied to who) and then it's annoying. For…

dang used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 11:23:53 PM UTC.

Mentions over time

HN mentions by year257 dated mentions

Observed mentions: 2014-10-07 17:49:07 UTC to 2026-10-31 21:56:35 UTC.

01020302014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 9 mentions; 3 submissions, 6 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 20 mentions; 4 submissions, 16 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 17 mentions; 3 submissions, 14 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 21 mentions; 6 submissions, 15 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 14 mentions; 1 submissions, 13 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 23 mentions; 4 submissions, 19 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 23 mentions; 3 submissions, 20 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 28 mentions; 4 submissions, 24 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 30 mentions; 6 submissions, 24 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 27 mentions; 3 submissions, 24 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 19 mentions; 0 submissions, 19 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 17 mentions; 0 submissions, 17 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC936
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC909
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC20416
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC17314
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC21615
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC14113
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC23419
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC23320
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC28424
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC30624
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC27324
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC19019
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC17017

From the project README

An excerpt from the repository, fetched Nov 12, 2026.

Read the project’s introduction
Hacker News API Overview In partnership with Firebase, we're making the public Hacker News data available in near real time. Firebase enables easy access from Android, iOS and the web. Servers aren't left out. If you can use one of the many Firebase client libraries, you really should. The libraries handle networking efficiently and can raise events when things change. Be sure to check them out. Please email api@ycombinator.com if you find any bugs. URI and Versioning We hope to improve the API over time. The changes won't always be backward compatible, so we're going to use versioning. This first iteration will have URIs prefixed with https://hacker-news.firebaseio.com/v0/ and is structured as described below. There is currently no rate limit. For versioning purposes, only removal of a non-optional field or alteration of an existing field will be considered incompatible changes. Clients should gracefully handle additional fields they don't expect, and simply ignore them. Design The v0 API is essentially a dump of our in-memory data structures. We know, what works great locally in memory isn't so hot over the network. Many of the awkward things are just the way HN works internally. Want to know the total number of comments on an article? Traverse the tree and count. Want to know the children of an item? Load the item and get their IDs, then load them. The newest page? Starts at item maxid and walks backward, keeping only the top level stories. Same for Ask, Show, etc. I'm not saying this to defend it - It's not the ideal public API, but it's the one we could release in the time we had. While awkward, it's possible to implement most of HN using it. Items Stories, comments, jobs, Ask HNs and even polls are just items. They're identified by their ids, which are unique integers, and live under /v0/item/<id>.json. All items have some of the following properties, with required properties in bold: Field Description id The item's unique id. deleted true if the item is deleted. type The type of item. One of "job", "story", "comment", "poll", or "pollopt". by The username of the item's author. time Creation date of the item, in Unix Time. text The comment, story or poll text. HTML. dead true if the item is dead. parent The comment's parent: either another comment or the relevant story. poll The pollopt's associated poll. kids The ids of the item's comments, in ranked display order. url The URL of the story. score The story's score, or the votes for a pollopt. title The title of the story, poll or job. HTML. parts A list of related pollopts, in display order. descendants In the case of stories or polls, the total comment count. For example, a story: https://hacker-news.firebaseio.com/v0/item/8863.json?print=pretty { "by" : "dhouston", "descendants" : 71, "id" : 8863, "kids" : [ 8952, 9224, 8917, 8884, 8887, 8943, 8869, 8958, 9005, 9671, 8940, 9067, 8908, 9055, 8865, 8881, 8872, 8873, 8955, 10403, 8903, 8928, 9125, 8998, 8901, 8902, 8907, 8894, 8878, 8870, 8980, 8934, 8876 ], "score" : 111, "time" : 1175714200, "title" : "My YC app: Dropbox - Throw away your USB drive", "type" : "story", "url" : "http://www.getdropbox.com/u/2/screencast.html" } comment: https://hacker-news.firebaseio.com/v0/item/2921983.json?print=pretty { "by" : "norvig", "id" : 2921983, "kids" : [ 2922097, 2922429, 2924562, 2922709, 2922573, 2922140, 2922141 ], "parent" : 2921506, "text" : "Aw shucks, guys ... you make me blush with your compliments.<p>Tell you what, Ill make a deal: I'll keep writing if you keep reading. K?", "time" : 1314211127, "type" : "comment" } ask: https://hacker-news.firebaseio.com/v0/item/121003.json?print=pretty { "by" : "tel", "descendants" : 16, "id" : 121003, "kids" : [ 121016, 121109, 121168 ], "score" : 25, "text" : "<i>or</i> HN: the Next Iteration<p>I get the impression that with Arc being released a lot of people who never had time for HN before are suddenly dropping in more often. (PG: what are the numbers on this? I'm envisioning a spike.)<p>Not to say that isn't great, but I'm wary of Diggification. Between links comparing programming to sex and a flurry of gratuitous, ostentatious adjectives in the headlines it's a bit concerning.<p>80% of the stuff that makes the front page is still pretty awesome, but what's in place to keep the signal/noise ratio high? Does the HN model still work as the community scales? What's in store for (++ HN)?", "time" : 1203647620, "title" : "Ask HN: The Arc Effect", "type" : "story" } job: https://hacker-news.firebaseio.com/v0/item/192327.json?print=pretty { "by" : "justin", "id" : 192327, "score" : 6, "text" : "Justin.tv is the biggest live video site online. We serve hundreds of thousands of video streams a day, and have supported up to 50k live concurrent viewers. Our site is growing every week, and we just added a 10 gbps line to our colo. Our unique visitors are up 900% since January.<p>There are a lot of pieces that fit together to make Justin.tv work: our video cluster, IRC server, our web app, and our monitoring and search services, to name a few. A lot of our website is dependent on Flash, and we're looking for talented Flash Engineers who know AS2 and AS3 very well who want to be leaders in the development of our Flash.<p>Responsibilities<p><pre><code> * Contribute to product design and implementation discussions\n * Implement projects from the idea phase to production\n * Test and iterate code before and after production release \n</code></pre>\nQualifications<p><pre><code> * You should know AS2, AS3, and maybe a little be of Flex.\n * Experience building web applications.\n * A strong desire to work on website with passionate users and ideas for how to improve it.\n * Experience hacking video streams, python, Twisted or rails all a plus.\n</code></pre>\nWhile we're growing rapidly, Justin.tv is still a small, technology focused company
Read the full README on GitHub

What Hacker News says

28 sources
Congratulations, I always enjoy new search engines W.r.t. "and updated intermittently," I wanted to draw your attention to the HN realtime API: https://github.com/HackerNews/API#live-data and also that S.O. offers Atom Feeds: https://stackoverflow.com/feeds/ (I'd guess the rest do, too, but I didn't verify) I am a huge proponent of taking advantage of any update features that a site offers, because otherwise the "how about now?" of re-crawling is wasteful to both parties.
In Show HN: Feep! search, an independent search engine for programmers
I know, I know, you don't need an external package just to interface with the HN API. Nevertheless, I needed this to make my life easier in a project I'm working on, so, here you go. This package provides a wrapper for the Firebase Hacker News API [1] in Go. Besides the obvious callouts to the documented endpoints, it also provides utilities functions that can be useful when working with data returned from this API. I'm a beginner at Go, so feedback to improve my skills is more than welcome. Together with PRs to the repo, of course! [1] https://github.com/HackerNews/API
In Show HN: GoHN – Hacker News API Wrapper for Go
They actually even admit that the API garbage. They say: > "The v0 API is essentially a dump of our in-memory data structures. We know, what works great locally in memory isn't so hot over the network. Many of the awkward things are just the way HN works internally. Want to know the total number of comments on an article? Traverse the tree and count. Want to know the children of an item? Load the item and get their IDs, then load them. The newest page? Starts at item maxid and walks backward, keeping only the top level stories. Same for Ask, Show, etc. I'm not saying this to defend it - It's not the ideal public API, but it's the one we could release in the time we had. While awkward, it's possible to implement most of HN using it." https://github.com/HackerNews/API If one wants to get the comments for a post on HN from the API, they have
Read the rest
to first fetch the post, then fetch every single comment of the post 1 by 1. So if the post has 500 comments, one has to basically send over 500 network requests...... They did say that they plan on released a better API in the future. However, as far as I know, it will be read only initially. So won't be much useful for my app.
In Tell HN: My Hacker News app (HACK) is sort of broken this afternoon
- Good point, I'll add a setting in the next update to always show icons. - Parent / context are in the menu just to keep the design clean. But I understand that's not what everyone wants, so I will add a setting to show these with the other icons, instead of in the menu. - Prev / next are moved to the "control pad" (pro feature), but my intention is for the free version to support all current HN features, so I will add those back in the next update. - The permission to firebase is to access the HN API [1] to grab user profile info etc. The other is for the pro upgrade using ExtPay [2] [1] https://github.com/HackerNews/API [2] https://github.com/glench/ExtPay
In Show HN: I made a modern web UI for Hacker News

Show HN: Pith language. JavaScript with a little bit of Python syntax

I've been writing a lot of JavaScript and Python lately. I like Python's syntax, so I created a language called Pith that's JS with some Python-like syntax (but without trailing colons). It's not a full compiler. It really just does search-and-replace, but I find it fun and useful in spite of some sharp edges. I use it on my smartphone to write and run short programs. Here's an example using the HN API (https://github.com/HackerNews/API): max = 6 ids = await getApi('topstories') for id in ids.slice(0, max) getItem(id) async def getItem(id) const div = document.createElement('div') results.appendChild(div) div.style = 'padding-bottom: 1em;' item = await getApi('item/' + id) ? item.title, '|', item.score url = '//news.ycombinator.com/item?id=' div.innerHTML = item.title.link(url + id) async de
Read the rest
f getApi(path) url = '//hacker-news.firebaseio.com/v0/' return getJson(url + path + '.json')
2 points · Open discussion
Read the rest
In Autosummarized HN (With GPT3)
iamdan·Jul 22, 2022Submission

Show HN: Hacolyte – a Hacker News reader built with NextJS

Long time Hacker News lurker, first time Hacker News poster : ) I built a Hacker News reader app with NextJS and TailwindCSS that pulls item and user data from the hacker news api (https://github.com/HackerNews/API). This is my first time really building and launching something for users so I'd love any and all feedback. The roughest spots at the moment are the threading of comments and the fetching of posts on a user's page (lots of individual calls (async) for individual items rather than getting them in bulk from an endpoint like /v0/beststories). Let me know what parts of it are Not Good and where I can improve things!
13 points · Open discussion

Showing the 15 most recent of 28 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.