Bing API endpoint

Search Bing web results

Returns normalized Bing web search results for a query string, including organic results, optional context panel data, related queries, people-also-ask questions, news modules, video modules, and page-based pagination. Empty optional blocks are omitted from the JSON response. Locale defaults to country=us and lang=en-us. Results are fetched with the repo's Chrome-impersonated request client and return 502 when Bing serves a challenge page or unusable HTML.

GETapiKey3 credits/requestbing.searchResponseDoc/bing/search

Parameters

NameInTypeRequiredEnumExampleDescription
qquerystringYesopenaiSearch query
pagequeryintegerNo11-based page number; defaults to 1
countqueryintegerNo10Results per page; defaults to 10, clamped to 1..50
countryquerystringNousTwo-letter country code; defaults to us
langquerystringNoen-usBing UI language; defaults to en-us
x-api-keyheaderstringYesAPI key required

Authentication

Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.

Billing

Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.

Credit cost
3 credits/request
Charged response
Successful 2xx responses
PlanPriceIncluded creditsDaily capRate limitOverage
Free$0/mo2,000500 daily credits5/minNo overage
Starter$9/mo20,0005,000 daily credits15/min$0.75/1,000 overage credits when enabled
Growth$29/mo100,00025,000 daily credits45/min$0.45/1,000 overage credits when enabled
Pro$79/mo400,000No daily cap120/min$0.30/1,000 overage credits
Business$199/mo1,200,000No daily cap300/min$0.20/1,000 overage credits
Enterprise$499/mo5,000,000No daily cap1,000/min$0.12/1,000 overage credits

Failure responses

StatusDescriptionSchema
400Missing or invalid query parameters#/definitions/app.Response
404No results found#/definitions/app.Response
429Rate limit exceeded#/definitions/app.Response
500Internal server error#/definitions/app.Response
502Bing upstream request failed#/definitions/app.Response

Example response

{
  "code": 200,
  "msg": "OK",
  "data": {
    "results": [
      {
        "position": 1,
        "title": "OpenAI - Reddit",
        "url": "https://www.reddit.com/r/OpenAI/",
        "description": "OpenAI is an AI research and deployment company. OpenAI's mission is to ensure that artificial general intelligence benefits all of humanity...",
        "hostname": "www.reddit.com",
        "display_url": "https://www.reddit.com › OpenAI",
        "favicon": "https://th.bing.com/th/id/ODLS.A2450BEC-5595-40BA-9F13-D9EC6AB74B9F..."
      }
    ],
    "pagination": {
      "page": 1,
      "count": 10,
      "next_page": 2
    }
  }
}

Request schema

No body schema

Response schema

#/definitions/bing.searchResponseDoc

FieldTypeRequiredEnumBoundsExampleDescription
codeintegerNo200
databing.SearchResponseNo
data.contextbing.SearchContextNo
data.context.attributesarrayNo
data.context.attributes[].labelstringNoFounded
data.context.attributes[].valuestringNo2015
data.context.descriptionstringNoOpenAI is an AI research and deployment company.
data.context.imagestringNohttps://example.com/openai.jpg
data.context.subtitlestringNoArtificial intelligence research organization
data.context.titlestringNoOpenAI
data.context.urlstringNohttps://openai.com/
data.newsarrayNo
data.news[].agestringNo2 hours ago
data.news[].age_timestampintegerNo1713513600
data.news[].descriptionstringNoOpenAI announced a new model release.
data.news[].positionintegerNo1
data.news[].sourcestringNoReuters
data.news[].thumbnailstringNohttps://example.com/openai-news.jpg
data.news[].titlestringNoOpenAI announces new model
data.news[].urlstringNohttps://example.com/openai-news
data.paginationbing.SearchPaginationNo
data.pagination.countintegerNo10
data.pagination.next_pageintegerNo2
data.pagination.pageintegerNo1
data.pagination.previous_pageintegerNo1
data.people_also_askarrayNo
data.related_queriesarrayNo
data.resultsarrayNo
data.results[].agestringNoApr 19, 2023
data.results[].age_timestampintegerNo1713484800
data.results[].descriptionstringNoOpenAI is an AI research and deployment company.
data.results[].display_urlstringNohttps://www.reddit.com > OpenAI
data.results[].faviconstringNohttps://th.bing.com/th/id/ODLS.example?w=32&h=32
data.results[].hostnamestringNowww.reddit.com
data.results[].positionintegerNo1
data.results[].titlestringNoOpenAI - Reddit
data.results[].urlstringNohttps://www.reddit.com/r/OpenAI/
data.videosarrayNo
data.videos[].agestringNoNov 6, 2023
data.videos[].age_timestampintegerNo1699228800
data.videos[].creatorstringNoOpenAI
data.videos[].durationstringNo45:12
data.videos[].platformstringNoYouTube
data.videos[].positionintegerNo1
data.videos[].thumbnailstringNohttps://example.com/openai-video.jpg
data.videos[].titlestringNoOpenAI DevDay keynote - YouTube
data.videos[].urlstringNohttps://www.youtube.com/watch?v=openai-devday
msgstringNoOK

Example request

curl -X GET "https://api.crawlora.net/api/v1/bing/search?q=openai&page=1&count=10&country=us&lang=en-us" -H "x-api-key: <api-key>"

TypeScript fetch

const url = new URL("https://api.crawlora.net/api/v1/bing/search");
url.searchParams.set("q", "openai");
url.searchParams.set("page", "1");
url.searchParams.set("count", "10");
url.searchParams.set("country", "us");
url.searchParams.set("lang", "en-us");
const headers = new Headers();
headers.set("x-api-key", "<api-key>");
const response = await fetch(url, {
  method: "GET",
  headers,
});
const payload = await response.json();