Skip to main content
Hacker News logo

Overview

Add Hacker News to any ModuleX agent or workflow. Read-only access to the official Hacker News JSON API (hacker-news.firebaseio.com/v0) plus keyword search backed by hnrss.org RSS feeds.
Categories: Social Media · News · Social · Technology · Community · Auth: ModuleX Managed Key · Actions: 10

Authentication

ModuleX Managed Key

Use ModuleX’s managed access (Hacker News API is public, no authentication required)

Available Actions

Parameters

keyword
string
Keyword to search for in comments. Leave empty to get all new comments. (Default: “)
max_results
integer
Maximum number of comments to return (1-50) (Default: 10)

Response

{
  "$defs": {
    "HNRSSItem": {
      "additionalProperties": false,
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "link": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Link"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Description"
        },
        "pub_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Pub Date"
        },
        "guid": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Guid"
        },
        "author": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Author"
        },
        "comments_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Comments Url"
        }
      },
      "title": "HNRSSItem",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "stories": {
      "items": {
        "$ref": "#/$defs/HNRSSItem"
      },
      "title": "Stories",
      "type": "array"
    },
    "comments": {
      "items": {
        "$ref": "#/$defs/HNRSSItem"
      },
      "title": "Comments",
      "type": "array"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "keyword": {
      "default": "",
      "title": "Keyword",
      "type": "string"
    },
    "source": {
      "default": "hnrss.org",
      "title": "Source",
      "type": "string"
    }
  },
  "required": [
    "success"
  ],
  "title": "SearchOutput",
  "type": "object"
}

Parameters

limit
integer
Number of stories to return (1-100) (Default: 10)
fetch_details
boolean
Whether to fetch full story details or just IDs (Default: true)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "stories": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Stories",
      "type": "array"
    },
    "story_ids": {
      "items": {
        "type": "integer"
      },
      "title": "Story Ids",
      "type": "array"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Type"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetStoriesOutput",
  "type": "object"
}

Parameters

limit
integer
Number of stories to return (1-100) (Default: 10)
fetch_details
boolean
Whether to fetch full story details or just IDs (Default: true)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "stories": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Stories",
      "type": "array"
    },
    "story_ids": {
      "items": {
        "type": "integer"
      },
      "title": "Story Ids",
      "type": "array"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Type"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetStoriesOutput",
  "type": "object"
}

Parameters

limit
integer
Number of stories to return (1-100) (Default: 10)
fetch_details
boolean
Whether to fetch full story details or just IDs (Default: true)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "stories": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Stories",
      "type": "array"
    },
    "story_ids": {
      "items": {
        "type": "integer"
      },
      "title": "Story Ids",
      "type": "array"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Type"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetStoriesOutput",
  "type": "object"
}

Parameters

limit
integer
Number of stories to return (1-100) (Default: 10)
fetch_details
boolean
Whether to fetch full story details or just IDs (Default: true)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "stories": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Stories",
      "type": "array"
    },
    "story_ids": {
      "items": {
        "type": "integer"
      },
      "title": "Story Ids",
      "type": "array"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Type"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetStoriesOutput",
  "type": "object"
}

Parameters

limit
integer
Number of stories to return (1-100) (Default: 10)
fetch_details
boolean
Whether to fetch full story details or just IDs (Default: true)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "stories": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Stories",
      "type": "array"
    },
    "story_ids": {
      "items": {
        "type": "integer"
      },
      "title": "Story Ids",
      "type": "array"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Type"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetStoriesOutput",
  "type": "object"
}

Parameters

limit
integer
Number of stories to return (1-100) (Default: 10)
fetch_details
boolean
Whether to fetch full story details or just IDs (Default: true)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "stories": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Stories",
      "type": "array"
    },
    "story_ids": {
      "items": {
        "type": "integer"
      },
      "title": "Story Ids",
      "type": "array"
    },
    "count": {
      "default": 0,
      "title": "Count",
      "type": "integer"
    },
    "type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Type"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetStoriesOutput",
  "type": "object"
}

Parameters

item_id
integer
required
The ID of the item to fetch

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "item": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Item"
    },
    "item_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Item Id"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetItemOutput",
  "type": "object"
}

Parameters

username
string
required
The HN username to look up

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "user": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "User"
    },
    "username": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Username"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetUserOutput",
  "type": "object"
}

Limits & Quotas

  • fetch_details=False returns only the ID list (one HTTP call instead of N+1). fetch_details=True issues one detail call per item, capped at limit.
  • max_results is capped at 50 on the RSS endpoints (hnrss.org cap).
  • Failures and parse errors surface as success=False with error.

Hootsuite

LinkedIn

Pinterest