# Lobsters

> Read Lobsters, the computing link aggregator: pull the Hottest, Newest and Active feeds, follow a tag, a category, a website or a person, and open any story with its full comment thread.

App · News · 9 actions. Web page: https://docs.lodol.com/docs/integrations/lobsters

## Actions

### Get a comment

Read one comment on its own: its text, its score, who wrote it and which story it belongs to. Takes the comment's id or any link to it, including the '#c_…' link a browser copies from the middle of a thread.

**Inputs**

- Comment (`comment`, text, required): The comment's id or a link to it.

**Outputs**

- `comment` (object)

**Example output**

```json
{
  "comment": {
    "comment": "It was a level-headed piece.",
    "comment_html": "<p>It was a level-headed piece.</p>",
    "commenter": "cpurdy",
    "created_at": "2026-09-14T14:30:17.379-05:00",
    "created_at_utc": "2026-09-14T19:30:17.379000+00:00",
    "depth": 0,
    "flags": 0,
    "is_deleted": false,
    "is_moderated": false,
    "last_edited_at": "2026-09-14T14:30:17.047-05:00",
    "last_edited_at_utc": "2026-09-14T19:30:17.047000+00:00",
    "lobsters_url": "https://lobste.rs/c/xxi38g",
    "parent_comment": null,
    "score": 30,
    "short_id": "xxi38g",
    "story_short_id": "1ifr5f",
    "url": "https://lobste.rs/s/1ifr5f/contagion_fear#c_xxi38g"
  }
}
```

### Get a story

Read one story together with its whole comment thread. Takes the six-character id Lobsters gives a story or any lobste.rs link to it, including one copied from a browser. Comments come back as a flat list, each carrying how deep in the thread it sits and which comment it replies to, so a step can read them straight through or rebuild the thread from them.

**Inputs**

- Story (`story`, text, required): The story's id or a link to it, such as https://lobste.rs/s/1ifr5f.

**Outputs**

- `comments` (list)
- `story` (object)

**Example output**

```json
{
  "comments": [
    {
      "comment": "It was a level-headed piece.",
      "comment_html": "<p>It was a level-headed piece.</p>",
      "commenter": "cpurdy",
      "created_at": "2026-09-14T14:30:17.379-05:00",
      "created_at_utc": "2026-09-14T19:30:17.379000+00:00",
      "depth": 0,
      "flags": 0,
      "is_deleted": false,
      "is_moderated": false,
      "last_edited_at": "2026-09-14T14:30:17.047-05:00",
      "last_edited_at_utc": "2026-09-14T19:30:17.047000+00:00",
      "lobsters_url": "https://lobste.rs/c/xxi38g",
      "parent_comment": null,
      "score": 30,
      "short_id": "xxi38g",
      "story_short_id": "1ifr5f",
      "url": "https://lobste.rs/s/1ifr5f/contagion_fear#c_xxi38g"
    }
  ],
  "story": {
    "comment_count": 36,
    "comments_url": "https://lobste.rs/s/1ifr5f/contagion_fear",
    "created_at": "2026-09-14T11:53:14.313-05:00",
    "created_at_utc": "2026-09-14T16:53:14.313000+00:00",
    "description": null,
    "description_html": null,
    "flags": 1,
    "is_text_post": false,
    "lobsters_url": "https://lobste.rs/s/1ifr5f",
    "score": 131,
    "short_id": "1ifr5f",
    "submitter": "rrampage",
    "submitter_is_author": false,
    "tags": [
      "vibecoding"
    ],
    "title": "The contagion of fear",
    "url": "https://bcantrill.dtrace.org/2026/09/13/the-contagion-of-fear/"
  }
}
```

### Get someone's profile

Read a Lobsters profile: how long they have been a member, their karma, their write-up, who invited them, and the GitHub and Mastodon accounts they have linked. Takes the username in any capitalisation or a link to the profile.

**Inputs**

- Username (`username`, text, required): Whose profile to read.

**Outputs**

- `user` (object)

**Example output**

```json
{
  "user": {
    "about": "<p>Hi, I'm Peter Bhat Harkins.</p>",
    "avatar_url": "https://lobste.rs/avatars/pushcx-100.png",
    "created_at": "2012-08-14T20:25:08.000-05:00",
    "created_at_utc": "2012-08-15T01:25:08+00:00",
    "github_username": "pushcx",
    "invited_by": "jcs",
    "is_admin": true,
    "is_moderator": true,
    "karma": null,
    "lobsters_url": "https://lobste.rs/~pushcx",
    "mastodon_username": "lobsters",
    "username": "pushcx"
  }
}
```

### Get someone's stories

Read the stories one person has submitted to Lobsters, newest first. Takes the username in any capitalisation, with or without its leading '~', or a link to their profile.

**Inputs**

- Username (`username`, text, required): Whose submissions to read.
- Number of stories (`limit`, number): How many stories to return (1–100). Defaults to 25, which is one page on Lobsters; larger numbers read further back. From 1 to 100. Default: `25`.

**Outputs**

- `result_count` (number)
- `results` (list)
- `username` (text)

**Example output**

```json
{
  "result_count": 1,
  "results": [
    {
      "comment_count": 36,
      "comments_url": "https://lobste.rs/s/1ifr5f/contagion_fear",
      "created_at": "2026-09-14T11:53:14.313-05:00",
      "created_at_utc": "2026-09-14T16:53:14.313000+00:00",
      "description": null,
      "description_html": null,
      "flags": 1,
      "is_text_post": false,
      "lobsters_url": "https://lobste.rs/s/1ifr5f",
      "score": 131,
      "short_id": "1ifr5f",
      "submitter": "rrampage",
      "submitter_is_author": false,
      "tags": [
        "vibecoding"
      ],
      "title": "The contagion of fear",
      "url": "https://bcantrill.dtrace.org/2026/09/13/the-contagion-of-fear/"
    }
  ],
  "username": "rrampage"
}
```

### Get stories

Read one of Lobsters' three front-page feeds: Hottest (the front page, ranked by the site's own hotness), Newest (in the order they were submitted) or Active (whatever is being discussed right now). Stories come back in the feed's own order, each with its link, tags, score, comment count and who submitted it.

**Inputs**

- Feed (`feed`, text): Which feed to read. Defaults to Hottest, the site's front page. One of: `hottest` (Hottest (the front page)), `newest` (Newest (as submitted)), `active` (Active (most discussion right now)). Default: `hottest`.
- Number of stories (`limit`, number): How many stories to return (1–100). Defaults to 25, which is one page on Lobsters; larger numbers read further back. From 1 to 100. Default: `25`.

**Outputs**

- `feed` (text)
- `result_count` (number)
- `results` (list)

**Example output**

```json
{
  "feed": "hottest",
  "result_count": 1,
  "results": [
    {
      "comment_count": 36,
      "comments_url": "https://lobste.rs/s/1ifr5f/contagion_fear",
      "created_at": "2026-09-14T11:53:14.313-05:00",
      "created_at_utc": "2026-09-14T16:53:14.313000+00:00",
      "description": null,
      "description_html": null,
      "flags": 1,
      "is_text_post": false,
      "lobsters_url": "https://lobste.rs/s/1ifr5f",
      "score": 131,
      "short_id": "1ifr5f",
      "submitter": "rrampage",
      "submitter_is_author": false,
      "tags": [
        "vibecoding"
      ],
      "title": "The contagion of fear",
      "url": "https://bcantrill.dtrace.org/2026/09/13/the-contagion-of-fear/"
    }
  ]
}
```

### Get stories from a site

Read every story Lobsters holds that links to one website, newest first: everything from lwn.net, or from your own blog. Takes a bare domain or any page URL on it; the path and a leading 'www.' are dropped for you, because Lobsters files stories under the bare host.

**Inputs**

- Website (`site`, text, required): The website to read. A domain or any URL on it both work.
- Number of stories (`limit`, number): How many stories to return (1–100). Defaults to 25, which is one page on Lobsters; larger numbers read further back. From 1 to 100. Default: `25`.

**Outputs**

- `result_count` (number)
- `results` (list)
- `site` (text)

**Example output**

```json
{
  "result_count": 1,
  "results": [
    {
      "comment_count": 36,
      "comments_url": "https://lobste.rs/s/1ifr5f/contagion_fear",
      "created_at": "2026-09-14T11:53:14.313-05:00",
      "created_at_utc": "2026-09-14T16:53:14.313000+00:00",
      "description": null,
      "description_html": null,
      "flags": 1,
      "is_text_post": false,
      "lobsters_url": "https://lobste.rs/s/1ifr5f",
      "score": 131,
      "short_id": "1ifr5f",
      "submitter": "rrampage",
      "submitter_is_author": false,
      "tags": [
        "vibecoding"
      ],
      "title": "The contagion of fear",
      "url": "https://bcantrill.dtrace.org/2026/09/13/the-contagion-of-fear/"
    }
  ],
  "site": "lwn.net"
}
```

### Get stories in a category

Read the stories in one of the twelve groups Lobsters files its tags under: programming languages, operating systems, tools, practices and so on. Broader than a tag: choosing 'Programming languages' returns everything tagged with any of the thirty-odd language tags at once.

**Inputs**

- Category (`category`, text, required): Which group of tags to read. One of: `compsci` (Computer science), `languages` (Programming languages), `os` (Operating systems), `platforms`, `tools`, `practices`, `interaction` (Design and accessibility), `field` (Adjacent fields), `culture`, `genre` (Kind of story), `format` (Format (video, book, Ask, Show)), `lobsters` (About Lobsters itself).
- Number of stories (`limit`, number): How many stories to return (1–25). Defaults to 25. Lobsters serves a category as a single page, so 25 is everything it will give. From 1 to 25. Default: `25`.

**Outputs**

- `category` (text)
- `result_count` (number)
- `results` (list)

**Example output**

```json
{
  "category": "languages",
  "result_count": 1,
  "results": [
    {
      "comment_count": 36,
      "comments_url": "https://lobste.rs/s/1ifr5f/contagion_fear",
      "created_at": "2026-09-14T11:53:14.313-05:00",
      "created_at_utc": "2026-09-14T16:53:14.313000+00:00",
      "description": null,
      "description_html": null,
      "flags": 1,
      "is_text_post": false,
      "lobsters_url": "https://lobste.rs/s/1ifr5f",
      "score": 131,
      "short_id": "1ifr5f",
      "submitter": "rrampage",
      "submitter_is_author": false,
      "tags": [
        "vibecoding"
      ],
      "title": "The contagion of fear",
      "url": "https://bcantrill.dtrace.org/2026/09/13/the-contagion-of-fear/"
    }
  ]
}
```

### Get stories with a tag

Read the stories carrying one or more Lobsters tags, newest first: 'rust', 'security', 'ask' and the hundred-odd others the site files stories under. Picking several widens the result rather than narrowing it: a story carrying any one of them is included. The tag list is fetched from Lobsters, so it is always the tags the site currently has.

**Inputs**

- Tags (`tags`, list, required): The tags to read. A story carrying any one of them is included.
- Number of stories (`limit`, number): How many stories to return (1–100). Defaults to 25, which is one page on Lobsters; larger numbers read further back. From 1 to 100. Default: `25`.

**Outputs**

- `result_count` (number)
- `results` (list)
- `tags` (list)

**Example output**

```json
{
  "result_count": 1,
  "results": [
    {
      "comment_count": 36,
      "comments_url": "https://lobste.rs/s/1ifr5f/contagion_fear",
      "created_at": "2026-09-14T11:53:14.313-05:00",
      "created_at_utc": "2026-09-14T16:53:14.313000+00:00",
      "description": null,
      "description_html": null,
      "flags": 1,
      "is_text_post": false,
      "lobsters_url": "https://lobste.rs/s/1ifr5f",
      "score": 131,
      "short_id": "1ifr5f",
      "submitter": "rrampage",
      "submitter_is_author": false,
      "tags": [
        "vibecoding"
      ],
      "title": "The contagion of fear",
      "url": "https://bcantrill.dtrace.org/2026/09/13/the-contagion-of-fear/"
    }
  ],
  "tags": [
    "rust"
  ]
}
```

### List tags

Read every tag Lobsters files stories under, alphabetically, each with the site's own description of it and the category it belongs to. This is the vocabulary the other actions filter on, so it is what a workflow reads to decide which tag to follow.

**Inputs**: None.

**Outputs**

- `tag_count` (number)
- `tags` (list)

**Example output**

```json
{
  "tag_count": 1,
  "tags": [
    {
      "category": "languages",
      "description": "Rust programming",
      "is_active": true,
      "is_media": false,
      "is_privileged": false,
      "lobsters_url": "https://lobste.rs/t/rust",
      "tag": "rust"
    }
  ]
}
```
