Bing API endpoint
Returns Bing news search results for a query string. Locale defaults to country=us and lang=en-us. Returns 503 when Bing serves a challenge page or unusable results.
/bing/newsReturns Bing news search results for a query string. Results include title, URL, source, age fields, thumbnail, description, and related-news count when Bing exposes a cluster.
q: required. Search query. Example: openai.page: optional. 1-based page number; defaults to 1.count: optional. Results per page; defaults to 10, clamped to 1..50.country: optional. Two-letter country code; defaults to us.lang: optional. Bing UI language; defaults to en-us.404 is returned when Bing clearly reports no results.503 is returned when Bing serves a challenge page, unusable HTML, or parser-empty first page without no-results markers.next_page is emitted when the parsed page has at least the requested count.| Field | Filled in, of 14 checked | Values in the sample |
|---|---|---|
| position | 14 | 1 to 14, median 7 |
| title | 14 | median 64 characters |
| url | 14 | techcrunch.com and 11 other hosts |
| source | 14 | “TechCrunch” and 12 other values |
| age | 9 | 4d (5), 3d (2), 6d (1) and 1 more |
| age_timestamp | 9 | 2026-10-07 to 2026-10-10 |
| thumbnail | 13 | “data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEAL…” and 7 other values |
| description | 14 | median 126 characters |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search query | openai | |
| page | integer | No | 1 | 1-based page number; defaults to 1 Minimum: 1. | 1 |
| count | integer | No | 10 | Results per page; defaults to 10, clamped to 1..50 Minimum: 1. Maximum: 50. | 10 |
| country | string | No | us | Two-letter country code; defaults to us | us |
| lang | string | No | en-us | Bing UI language; defaults to en-us | en-us |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/bing/news?q=openai&page=1&count=10&country=us&lang=en" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"results": [
{
"position": 1,
"title": "OpenAI announces update",
"url": "https://example.com/news/openai",
"source": "Reuters",
"age": "3h",
"age_timestamp": 1779163200,
"thumbnail": "https://www.bing.com/th?id=ONUT.example",
"description": "OpenAI announced an update.",
"related_count": 30
}
],
"pagination": {
"page": 1,
"count": 10,
"next_page": 2
}
}
}Request schema
No body schema
Response schema
#/definitions/bing.newsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | bing.NewsResponse | No | ||||
| data.pagination | object | No | Paging information for this response. | |||
| data.pagination.count | integer | No | 10 | Number of results requested per page. | ||
| data.pagination.next_page | integer | No | 2 | Page number of the next page. Omitted when there is no next page. | ||
| data.pagination.page | integer | No | 1 | Page number of this response, starting at 1. | ||
| data.pagination.previous_page | integer | No | 1 | Page number of the previous page. Omitted on the first page. | ||
| data.results | array | No | News results in Bing's order. | |||
| data.results[].age | string | No | 2 hours ago | How long ago the article was published, as Bing shows it. | ||
| data.results[].age_timestamp | integer | No | 1713513600 | Publication time of the article as Unix seconds in UTC. Omitted when it cannot be worked out from `age`. | ||
| data.results[].description | string | No | OpenAI announced a new model release. | Article snippet as shown on the Bing results page. | ||
| data.results[].position | integer | No | 1 | Rank of the article in the news block, starting at 1. | ||
| data.results[].related_count | integer | No | 30 | Number of additional relevant news articles Bing groups with this story. | ||
| data.results[].source | string | No | Reuters | Name of the publication, for example `Reuters`. | ||
| data.results[].thumbnail | string | No | https://example.com/openai-news.jpg | URL of the article thumbnail. | ||
| data.results[].title | string | No | OpenAI announces new model | Article headline as shown on the Bing results page. | ||
| data.results[].url | string | No | https://example.com/openai-news | URL of the news article. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid query parameters | #/definitions/app.Response |
| 404 | No results found | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
| 503 | Bing upstream request failed | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/bing/news?q=openai&page=1&count=10&country=us&lang=en" \
-H "x-api-key: $CRAWLORA_API_KEY"