Bing Recipes Scraper API
Our Bing recipes scraper reads the inline recipe carousel Bing shows for a food query, returning each recipe as JSON: title, source site, rating, total time, thumbnail, and the real recipe link, with a graceful fall back to organic recipe destinations when the carousel is not shown.
Quickstart
curl "https://api.bingscraperapi.com/api/v1/bing/recipe?q=chocolate+chip+cookies&api_key=$API_KEY" import requests
BASE = "https://api.bingscraperapi.com"
API_KEY = "YOUR_API_KEY"
data = requests.get(
f"{BASE}/api/v1/bing/recipe",
params={"q": "chocolate chip cookies", "api_key": API_KEY},
timeout=30,
).json()
# block is 'carousel' when Bing shows the recipe carousel,
# or 'organic_fallback' when it does not.
print(data["block"], "-", data["results_count"], "recipes")
for r in data["results"]:
print(r["position"], r["title"], "-", r["source"])
print(" rating:", r["rating"], "| time:", r["total_time"])
print(" ", r["link"]) Response
{
"query": "chocolate chip cookies",
"results_count": 4,
"block": "carousel",
"results": [
{
"position": 1,
"title": "Easy chocolate chip cookies recipe",
"link": "https://www.goodto.com/recipes/jasmine-s-easy-choc-chip-biscuits",
"source": "Goodto.com",
"rating": 4,
"total_time": "30 min",
"thumbnail": "https://th.bing.com/th/id/OSK.9b107461f4991a7e9089106d151ee663?w=156&h=124&c=7&rs=1&qlt=80&o=6&cdv=1&pid=16.1",
"id": "9f6be56eadd568535b72fe5ac914097b",
"meta": "30 min · 224 cals · 20 servs"
},
{
"position": 2,
"title": "Best Chocolate Chip Cookies",
"link": "https://cooking.nytimes.com/recipes/1015819-chocolate-chip-cookies",
"source": "Nytimes.com",
"rating": 5,
"total_time": "1 hr 55 min",
"thumbnail": "https://th.bing.com/th/id/OSK.d39cc893915fbefa8f8402e6b2f0cd7d?w=156&h=124&c=7&rs=1&qlt=80&o=6&cdv=1&pid=16.1",
"id": "a8fba68e14f2063bf9c43d0b678839e3",
"meta": "1 hr 55 min · 22 cals · 18 servs"
}
]
} | Field | Type | Description |
|---|---|---|
query | string | The query that was searched, echoed back from your request. |
results_count | integer | Number of recipe results returned. |
block | string | Which block was parsed: carousel when Bing shows the recipe carousel, or organic_fallback when it does not. |
results | array | The recipe results, each with position, title, link, source, rating, total_time, and thumbnail. |
results[].link | string | The real recipe URL, from the card's data-pageUrl or decoded from Bing's redirect. |
results[].source | string | The publishing site, e.g. Goodto.com or Nytimes.com. |
results[].rating | number | The recipe rating as a number, e.g. 4 or 4.7, or null when not shown. |
results[].total_time | string | The total time parsed from the recipe meta line, e.g. 30 min, or null. |
Params
| Parameter | Required | Default | Notes |
|---|---|---|---|
q | required | - | The recipe or dish query, e.g. chocolate chip cookies. The word recipe is appended automatically if missing so the carousel triggers. |
url | optional | - | A full bing.com/search URL to parse instead of building one from q. Pass q or url. |
count | optional | 30 | Max results to return, 1 to 60. Defaults to 30. |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
Use it for
Recipe aggregation
Recipe app content
Rating and time comparison
Food SEO research
How it works
- Send a GET request with your target and API key.
- We route through residential proxies, handle anti-bot, and parse the response.
- You get validated JSON back, ready to use.
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
What is a Bing recipes scraper?
A Bing recipes scraper reads the recipes Bing shows for a food query and returns them in a structured format. Our Bing recipes scraper API takes a dish query and returns each recipe's title, source site, rating, total time, thumbnail, and real link as JSON from a single request, using Bing's inline recipe carousel when it is shown.
Does every query return the recipe carousel?
No. Bing's recipe carousel is query-dependent and only server-renders on the plain SERP when the query implies a recipe. We build the request to trigger it and append the word recipe when it is missing, but when Bing still does not show the carousel we fall back to the organic recipe results. The block field tells you which one you got: carousel or organic_fallback.
What is the difference between the carousel and the fallback?
The carousel block returns richer cards with rating, total_time, and the full meta line for each recipe. The organic_fallback block returns the organic recipe destinations, with title, link, and source, but without carousel-only fields like rating and total_time, which come back null. Both give you real recipe links; the carousel just carries more metadata when Bing renders it.
How do I get the total cooking time?
For carousel results, we parse the total_time from the recipe meta line, for example pulling 30 min out of a line like 30 min · 224 cals · 20 servs, and also return the full meta string so you can read calories and servings. Fallback results do not include a meta line, so total_time is null there.
Are the recipe links the publisher's real page?
Yes. Carousel cards carry a data-pageUrl that points at the publisher's recipe, and we return that as the link; where it is missing we decode Bing's redirect to the real destination. Fallback results use the decoded organic link. Either way the link points at the source site's recipe rather than a bing.com link.
Is scraping Bing recipe results legal?
Scraping publicly visible recipe search results is generally treated as lower risk than scraping data behind a login. This is not legal advice: recipes and their photos are often under copyright, so you are responsible for respecting Bing's terms, the publishers' terms, and copyright. Collecting links and metadata to point users at the source recipes differs from copying the recipe text and images wholesale.