Townhall API endpoint
Lists headlines for one Townhall section. `section` is required: `news` and `columnists` return the 20 most recent stories, while the topic sections (such as `congress`, `economy` or `iran`) return up to 30 stories mixing news and columns. Items carry title, URL, image and, when available, author, time and summary.
/townhall/headlinesQuery parameter: section is required and must be one of news, columnists, 2026-elections, congress, donald-trump, economy, foreign-policy, illegal-immigration, iran, supreme-court. Any other value returns an invalid-params error.
news and columnists return the 20 most recent stories from the section's public feed; the topic sections return up to 30 story cards from the topic page, mixing news stories and columns. Each item carries a title, canonical article URL, publication time and author byline when the listing provides them, a summary for the feed sections, and an image.
Example response (truncated):
{"code":200,"data":{"section":"iran","items":[{"title":"Abdul El-Sayed Ignores Thousands of People Killed by Iran As He Laments the Dead Ayatollah","url":"https://townhall.com/news/amy-curtis/2026/09/24/abdul-el-sayed-ayatollah-ignores-100k-iranians-killed-n2683519","author":"Amy Curtis","image_url":"https://media.townhall.com/cdn/hodl/2026/258/fe9063cf-310e-4ae0-b580-ceda8e308cb0-536x311.jpg"}]}}
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| title | 20 | median 72 characters |
| url | 20 | townhall.com |
| summary | 20 | median 299 characters |
| published_at | 20 | 2026-10-13 |
| author | 20 | |
| image_url | 20 | media.townhall.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| section | string | Yes | Townhall section slug Allowed values: news, columnists, 2026-elections, congress, donald-trump, economy, foreign-policy, illegal-immigration, iran, supreme-court. | news | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/townhall/headlines?section=news" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"section": "iran",
"items": [
{
"title": "Abdul El-Sayed Ignores Thousands of People Killed by Iran As He Laments the Dead Ayatollah",
"url": "https://townhall.com/news/amy-curtis/2026/09/24/abdul-el-sayed-ayatollah-ignores-100k-iranians-killed-n2683519",
"author": "Amy Curtis",
"image_url": "https://media.townhall.com/cdn/hodl/2026/258/fe9063cf-310e-4ae0-b580-ceda8e308cb0-536x311.jpg"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/publicnews.headlinesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| data | newsplatform.HeadlinesResponse | No | ||||
| data.items | array | No | HeadlineItem record, 7 fields: author, image_url, published_at, summary, title, type, url. Described under Townhall top stories API. | |||
| data.section | string | No |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/townhall/headlines?section=news" \
-H "x-api-key: $CRAWLORA_API_KEY"