Bing Scraper - Search Results & SERP Data
codemaster devops · @codemasterdevops
Scrape Bing search results, titles, links, and snippets. Run multiple queries with market, language, and page controls for SEO and competitor research.

About
Bing Search Results Scraper
Extract Bing search results into structured data for keyword research, SEO monitoring, and competitor analysis. Submit search terms or Bing search URLs and choose your market, language, and page limits.
What you can extract
- Organic result titles, links, and description snippets
- Search keyword and source search URL
- Displayed result count and page number when available
- Related searches and People Also Ask content when present
- Available news, image, video, and knowledge-card sections on the web search page
Additional search features depend on Bing's response and markup. They are not available for every query. This Actor reads web search pages; it does not run dedicated image, video, or news searches, and does not extract paid advertisements.
How to scrape Bing search results
- Enter search terms or full Bing web search URLs in
queries. - Choose
marketCodeand optionallylanguageCode. - Set
resultsPerPageandmaxPagesPerQuery. - Keep direct access enabled by leaving platform proxies off, or configure your own proxies through
proxyConfiguration. - Run the Actor and inspect or download the dataset.
Example input
{
"queries": ["Apify web scraping"],
"marketCode": "en-US",
"languageCode": "en",
"resultsPerPage": 10,
"maxPagesPerQuery": 1,
"maxConcurrency": 1,
"csvFriendliness": false,
"proxyConfiguration": {
"useApifyProxy": false
}
}
Direct access is the tested default on Bytewells. Custom proxy URLs can also be supplied. During migration testing, the platform-proxy route returned unrelated results for some queries while direct access returned relevant results. Verify query relevance before enabling platform proxies. Proxy location and Bing availability can affect results.
Choose your output format
Full search-page records
With csvFriendliness: false, each dataset record represents one fetched search page. Organic results are nested in pages, using title, link, and desc. Other available search sections are stored separately.
A dataset containing one record may therefore contain several organic results. Inspect the nested pages array or download JSON to see them all.
One organic result per row
Set csvFriendliness: true to save organic results as individual rows, each containing title, link, desc, and available search-page context. Additional rich search sections are omitted in this mode.
Common use cases
- Collect Bing results for keyword and content research.
- Compare which websites appear for a set of search terms.
- Monitor search results over time through repeated runs.
- Research related searches and available question sections.
- Compare results across selected markets and languages.
Limits and availability
- Bing controls how many organic results it returns; a requested count is not guaranteed.
- Search results vary by market, language, proxy location, and time.
- Start with
maxPagesPerQuery: 1. In migration testing, Bing sometimes repeated page 1 for later-page requests. Detected first-page repeats are rejected rather than saved as valid pagination; multi-page completeness is not verified. - Rich sections may be empty when Bing does not return supported markup.
- Blocked pages and request failures may produce a failed run with partial data.
- The Actor does not bypass login requirements or CAPTCHA challenges.
- This is an independent tool and is not affiliated with Microsoft or Bing.
Pricing
The monthly rental covers access to the Actor. Bytewells bills compute separately. Check applicable proxy charges before running large query batches.
Support
Provide the run ID, search query, market, and input settings with credentials removed. Explain which result fields or search pages were missing.
Input
Preview of the input form. Rent the Actor to fill it in and start runs from the console.
Fields
queriesBing Search queries (e.g. food in NYC) and/or full URLs (e.g. https://www.bing.com/search?q=food+NYC). Enter one item per field.
resultsPerPageNumber of search results per page. By default, Bing Search returns 10 results. The allowed values are between 1 and 100.
maxPagesPerQueryThe maximum number of search result pages crawled for each search query or URL. Note that a value greater than one might significantly slow down the actor.
marketCodeBing Search returns content for set market.
languageCodeLanguage for the search results.
csvFriendlinessRemove results that are not CSV friendly.
proxyConfigurationDirect access is the tested default on Bytewells. Optionally provide custom proxies or enable a platform proxy after checking that returned results match your query.
Here you can specify further parameters of the scrape. However we worked hard to set the best options for you already.
maxConcurrencyThe maximum number of search results pages the crawler will load in parallel. A higher number means you will get your results faster, but also it will burn through your available proxies quicker.
API
Bytewells speaks the Apify API. Existing integrations keep working: point apify-client at https://bytewells.com/api and use your Bytewells API token (Console → Settings → API access). The Actor ID is codemasterdevops/bing-scraper (or codemasterdevops~bing-scraper in URLs).
JavaScript · apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.BYTEWELLS_TOKEN,
baseUrl: 'https://bytewells.com/api',
});
const input = {
"queries": [
"Hotels in NYC",
"Restaurants in NYC",
"https://www.bing.com/search?q=restaurants+in+NYC"
],
"resultsPerPage": 10,
"maxPagesPerQuery": 1,
"marketCode": "en-US",
"languageCode": "en",
"csvFriendliness": false,
"proxyConfiguration": {
"useApifyProxy": false
},
"maxConcurrency": 10
};
const run = await client.actor('codemasterdevops/bing-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Python · apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["BYTEWELLS_TOKEN"], api_url="https://bytewells.com/api")
run_input = {
"queries": [
"Hotels in NYC",
"Restaurants in NYC",
"https://www.bing.com/search?q=restaurants+in+NYC"
],
"resultsPerPage": 10,
"maxPagesPerQuery": 1,
"marketCode": "en-US",
"languageCode": "en",
"csvFriendliness": False,
"proxyConfiguration": {
"useApifyProxy": False
},
"maxConcurrency": 10
}
run = client.actor("codemasterdevops/bing-scraper").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)HTTP · curl
curl -X POST "https://bytewells.com/api/v2/acts/codemasterdevops~bing-scraper/runs" \
-H "Authorization: Bearer $BYTEWELLS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["Hotels in NYC","Restaurants in NYC","https://www.bing.com/search?q=restaurants+in+NYC"],"resultsPerPage":10,"maxPagesPerQuery":1,"marketCode":"en-US","languageCode":"en","csvFriendliness":false,"proxyConfiguration":{"useApifyProxy":false},"maxConcurrency":10}'Runs are billed as compute from your credit balance. Paid Actors need an active rental or trial; otherwise the API answers 402 rental-required.
Related
More Actors from the same publisher.

Google Play Reviews Scraper - App Ratings & Feedback
codemaster devops · @codemasterdevops
Extract public Google Play app reviews, ratings, dates, helpful votes, and available developer replies for app research and competitor analysis.
MarketingSEO toolsDeveloper tools$19.99/mo3-day free trial
Pinterest Scraper – Extract Profiles & Pin Data
codemaster devops · @codemasterdevops
Scrape public Pinterest profiles and pins. Extract image URLs, descriptions, board details, source links, and available engagement stats.
Social mediaMarketingE-commerce$19.99/mo3-day free trial
Telegram Scraper - Public Channel Posts & Data
codemaster devops · @codemasterdevops
Scrape public Telegram channel posts, text, dates, views, and available media metadata. Filter by date or post ID and optionally collect public comments.
Social mediaMarketingNews$19.99/mo3-day free trial