Lobsters

News API · Works globally · Tech news community · JSON API

TL;DR

Lobsters is a community-driven tech news aggregator (like Hacker News but independently run and with a focus on Ruby/Rust communities). Its API exposes the hottest stories, newest submissions, and tagged content in JSON format. Each story includes title, URL, tags, comment count, score, submitter info, and timestamp. The API supports filtering by tag, browsing by user, and viewing individual story details and comments. It is simple, free, and requires no authentication for read access.

Quick start: https://lobste.rs/hottest.json

No API key needed — just make a request!

How to Use This API

1. Hottest Stories

https://lobste.rs/hottest.json

2. Newest Stories

https://lobste.rs/newest.json

3. Stories by Tag

https://lobste.rs/t/python.json
https://lobste.rs/t/rust.json
https://lobste.rs/t/javascript.json

4. Individual Story with Comments

https://lobste.rs/s/abcd1234/comments.json

Replace abcd1234 with the story's short ID (found in the short_id field from the list endpoints). Returns the story plus all comments.

5. Stories by User

https://lobste.rs/~username/stories.json

Shows stories submitted by a specific user. Replace username with the Lobsters username.

6. Response Format

[
  {
    "short_id": "abcd12",
    "title": "Rust is now the standard for systems programming",
    "url": "https://example.com/article",
    "score": 87,
    "comments_url": "https://lobste.rs/s/abcd12/comments",
    "comment_count": 23,
    "tags": ["rust", "programming"],
    "created_at": "2026-06-15T10:30:00Z",
    "submitter_user": {
      "username": "techfan42"
    }
  }
]

7. JavaScript — Fetch and Display Stories

fetch('https://lobste.rs/hottest.json')
  .then(r => r.json())
  .then(stories => {
    stories.slice(0, 10).forEach(s => {
      const tags = s.tags.join(', ');
      console.log(`[${tags}] ${s.title} (${s.score} pts, ${s.comment_count} comments)`);
    });
  });

8. Python — Get Tag Feed and Filter

import requests

resp = requests.get('https://lobste.rs/t/javascript.json')
stories = resp.json()

# Show only highly-rated JS stories
for s in stories:
    if s['score'] >= 10:
        print(f"{s['title']} by {s['submitter_user']['username']} — {s['score']} pts")

9. Python — Get Story Comments

import requests

# Get the hottest story's short_id
hot = requests.get('https://lobste.rs/hottest.json').json()
short_id = hot[0]['short_id']

# Fetch comments
resp = requests.get(f'https://lobste.rs/s/{short_id}/comments.json')
comments = resp.json()[0]['comments']
print(f"Top story: {hot[0]['title']}")
print(f"Comments: {len(comments)}")
for c in comments[:3]:
    print(f"  {c['comment']}")
Try it: https://lobste.rs/hottest.json

Frequently Asked Questions

What tags are available on Lobsters?
Tags include python, javascript, rust, go, security, linux, programming, design, hardware, ruby, scala, clojure, haskell, elixir, devops, databases, and more. Browse lobste.rs/tags for the complete list.
How does the scoring system work?
Lobsters uses a unique voting system where each user has a limited number of votes per day to distribute. The score field reflects the community upvotes. This system encourages thoughtful voting rather than mass upvoting.
Can I view story comments?
Yes! Each story includes a comments_url and comment_count. Fetch the comments via https://lobste.rs/s/{short_id}/comments.json to get the full comment thread with nested replies.
Is there a rate limit on the API?
No published rate limit, but please be respectful with request frequency. The API is designed for casual use and community integration, not high-frequency polling.
How is Lobsters different from Hacker News?
Lobsters has a strong Ruby/Rust community focus, uses a tagging system for topic filtering, and has a limited-vote system to prevent voting rings. The API is simpler and returns cleaner JSON compared to HN's Firebase-based API.
Are there pagination parameters?
The hottest and newest endpoints return the top 50 stories by default. There is no explicit pagination, but you can use the /page/{n}.json pattern for additional pages on the homepage.
Can I use this in a mobile app or dashboard?
Absolutely! The JSON format is ideal for mobile and web dashboards. Many Lobsters readers use third-party clients built on this public API.

What You Can Build