SuperAPI AI Directory

Hacker News

General & other

View repository

Updated 10-16 03:37

About this skill

Quick Reference

Topic File
API endpoints api.md
Search patterns search.md

Core Rules

1. Two APIs Available

API Use Case Base URL
Official HN API Single items, real-time https://hacker-news.firebaseio.com/v0
Algolia Search Full-text search, filters https://hn.algolia.com/api/v1

2. Official API Endpoints

  • /topstories.json — top 500 story IDs
  • /newstories.json — newest 500 story IDs
  • /beststories.json — best stories
  • /askstories.json — Ask HN
  • /showstories.json — Show HN
  • /jobstories.json — job postings
  • /item/{id}.json — story/comment details
  • /user/{username}.json — user profile

3. Algolia Search Syntax

/search?query=TERM&tags=TAG&numericFilters=FILTER

Tags (combinable with AND):

  • story, comment, poll, job, ask_hn, show_hn
  • author_USERNAME — posts by user
  • story_ID — comments on story

Numeric filters:

  • created_at_i>TIMESTAMP — after date
  • points>N — minimum points
  • num_comments>N — minimum comments

4. Common Patterns

Request Endpoint
Frontpage Official /topstories.json → fetch first 30 items
Search posts Algolia /search?query=X&tags=story
User's posts Algolia /search?tags=author_USERNAME
Who is hiring? Algolia /search?query=who is hiring&tags=story,author_whoishiring
Comments on story Algolia /search?tags=comment,story_ID
This week's top Algolia /search?tags=story&numericFilters=created_at_i>WEEK_TS

5. Response Handling

  • Official API returns IDs → batch fetch items (parallelize)
  • Algolia returns full objects with hits[] array
  • Story object: id, title, url, score, by, time, descendants (comment count)
  • Comment object: id, text, by, parent, time

6. Rate Limits

  • Official API: No auth required, generous limits
  • Algolia: 10,000 requests/hour (no key needed)
  • Always paginate large results (page=N, hitsPerPage=N)

7. Gotchas

  • url is null for Ask HN/Show HN text posts — use text field instead
  • deleted and dead items exist — check before displaying
  • Timestamps are Unix seconds, not milliseconds
  • Algolia objectID = HN item id (as string)