Bing Search API
curl --request GET \
--url https://api.crawleo.dev/search \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.crawleo.dev/search"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.crawleo.dev/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"query": "<string>",
"pages_fetched": 123,
"pages": {
"total_results": "<string>",
"search_results": [
{
"title": "<string>",
"link": "<string>",
"date": {},
"snippet": "<string>",
"source": "<string>"
}
],
"related_queries": [
{}
],
"page_content": {
"enhanced_html": "<string>",
"page_markdown": "<string>"
}
},
"credits": 123
}Search APIs
Bing Search API
Bing-powered real-time web search API with auto-crawling, page content extraction, and multiple output formats. Optimized for RAG pipelines, LLM context, and AI agents.
GET
https://api.crawleo.dev
/
search
Bing Search API
curl --request GET \
--url https://api.crawleo.dev/search \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.crawleo.dev/search"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.crawleo.dev/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"query": "<string>",
"pages_fetched": 123,
"pages": {
"total_results": "<string>",
"search_results": [
{
"title": "<string>",
"link": "<string>",
"date": {},
"snippet": "<string>",
"source": "<string>"
}
],
"related_queries": [
{}
],
"page_content": {
"enhanced_html": "<string>",
"page_markdown": "<string>"
}
},
"credits": 123
}Overview
The Bing Search API provides real-time web search powered by Bing, with optional automatic crawling and content extraction of search results. It supports granular control over SERP enrichments and multiple output formats (HTML, Markdown, plain text) — making it the ideal choice for LLM applications, RAG pipelines, and AI agents.Which Search API should I use? Use the Bing Search API for LLM/RAG workflows — it supports auto-crawling and returns page content in Markdown. Use the Google Search API for SEO monitoring, lead generation, and structured SERP analysis.
Endpoint
GET https://api.crawleo.dev/search
Parameters
Required Headers
string
required
Your Crawleo API key for authentication. (Alternatively, use the
Authorization: Bearer YOUR_API_KEY header.)Example: x-api-key: YOUR_API_KEY or Authorization: Bearer YOUR_API_KEYRequired Parameters
string
required
The search query string.
Pagination Parameters
integer
default:"1"
Maximum number of search result pages to fetch. Each page costs 10 credits.
Localization Parameters
string
Language code for search results (e.g.,
en, es, fr, de).string
Country code for search results (e.g.,
US, GB, DE).string
Geographic location for localized results. Use
random for randomized geolocation.Device Simulation
string
default:"desktop"
Device type to simulate. Options:
desktop, mobile, tablet.SERP Enrichment Toggles
boolean
default:"true"
Include Copilot AI-generated answers in the SERP results.
boolean
default:"true"
Include “People Also Ask” question-and-answer cards in the results.
boolean
default:"true"
Include related search queries suggestions.
boolean
default:"true"
Include sidebar data (knowledge panels, local results, etc.).
boolean
default:"true"
Include direct answer boxes and instant answers.
Page Content Format Parameters
boolean
default:"false"
Return the original HTML source of each result page.
boolean
default:"false"
Return clean HTML with ads, scripts, and tracking removed.
boolean
default:"false"
Return plain text content extracted from each result page.
boolean
default:"false"
Return content as structured Markdown (recommended for RAG/LLM).
Auto-Crawling
boolean
default:"false"
Automatically crawl each search result URL and include page content.
Example Requests
Basic Search
curl -X GET "https://api.crawleo.dev/search?query=machine%20learning&count=10" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
import requests
response = requests.get(
"https://api.crawleo.dev/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"query": "machine learning",
"count": 10
}
)
data = response.json()
print(data)
const response = await fetch(
"https://api.crawleo.dev/search?query=machine%20learning&count=10",
{
headers: { "x-api-key": "YOUR_API_KEY" }
}
);
const data = await response.json();
console.log(data);
Search with Auto-Crawling and Markdown Output
curl -X GET "https://api.crawleo.dev/search?query=python%20tutorials&count=5&auto_crawling=true&markdown=true" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
import requests
response = requests.get(
"https://api.crawleo.dev/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"query": "python tutorials",
"count": 5,
"auto_crawling": True,
"markdown": True
}
)
data = response.json()
for page in data["pages"].values():
for result in page["search_results"]:
print(result["title"], result["link"])
const response = await fetch(
"https://api.crawleo.dev/search?query=python%20tutorials&count=5&auto_crawling=true&markdown=true",
{
headers: { "x-api-key": "YOUR_API_KEY" }
}
);
const data = await response.json();
console.log(data);
Full-Featured Search
curl -X GET \
"https://api.crawleo.dev/search?query=Who+is+Elon+Musk%3F&max_pages=1&device=desktop&setLang=en&geolocation=random&enhanced_html=true&raw_html=false&page_text=false&markdown=true&auto_crawling=true&copilot_answer=true&questions_answers=true&related_queries=true&sidebar=true&direct_answer=true" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
import requests
response = requests.get(
"https://api.crawleo.dev/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"query": "Who is Elon Musk?",
"max_pages": 1,
"device": "desktop",
"setLang": "en",
"geolocation": "random",
"enhanced_html": True,
"markdown": True,
"auto_crawling": True,
"copilot_answer": True,
"questions_answers": True,
"related_queries": True,
"sidebar": True,
"direct_answer": True
}
)
data = response.json()
print(data)
const params = new URLSearchParams({
query: "Who is Elon Musk?",
max_pages: "1",
device: "desktop",
setLang: "en",
geolocation: "random",
enhanced_html: "true",
markdown: "true",
auto_crawling: "true",
copilot_answer: "true",
questions_answers: "true",
related_queries: "true",
sidebar: "true",
direct_answer: "true"
});
const response = await fetch(
`https://api.crawleo.dev/search?${params}`,
{
headers: { "x-api-key": "YOUR_API_KEY" }
}
);
const data = await response.json();
console.log(data);
Localized Search
curl -X GET "https://api.crawleo.dev/search?query=news&setLang=de&cc=DE&count=10" \
-H "x-api-key: YOUR_API_KEY" \
-H "Accept: application/json"
import requests
response = requests.get(
"https://api.crawleo.dev/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"query": "news",
"setLang": "de",
"cc": "DE",
"count": 10
}
)
data = response.json()
print(data)
const response = await fetch(
"https://api.crawleo.dev/search?query=news&setLang=de&cc=DE&count=10",
{
headers: { "x-api-key": "YOUR_API_KEY" }
}
);
const data = await response.json();
console.log(data);
Response
A successful response returns search results with optional crawled content:{
"query": "Now in Android",
"pages_fetched": 1,
"pages": {
"1": {
"total_results": "About 41,100 results",
"search_results": [
{
"title": "GitHub - android/nowinandroid: A fully functional Android app built ...",
"link": "https://github.com/android/nowinandroid",
"date": null,
"snippet": "Learn how this app was designed and built in the design case study, architecture learning journey and modularization learning journey.",
"source": "Github"
},
{
"title": "Now in Android | Android Developers",
"link": "https://developer.android.com/series/now-in-android",
"date": "Aug 8, 2025",
"snippet": "Learn about the latest features and best practices of Android development with Now in Android app and podcast.",
"source": "Android Developers"
}
],
"related_queries": [
"latest Android now",
"Android now gg",
"what's new in Android development"
],
"page_content": {
"enhanced_html": "<body>...</body>",
"page_markdown": "# Search Results\n..."
}
}
},
"credits": 10
}
string
The search query that was executed.
integer
Number of pages fetched from the search engine.
object
Object containing results keyed by page number (e.g., “1”, “2”).
Show Page object properties
Show Page object properties
string
Estimated total number of results from the search engine.
array
array
Array of suggested related search queries (if
related_queries=true).integer
Number of credits consumed by this request.
Show Page content properties
Show Page content properties
Important Updates
This endpoint provides granular control over SERP enrichments through five boolean query parameters:
copilot_answer- Control AI-generated answer cardsquestions_answers- Control People Also Ask suggestionsrelated_queries- Control related search queriessidebar- Control sidebar data and knowledge panelsdirect_answer- Control instant answer boxes
true, allowing you to selectively disable them as needed.Breaking Change:
enhanced_html and markdown now default to false. To receive page content, explicitly set enhanced_html=true and/or markdown=true in your request. This makes default responses leaner and more focused on core search results.Use Cases
RAG Pipeline
RAG Pipeline
Use
auto_crawling=true with markdown=true to fetch search results and their full content in a single request, formatted for LLM consumption. This is the primary advantage over the Google Search API.AI Agent Context
AI Agent Context
Feed real-time Bing search results with extracted page content directly into LLM agents. The auto-crawling and Markdown output minimize token usage and post-processing.
Research Agent
Research Agent
Combine with localization parameters to gather region-specific information for AI research agents.
Content Aggregation
Content Aggregation
Use
enhanced_html=true to collect clean content from multiple sources without ads and scripts.Fine-Grained SERP Control
Fine-Grained SERP Control
Use the SERP enrichment toggles to customize which advanced search features are extracted. For example, set
questions_answers=false if you only need core results and related queries.Need Google SERP data instead?
Use the Google Search API for SEO monitoring, lead generation, competitor research, and structured SERP analysis.
Last modified on April 21, 2026
Was this page helpful?