SFGate API endpoint
Returns the latest SFGATE stories for one section. `section` is required and takes `top-news`, `bay-area`, `business-technology`, `entertainment`, `celebrity`, `food-dining`, `travel`, `routes`, `top-sports`, `giants`, `49ers` or `warriors`. Feeds hold 12 to 30 items, and the `warriors` feed is quiet in the off-season.
/sfgate/headlinesQuery parameter: section is required and must be one of top-news, bay-area, business-technology, entertainment, celebrity, food-dining, travel, routes, top-sports, giants, 49ers, or warriors. Any other value returns a 400 invalid-parameter error. Feeds return between 12 and 30 items; the Warriors feed is quiet in the off-season.
| Field | Filled in, of 15 checked | Values in the sample |
|---|---|---|
| title | 15 | median 72 characters |
| url | 15 | sfgate.com |
| summary | 15 | median 74 characters |
| published_at | 15 | 2026-10-09 to 2026-10-13 |
| author | 15 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| section | string | Yes | SFGate section slug Allowed values: top-news, bay-area, business-technology, entertainment, celebrity, food-dining, travel, routes, top-sports, giants, 49ers, warriors. | top-news | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sfgate/headlines?section=top-news" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"section": "bay-area",
"items": [
{
"title": "Example headline",
"url": "https://www.sfgate.com/bayarea/article/example-story-22400001.php",
"published_at": "2026-09-24T18:13:43Z"
}
]
}
}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 SFGate 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/sfgate/headlines?section=top-news" \
-H "x-api-key: $CRAWLORA_API_KEY"