Skip to content
Bing

Bing search

One page of Bing organic results, up to 35 per request.

POST/v1/bing/search
1 credit

Bing 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

POSThttps://api.scrapercompany.com/v1/bing/search

Authenticate 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 35

    Results 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).

200 response
{
  "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.

StatusMeaningRetry?
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 is a list of problems for schema errors, or a string for semantic checks performed by the endpoint.

{"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

  1. Export your key: export SCRAPERCOMPANY_API_KEY=sk_... (no key yet? request access).
  2. Copy the cURL example above and run it in a terminal.
  3. Or open the interactive playground on api.scrapercompany.com, paste your key and pick this endpoint.

Credits

1 credit per successful call. Failed, blocked and empty results are free. Credit metering is in beta and does not block requests yet.