# Hacker News API

> Hacker News provides ranked stories, search results, discussions, and hiring posts through a workflow and API.

Hacker News (HN) lists ranked stories; choose a list and maximum results. Search stories finds stories or comments using a required query and optional filters. Get discussion reads a story and its comments from a link or title words; List hiring posts finds monthly job posts with optional filters.

- Page: https://fous.com/workflows/hacker-news
- Handle: `@hacker-news`
- Category: [News](https://fous.com/workflows/category/news)
- Source website: https://news.ycombinator.com
- Last verified: Sep 30, 2026
- Fous is not affiliated with Hacker News.

## Methods

### Get discussion

Operation `get_discussion`, version 1. 1 credit per call.

Get a Hacker News story and its comment thread in displayed order from a discussion link or title words. Returns up to 500 visible comments; deleted and flagged comments are excluded.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `story` | string | yes | `"https://news.ycombinator.com/item?id=8863"` | Hacker News discussion link or words from the story title, for example https://news.ycombinator.com/item?id=8863 or Ask HN: What are you working on? |
| `max_comments` | integer | no | `10` | Maximum comments to return, for example 100 (at most 500). |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "story"
  ],
  "properties": {
    "story": {
      "type": "string",
      "minLength": 1,
      "description": "Hacker News discussion link or words from the story title, for example https://news.ycombinator.com/item?id=8863 or Ask HN: What are you working on?",
      "examples": [
        "https://news.ycombinator.com/item?id=8863",
        "Ask HN: What are you working on?",
        "https://news.ycombinator.com/item?id=22648431"
      ]
    },
    "max_comments": {
      "type": "integer",
      "default": 100,
      "maximum": 500,
      "minimum": 0,
      "description": "Maximum comments to return, for example 100 (at most 500).",
      "x-fous-developer": true,
      "examples": [
        10,
        6,
        20
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "story": "https://news.ycombinator.com/item?id=8863",
      "max_comments": 10
    },
    {
      "story": "Ask HN: What are you working on?",
      "max_comments": 6
    },
    {
      "story": "https://news.ycombinator.com/item?id=22648431",
      "max_comments": 20
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `title` | string | `"My YC app: Dropbox - Throw away your USB drive"` |  |
| `author` | string or null | `"dhouston"` |  |
| `points` | integer or null | `104` |  |
| `item_id` | integer | `8863` |  |
| `comments` | array |  |  |
| `comments[].link` | string | `"https://news.ycombinator.com/item?id=9224"` |  |
| `comments[].text` | string | `"Huge problem, interesting solution.\nIt takes time to derive the high-level from the codebase. I guess, your walk-throu` |  |
| `comments[].depth` | integer | `0` |  |
| `comments[].author` | string or null | `"BrandonM"` |  |
| `comments[].item_id` | integer | `9224` |  |
| `comments[].parent_id` | integer | `8863` |  |
| `comments[].posted_at` | string or null | `"2007-04-05T15:16:54Z"` |  |
| `comments[].direct_replies` | integer | `1` |  |
| `posted_at` | string or null | `"2007-04-04T19:16:40Z"` |  |
| `story_text` | string or null | `"With the quarantine being placed in effect in a lot of cities across the world, we all likely have a little bit more ti` |  |
| `website_link` | string or null | `"http://www.getdropbox.com/u/2/screencast.html"` |  |
| `comment_count` | integer | `71` |  |
| `discussion_link` | string | `"https://news.ycombinator.com/item?id=8863"` |  |

**Example input**

```json
{
  "story": "https://news.ycombinator.com/item?id=8863",
  "max_comments": 10
}
```

**Example output**

```json
{
  "title": "My YC app: Dropbox - Throw away your USB drive",
  "author": "dhouston",
  "points": 104,
  "item_id": 8863,
  "comments": [
    {
      "link": "https://news.ycombinator.com/item?id=9224",
      "text": "I have a few qualms with this app:\n1. For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN o…",
      "depth": 0,
      "author": "BrandonM",
      "item_id": 9224,
      "parent_id": 8863,
      "posted_at": "2007-04-05T15:16:54Z",
      "direct_replies": 1
    },
    {
      "link": "https://news.ycombinator.com/item?id=9272",
      "text": "1. re: the first part, many people want something plug and play. and even if they were plug and play, the problem is that the user experience (on windows at least) with online drives generally sucks, …",
      "depth": 1,
      "author": "dhouston",
      "item_id": 9272,
      "parent_id": 9224,
      "posted_at": "2007-04-05T16:47:01Z",
      "direct_replies": 1
    },
    {
      "link": "https://news.ycombinator.com/item?id=9479",
      "text": "You are correct that this presents a very good, easy-to-install piece of functionality for Windows users. The Windows shortcomings that you point out are certainly problems, and I think that your soft…",
      "depth": 2,
      "author": "BrandonM",
      "item_id": 9479,
      "parent_id": 9272,
      "posted_at": "2007-04-06T01:39:04Z",
      "direct_replies": 0
    }
  ],
  "posted_at": "2007-04-04T19:16:40Z",
  "story_text": null,
  "website_link": "http://www.getdropbox.com/u/2/screencast.html",
  "comment_count": 71,
  "discussion_link": "https://news.ycombinator.com/item?id=8863"
}
```

### List front page

Operation `list_front_page`, version 1. 1 credit per call.

List current Hacker News stories in rank order from the top, newest, best, Ask HN, Show HN, or jobs list. Jobs may not show points, comments, or an author.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `list_name` | string | no | `"ask_hn"` | Hacker News list to read, for example ask_hn. |
| `max_results` | integer | no | `10` | Maximum number of stories to return, for example 60. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "list_name": {
      "enum": [
        "top",
        "newest",
        "best",
        "ask_hn",
        "show_hn",
        "jobs"
      ],
      "type": "string",
      "default": "top",
      "description": "Hacker News list to read, for example ask_hn.",
      "examples": [
        "ask_hn",
        "jobs",
        "newest"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 30,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of stories to return, for example 60.",
      "x-fous-developer": true,
      "examples": [
        10,
        35,
        65
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {},
    {
      "list_name": "ask_hn",
      "max_results": 10
    },
    {
      "list_name": "jobs",
      "max_results": 35
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `stories` | array |  |  |
| `stories[].age` | string or null | `"3 days ago"` | Relative age as displayed by Hacker News. |
| `stories[].rank` | integer | `1` | Position on the list. |
| `stories[].title` | string | `"Ask HN: Who's still keeping a DOS machine up because the business depends on it?"` | Story title. |
| `stories[].author` | string or null | `"mlaux"` | Posting user, if shown. |
| `stories[].points` | integer or null | `285` | Points shown on Hacker News, if available. |
| `stories[].item_id` | integer | `49848955` | Hacker News item ID. |
| `stories[].posted_at` | string or null | `"2026-09-25T19:37:55Z"` | Posting time in ISO 8601 UTC, if shown. |
| `stories[].website_link` | string or null | `"https://sancho.bearblog.dev/google-weird/"` | Link to the story website; null for Ask HN or other posts without an external website. |
| `stories[].comment_count` | integer or null | `297` | Number of comments shown, if available. |
| `stories[].website_domain` | string or null | `"sancho.bearblog.dev"` | Domain of the story website. |
| `stories[].discussion_link` | string | `"https://news.ycombinator.com/item?id=49848955"` | Link to the Hacker News discussion page. |

**Example input**

```json
{
  "list_name": "ask_hn",
  "max_results": 10
}
```

**Example output**

```json
{
  "stories": [
    {
      "age": "3 days ago",
      "rank": 1,
      "title": "Ask HN: Who's still keeping a DOS machine up because the business depends on it?",
      "author": "mlaux",
      "points": 285,
      "item_id": 49848955,
      "posted_at": "2026-09-25T19:37:55Z",
      "website_link": null,
      "comment_count": 297,
      "website_domain": null,
      "discussion_link": "https://news.ycombinator.com/item?id=49848955"
    },
    {
      "age": "4 hours ago",
      "rank": 2,
      "title": "Ask HN: How do you get your first users for an MVP?",
      "author": "amina124",
      "points": 4,
      "item_id": 49884087,
      "posted_at": "2026-09-28T20:44:20Z",
      "website_link": null,
      "comment_count": 4,
      "website_domain": null,
      "discussion_link": "https://news.ycombinator.com/item?id=49884087"
    },
    {
      "age": "6 hours ago",
      "rank": 3,
      "title": "Ask HN: React Native or Flutter when the back end is Node?",
      "author": "rearview",
      "points": 5,
      "item_id": 49881846,
      "posted_at": "2026-09-28T17:57:49Z",
      "website_link": null,
      "comment_count": 10,
      "website_domain": null,
      "discussion_link": "https://news.ycombinator.com/item?id=49881846"
    }
  ]
}
```

### List hiring posts

Operation `list_hiring_posts`, version 1. 1 credit per call.

List top-level job posts from a monthly “Ask HN: Who is hiring?” thread in thread order, with post text, job details and application contact when available. Job details are inferred from posts and may be missing when a post does not state them.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `month` | string | no | `"2026-08"` | Thread month, such as 2026-09 or September 2026. Leave blank for the latest available thread. |
| `keywords` | string | no | `"remote Python"` | Words that must all appear in the full post, ignoring case; for example, remote Python. |
| `max_results` | integer | no | `5` | Maximum number of matching posts to return, from 1 to 500; for example, 50. |
| `remote_only` | boolean | no | `true` | Only include posts offering remote work; for example, true. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "month": {
      "type": "string",
      "default": "",
      "description": "Thread month, such as 2026-09 or September 2026. Leave blank for the latest available thread.",
      "examples": [
        "2026-08",
        "September 2026",
        "2026-09"
      ]
    },
    "keywords": {
      "type": "string",
      "default": "",
      "description": "Words that must all appear in the full post, ignoring case; for example, remote Python.",
      "examples": [
        "remote Python",
        "unobtainium-quark-90872"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 500,
      "minimum": 1,
      "description": "Maximum number of matching posts to return, from 1 to 500; for example, 50.",
      "x-fous-developer": true,
      "examples": [
        5,
        50,
        10
      ]
    },
    "remote_only": {
      "type": "boolean",
      "default": false,
      "description": "Only include posts offering remote work; for example, true.",
      "examples": [
        true
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "month": "2026-08",
      "max_results": 5
    },
    {
      "month": "September 2026",
      "keywords": "remote Python",
      "max_results": 50,
      "remote_only": true
    },
    {
      "month": "2026-09",
      "keywords": "unobtainium-quark-90872",
      "max_results": 10
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `job_posts` | array |  | Matching top-level posts, in thread order. |
| `job_posts[].roles` | string or null | `"Senior Software Engineer (Dev Platform)"` | Job roles named in the post, if clear. |
| `job_posts[].salary` | string or null | `"60-100k EUR; 50-90k; 50-90k"` | Salary as written, if stated. |
| `job_posts[].company` | string or null | `"Proxima Fusion"` | Company named in the post, if clear. |
| `job_posts[].location` | string or null | `"Munich, Germany; ONSITE"` | Location or geographic eligibility stated in the post, if clear. |
| `job_posts[].post_text` | string |  | Full post in plain text. |
| `job_posts[].posted_date` | string | `"2026-08-04"` | Date the comment was posted. |
| `job_posts[].comment_link` | string | `"https://news.ycombinator.com/item?id=49165394"` | Link to the comment. |
| `job_posts[].work_arrangement` | string or null | `"onsite"` | Remote, onsite, hybrid, or null when unclear. |
| `job_posts[].application_contact` | string or null | `"https://jobs.ashbyhq.com/proxima-fusion/5aebfef0-0c2c-4c87-990d-bbbbd53b94d2"` | Application link or email address, if given. |
| `thread_link` | string | `"https://news.ycombinator.com/item?id=49156683"` | Link to the monthly hiring thread. |
| `thread_title` | string | `"Ask HN: Who is hiring? (August 2026)"` | Title of the monthly hiring thread. |

**Example input**

```json
{
  "month": "2026-08",
  "max_results": 5
}
```

**Example output**

```json
{
  "job_posts": [
    {
      "roles": "Senior Software Engineer (Dev Platform)",
      "salary": null,
      "company": "Proxima Fusion",
      "location": "Munich, Germany; ONSITE",
      "post_text": "Proxima Fusion | Senior Software Engineer (Dev Platform) | Munich, Germany | ONSITE | Full-time\nWe're building the world's first commercial stellarator fusion power plant. First spin-out from the Max …",
      "posted_date": "2026-08-04",
      "comment_link": "https://news.ycombinator.com/item?id=49165394",
      "work_arrangement": "onsite",
      "application_contact": "https://jobs.ashbyhq.com/proxima-fusion/5aebfef0-0c2c-4c87-990d-bbbbd53b94d2"
    },
    {
      "roles": "macOS low-level Open Source Developers",
      "salary": null,
      "company": "CodeWeavers",
      "location": "St Paul, MN, USA; REMOTE",
      "post_text": "CodeWeavers | St Paul, MN, USA | Full Time | REMOTE | macOS low-level Open Source Developers | C-language systems programming\nhttps://www.codeweavers.com/about/jobs\nCodeWeavers needs new, full-time de…",
      "posted_date": "2026-08-03",
      "comment_link": "https://news.ycombinator.com/item?id=49159312",
      "work_arrangement": "remote",
      "application_contact": "https://www.codeweavers.com/about/jobs"
    }
  ],
  "thread_link": "https://news.ycombinator.com/item?id=49156683",
  "thread_title": "Ask HN: Who is hiring? (August 2026)"
}
```

### Search stories

Operation `search_stories`, version 1. 1 credit per call.

Search Hacker News stories or comments by words, date range and sort order. Comments include their parent story’s website link when one exists; text-only stories have no website link.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `page` | integer | no | `2` | Page number, starting with 1, such as 2. |
| `sort` | string | no | `"newest"` | Order by relevance or newest, such as newest. |
| `type` | string | no | `"comments"` | Search stories or comments, such as comments. |
| `query` | string | yes | `"remote work"` | Words to search for, such as remote work. |
| `max_results` | integer | no | `3` | Maximum results on this page, such as 20. |
| `time_window` | string | no | `"past_month"` | How far back to search, such as past_week. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "default": 1,
      "minimum": 1,
      "description": "Page number, starting with 1, such as 2.",
      "x-fous-developer": true,
      "examples": [
        2,
        1
      ]
    },
    "sort": {
      "enum": [
        "relevance",
        "newest"
      ],
      "type": "string",
      "default": "relevance",
      "description": "Order by relevance or newest, such as newest.",
      "examples": [
        "newest"
      ]
    },
    "type": {
      "enum": [
        "stories",
        "comments"
      ],
      "type": "string",
      "default": "stories",
      "description": "Search stories or comments, such as comments.",
      "examples": [
        "comments",
        "stories"
      ]
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Words to search for, such as remote work.",
      "examples": [
        "remote work",
        "postgres",
        "AI"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum results on this page, such as 20.",
      "x-fous-developer": true,
      "examples": [
        3
      ]
    },
    "time_window": {
      "enum": [
        "past_day",
        "past_week",
        "past_month",
        "past_year",
        "all_time"
      ],
      "type": "string",
      "default": "all_time",
      "description": "How far back to search, such as past_week.",
      "examples": [
        "past_month",
        "past_week"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "remote work"
    },
    {
      "page": 2,
      "sort": "newest",
      "type": "comments",
      "query": "postgres",
      "max_results": 3,
      "time_window": "past_month"
    },
    {
      "page": 1,
      "sort": "newest",
      "type": "stories",
      "query": "AI",
      "max_results": 3,
      "time_window": "past_week"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `results` | array |  | Stories or comments matching the search. |
| `results[].title` | string or null | `"Remote work doesn't seem to affect productivity, Fed study finds"` | Story title. |
| `results[].author` | string or null | `"simula67"` | Hacker News author. |
| `results[].points` | integer or null | `848` | Story points, when available. |
| `results[].item_id` | string | `"39037589"` | Hacker News item ID. |
| `results[].posted_at` | string or null | `"2024-01-18T03:55:56Z"` | Posted date and time in UTC, ISO 8601. |
| `results[].website_url` | string or null | `"https://www.bloomberg.com/news/articles/2024-01-16/remote-work-doesn-t-seem-to-affect-productivity-fed-study-finds"` | Story website link, or null for a text-only story. |
| `results[].comment_text` | string or null | `"Trading algorithms at big shops read headline \"CEO of company leaves for greener AI pastures\"\nMake adjustments based` | Comment in plain text; null for stories. |
| `results[].comment_count` | integer or null | `579` | Number of story comments; null for comments. |
| `results[].hacker_news_url` | string | `"https://news.ycombinator.com/item?id=39037589"` | Link to the item on Hacker News. |

**Example input**

```json
{
  "query": "remote work"
}
```

**Example output**

```json
{
  "results": [
    {
      "title": "Remote work doesn't seem to affect productivity, Fed study finds",
      "author": "simula67",
      "points": 848,
      "item_id": "39037589",
      "posted_at": "2024-01-18T03:55:56Z",
      "website_url": "https://www.bloomberg.com/news/articles/2024-01-16/remote-work-doesn-t-seem-to-affect-productivity-fed-study-finds",
      "comment_text": null,
      "comment_count": 579,
      "hacker_news_url": "https://news.ycombinator.com/item?id=39037589"
    },
    {
      "title": "Written communication is remote work super power",
      "author": "snird",
      "points": 831,
      "item_id": "23577228",
      "posted_at": "2020-06-19T18:08:45Z",
      "website_url": "https://snir.dev/blog/remote-async-communication/",
      "comment_text": null,
      "comment_count": 190,
      "hacker_news_url": "https://news.ycombinator.com/item?id=23577228"
    },
    {
      "title": "SSH hacks – a little sanity for remote workers",
      "author": "mxfurman",
      "points": 770,
      "item_id": "23025756",
      "posted_at": "2020-04-29T23:20:48Z",
      "website_url": "https://smallstep.com/blog/ssh-tricks-and-tips/",
      "comment_text": null,
      "comment_count": 227,
      "hacker_news_url": "https://news.ycombinator.com/item?id=23025756"
    }
  ]
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@hacker-news",
  "visibility": "public",
  "operation": "get_discussion",
  "version": 1,
  "input": {
    "story": "https://news.ycombinator.com/item?id=8863",
    "max_comments": 10
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@hacker-news\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_discussion\",\n  \"version\": 1,\n  \"input\": {\n    \"story\": \"https://news.ycombinator.com/item?id=8863\",\n    \"max_comments\": 10\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@hacker-news",
  "visibility": "public",
  "operation": "get_discussion",
  "version": 1,
  "input": {
    "story": "https://news.ycombinator.com/item?id=8863",
    "max_comments": 10
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@hacker-news","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Track stories across Hacker News lists
- Find stories and comments about a topic
- Review a story’s comment thread
- Compare roles, salaries, and locations in hiring posts
- Find remote jobs in monthly hiring threads

## FAQ

### Is Fous affiliated with Hacker News?

No. Fous is not affiliated with Hacker News. This workflow reads the public news.ycombinator.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a Hacker News account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from news.ycombinator.com when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 30, 2026.

### What is trending on Hacker News?

Use List front page to read current stories in rank order from a selected list.

### What are people saying about a topic?

Use Search stories to find stories or comments by query, date range, and sort order.

### What jobs are listed in a hiring thread?

Use List hiring posts to return top-level posts and available job details from a monthly thread.

## Related

- [Yahoo News API](https://fous.com/workflows/yahoo-news.md): Yahoo News provides section headlines and searchable articles, plus public article text and details; health has no public stories, and search covers a limited results window.
- [The New York Times API](https://fous.com/workflows/the-new-york-times.md): The New York Times provides current section headlines and summaries, keyword-matched public listings with dates, authors, sections and links, and Best Sellers lists for the latest issue or dates within a week.
- [AP News API](https://fous.com/workflows/ap-news.md): AP News provides reporting, up to 50 public-page headlines, searchable articles visible in its search, and full text when accessible.
- [The Verge API](https://fous.com/workflows/the-verge.md): The Verge provides technology, science, entertainment, and policy headlines and searchable articles, including public stories and older archives, with search limited to the first 100 matches.
- [Google News API](https://fous.com/workflows/google-news.md): Google News returns recent publisher articles, up to 100 per search, current top stories by topic, country, and language, and local stories by city or region when available.
- [Techmeme API](https://fous.com/workflows/techmeme.md): Technology news headlines and related reporting.
- [Reddit API](https://fous.com/workflows/reddit.md): Reddit returns searchable public posts, community feeds/details, user profiles and recent activity, posts with up to 200 comments; unavailable content limits results; Top defaults weekly.
- [CNBC API](https://fous.com/workflows/cnbc.md): CNBC provides business news, page-view headlines, searchable CNBC articles excluding videos, wire stories and press releases, and potentially delayed major index and U.S. futures quotes.
- [All News workflows](https://fous.com/workflows/category/news)
