JustSERPDocs
Bing

Bing Search

One page of Bing's web results for a query, answered as the document: `search_metadata`, `search_parameters`, `search_information` (`query_displayed`, `total_results`, `page`), `organic_results`, `ads`, `related_searches` and `pagination`.

GET
/v1/bing/search

One page of Bing's web results for a query, answered as the document: search_metadata, search_parameters, search_information (query_displayed, total_results, page), organic_results, ads, related_searches and pagination. The local pack, knowledge panel, people also ask, videos, top stories and AI overview are not answered. ads and related_searches are read from Bing's usual markup and were not seen on the 10 pages. A captcha is captcha, never an empty list. location is refused (send lat and lon); zero_retention is not handled.

Authorization

headerX-API-Key<token>

Your API key.

Query Parameters

cancel_token?string

A name you make up for this request (a UUID is fine), so you can later GET /v1/cancel with it. Only you know it, so only you can cancel. Use a new one for every request, retries included: a cancelled token stays cancelled for a few minutes.

Length1 <= length <= 128
q*string

What to search for.

Length1 <= length <= 1000
device?"desktop"

Anything but desktop is a 400.

Default"desktop"
Value in"desktop"
lat?number

With lon: the point to search around (Bing's cp).

Range-90 <= value <= 90
lon?number

With lat.

Range-180 <= value <= 180
market_code?string

language-country from Bing's list (en-us, de-de...). Not with country_code.

country_code?string

Two letters from Bing's list.

Default"US"
language?string

Bing's list (en, de, pt-br, zh-hans, jp...).

Default"en"
time_period?string

Not with filters.

Value in"last_day""last_week""last_month""last_year"
time_period_min?string

A custom range start, MM/DD/YYYY or YYYY-MM-DD. Not with time_period.

time_period_max?string

The range end; not before time_period_min.

filters?string

Bing's own filters value. Not with a time parameter.

num?integer

Results to ask for and the most the answer holds. Bing gives 10 whatever was asked.

Range1 <= value <= 50
page?integer

Starts at result (page-1)*num+1 (num 10 if not sent).

Range1 <= value <= 100
Default1
next_page_token?string

The previous answer's pagination.next_page_token; takes precedence over page.

Response Body

The results page, as the document. When the page could not be parsed, the usual envelope.

application/json
  1. response

The Bing Search document. A block is present only when the page has it.

search_metadata*
search_parameters*

The request's own fields as sent, engine first, without cancel_token.

search_information*

The parser's own, e.g. yelp_search's; otherwise {}.

organic_results?array<>
ads?array<>

Read from Bing's markup; none appeared on the 10 pages.

related_searches?array<>

None appeared on the 10 pages.

pagination?

next and next_page_token only when Bing offers a next page; previous after the first. other_pages is not answered.

[key: string]?any
Example Request
curl -X GET 'https://api.justserp.com/v1/bing/search?q=barack+obama&market_code=en-us&time_period=last_month'
Example Response
{  "search_metadata": {    "id": "string",    "status": "Success",    "created_at": "string",    "request_url": "string",    "html_url": "string"  },  "search_parameters": {},  "search_information": {    "query_displayed": "string",    "total_results": 0,    "page": 0  },  "organic_results": [    {      "position": 0,      "title": "string",      "link": "string",      "source": "string",      "domain": "string",      "displayed_link": "string",      "snippet": "string",      "snippet_highlighted_words": [        "string"      ],      "date": "string",      "favicon": "string",      "rich_snippet": {        "extensions": [          "string"        ]      }    }  ],  "ads": [    {      "position": 0,      "block_position": "string",      "title": "string",      "tracking_link": "string",      "displayed_link": "string",      "source": "string",      "snippet": "string"    }  ],  "related_searches": [    {      "query": "string",      "link": "string"    }  ],  "pagination": {    "current": 0,    "next": "string",    "previous": "string",    "next_page_token": "string"  }}