Google Finance API endpoint
Returns Google Finance news for one market category, identified by the `category` path id. Use `offset` to page through results. Each item has its title, URL and publication time (ISO and Unix), plus the source, a thumbnail and any related quotes with price, change and percent change when Google provides them. The response also echoes `category` and `offset`.
/google/finance/markets/categories/{category}/newsQuery parameters:
offset: optional result offsetReturns category news.
| Field | Filled in, of 6 checked | Values in the sample |
|---|---|---|
| title | 6 | median 59 characters |
| source | 6 | Yahoo Finance (5), The Motley Fool (1) |
| url | 6 | fool.com and 1 other host |
| published_unix | 6 | 2026-10-12 to 2026-10-13 |
| published_at | 6 | 2026-10-12 to 2026-10-13 |
| thumbnail_url | 6 | encrypted-tbn0.gstatic.com and 2 other hosts |
| related | 6 | median 2 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| category (path) | string | Yes | Google Finance category id | 2 | |
| offset | integer | No | Result offset | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/google/finance/markets/categories/2/news" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"category": "2",
"items": [
{
"title": "Technology shares rise",
"source": "Reuters"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/finance.categoryNewsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | finance.CategoryNewsResponse | No | ||||
| data.category | string | No | 18 | Google Finance category id that was requested. | ||
| data.items | array | No | News articles listed for the category. | |||
| data.items[].published_at | string | No | Time the article was published, in UTC (RFC 3339). | |||
| data.items[].published_unix | integer | No | 1777077000 | Time the article was published, in Unix seconds. | ||
| data.items[].related | array | No | Instruments mentioned in the article. | |||
| data.items[].related[].after_hours | object | No | Price and change in after-hours trading. | |||
| data.items[].related[].after_hours.change | number | No | -3.37 | Price change, in the same unit as `price`. | ||
| data.items[].related[].after_hours.change_percent | number | No | -1.3 | Price change as a percentage. | ||
| data.items[].related[].after_hours.price | number | No | 255.65 | Price in after-hours trading. | ||
| data.items[].related[].change | number | No | -3.37 | Price change shown by Google Finance, in the same unit as `price`. | ||
| data.items[].related[].change_percent | number | No | -1.3 | Price change as a percentage, as Google Finance shows it. | ||
| data.items[].related[].country | string | No | US | Country code of the instrument, for example `US`. | ||
| data.items[].related[].currency | string | No | USD | Currency code the instrument is priced in, for example `USD`. | ||
| data.items[].related[].exchange | string | No | NASDAQ | Exchange the instrument trades on, for example `NASDAQ`. | ||
| data.items[].related[].google_id | string | No | /m/07zmbvf | Google's id for the instrument, for example `/m/07zmbvf`. | ||
| data.items[].related[].identifier | string | No | AAPL:NASDAQ | Instrument identifier in `TICKER:EXCHANGE` form, for example `AAPL:NASDAQ`. Use it as the `quote` path parameter. | ||
| data.items[].related[].last_update_unix | integer | No | 1777077000 | Time of the latest price update, in Unix seconds. | ||
| data.items[].related[].name | string | No | Apple Inc | Instrument name, for example `Apple Inc`. | ||
| data.items[].related[].previous_close | number | No | 236.35 | Closing price of the previous trading day. | ||
| data.items[].related[].price | number | No | 255.65 | Latest price of the instrument. | ||
| data.items[].related[].ticker | string | No | AAPL | Ticker symbol of the instrument. | ||
| data.items[].related[].timezone | string | No | America/New_York | IANA time zone of the instrument's market, for example `America/New_York`. | ||
| data.items[].related[].type | string | No | stock | Kind of instrument: `stock`, `index`, `crypto`, `etf` or `other`. | ||
| data.items[].source | string | No | Reuters | Name of the publisher of the article. | ||
| data.items[].thumbnail_url | string | No | URL of the article thumbnail image. | |||
| data.items[].title | string | No | Apple announces an update | Headline of the article. | ||
| data.items[].url | string | No | https://example.com/news | URL of the article on the publisher's site. | ||
| data.offset | integer | No | 0 | Number of articles skipped before this page. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 500 | Internal Server Error | #/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/google/finance/markets/categories/2/news" \
-H "x-api-key: $CRAWLORA_API_KEY"