Bing search
One page of Bing organic results, up to 35 per request.
/v1/bing/searchBing answers plain HTTP with no JS and no tokens. Each result keeps the title, the destination URL (Bing's click tracker is decoded back to the destination; an undecodable tracker is returned as-is rather than dropped), the display URL and the snippet. related_searches carries Bing's own refinement suggestions when the page shows them.
Request
https://api.scrapercompany.com/v1/bing/searchAuthenticate with your API key in the x-api-key header (see Authentication).
Body
JSON object. Unknown fields are rejected with 422.
- qstringrequiredmin length 1, max length 400
Search query.
- firstinteger | nullmin 1, max 1000
1-based result to start from; 11 pages past the first ten.
- countintegerdefault
10min 1, max 35Results per page (Bing serves up to 35).
- marketstring | nullpattern ^[a-z]{2,3}-[A-Za-z]{2,4}$
Bing
mkt(en-US,fr-CA); Bing geo-resolves when omitted.
Example request
curl -X POST "https://api.scrapercompany.com/v1/bing/search" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"q": "Hilton Chicago"
}'Response
200 — One page of Bing organic results with the trackers decoded. Metered responses carry x-credits-charged and x-credits-remaining headers (see credit headers).
{
"search_parameters": {
"engine": "bing_search",
"q": "Hilton Chicago",
"first": 1
},
"organic_results": [
{
"position": 1,
"title": "Hotels by Hilton - Book the Best Rates Across All Brands",
"url": "https://www.hilton.com/en/",
"snippet": "Explore Hilton's portfolio of hotels and distinct brands across the globe. Book directly for the best rates during your next stay. Expect …",
"display_url": "https://www.hilton.com"
},
{
"position": 2,
"title": "Hilton Chicago, IL - Hotel Overview, Reviews & Rates",
"url": "https://www.hilton.com/en/hotels/chichhx-hilton-chicago/",
"snippet": "Stay at Hilton Chicago, a landmark hotel on Michigan Avenue with direct access to McCormick Place…",
"display_url": "https://www.hilton.com › en › hotels"
}
],
"related_searches": [
{
"query": "hilton chicago magnificent mile",
"link": "/search?q=hilton+chicago+magnificent+mile"
}
],
"total": 2,
"meta": {
"source": "bing_search",
"wire_bytes": 19420,
"elapsed_s": 0.388,
"egress_mode": "direct"
}
}Errors
Errors return a JSON body with a detail field. Failed requests are not charged. See Errors for the full list and retry advice.
| Status | Meaning | Retry? |
|---|---|---|
401Unauthorized | Missing or invalid API key. {"detail":"missing or invalid API key"} | No, fix the request |
402Payment Required | Not enough credits for this request. Only returned once credit enforcement is switched on; during the beta metering runs in shadow mode and never blocks. {"detail":"insufficient credits: this request costs 5, 0 available. Credits renew 2026-11-01."} | No, fix the request |
422Unprocessable Content | Request validation failed. {"detail":[{"loc":["body","name"],"msg":"Field required","type":"missing"}]} | No, fix the request |
429Too Many Requests | Too many requests: the key's requests-per-minute limit was exceeded, or (once credit enforcement is on) the plan's concurrent-request limit. No rate-limit or Retry-After headers are sent; back off and retry. {"detail":"rate limit 60/min exceeded"} | Yes, with backoff |
502Bad Gateway | The upstream source failed, blocked the request or returned an unusable answer. Safe to retry later; failed requests are not charged. {"detail":"RuntimeError"} | Yes, with backoff |
503Service Unavailable | Temporarily unavailable: a dependency of this endpoint is down, or the upstream source changed its contract. Retry later. {"detail":"database unavailable: OperationalError"} | Yes, with backoff |
Try it
- Export your key:
export SCRAPERCOMPANY_API_KEY=sk_...(no key yet? request access). - Copy the cURL example above and run it in a terminal.
- Or open the interactive playground on api.scrapercompany.com, paste your key and pick this endpoint.