# Bing Search API — web, news & video search results (SERP scraper)

> Bing web search results — ranked organic pages with title, URL, snippet, answer box and related searches. Filter by market/language (mkt or gl/hl), SafeSearch and recency (freshness), with offset pagination.
> ReefAPI engine `bing` · 4 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/bing/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed or blocked calls are free.
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http, `Authorization: Bearer <key>`) and your assistant can call these actions directly.

## Endpoints

### POST /bing/v1/search — 1 credit
Bing web search results — ranked organic pages with title, URL, snippet, answer box and related searches. Filter by market/language (mkt or gl/hl), SafeSearch and recency (freshness), with offset pagination.

**Parameters:**
- `q` (string, required) — Search query (the keywords to look up).
- `engine` (enum, optional, default "auto") — Which search index to query. Leave on auto. Bing is kept for callers who explicitly want it, but it ignores search operators and matches individual words rather than the whole query, so it returns dictionary and generic pages for many real queries. [one of: auto, brave, bing, gnews, gemini, yandex]
- `depth` (enum, optional, default "exact") — How hard the gemini backend should work on one request. Ignored by the other search backends. [one of: exact, deep]
- `mkt` (string, optional) — Bing market as lang-COUNTRY (e.g. en-US, en-GB, de-DE). Controls locale regardless of exit IP. If omitted it is derived from gl + hl.
- `gl` (string, optional) — Country as a 2-letter ISO-3166 code (e.g. us, gb, de) — used to build mkt when mkt is absent.
- `hl` (string, optional) — Language as an ISO-639 code (e.g. en, de) — used to build mkt when mkt is absent.
- `count` (integer, optional) — Requested results (1-30; clamped). Note: Bing caps organic search results at ~10 per page regardless of count.
- `page` (integer, optional) — 1-based page for offset pagination (best-effort: Bing's bare pagination is session/IP-sensitive and may repeat page 1).
- `first` (integer, optional) — Explicit 1-based result offset (alternative to page; first=11 ~ page 2). Best-effort.
- `safe` (enum, optional) — Bing SafeSearch level (search only). An unrecognized value is ignored. [one of: off, moderate, strict]
- `freshness` (enum, optional) — Restrict results to a recency window (Bing `qft` interval). Single-letter forms d/w/m are also accepted; an unrecognized value is ignored. [one of: day, week, month]
- `device` (enum, optional) — User-agent profile. Only 'mobile' changes behavior; any other value is desktop. [one of: desktop, mobile]

**Returns:** engine, query, mkt, page_offset, total_estimate, count, results[] (position/title/url/displayed_url/domain/favicon/snippet), related_searches[], answer_box{}

**Example request body:**
```json
{
  "q": "best laptop 2026",
  "engine": "bing",
  "gl": "us"
}
```

### POST /bing/v1/news — 1 credit
Bing News results for a keyword — article title, source, URL and snippet, sorted by recency. Filter by market and a recency window (freshness).

**Parameters:**
- `q` (string, required) — Search query (the keywords to look up).
- `mkt` (string, optional) — Bing market as lang-COUNTRY (e.g. en-US, en-GB, de-DE). Controls locale regardless of exit IP. If omitted it is derived from gl + hl.
- `gl` (string, optional) — Country as a 2-letter ISO-3166 code (e.g. us, gb, de) — used to build mkt when mkt is absent.
- `hl` (string, optional) — Language as an ISO-639 code (e.g. en, de) — used to build mkt when mkt is absent.
- `count` (integer, optional) — Requested results (1-50; clamped). Note: Bing caps organic search results at ~10 per page regardless of count.
- `freshness` (enum, optional) — Restrict results to a recency window (Bing `qft` interval). Single-letter forms d/w/m are also accepted; an unrecognized value is ignored. [one of: day, week, month]

**Returns:** engine, query, mkt, count, news[] (position/title/url/source/snippet)

**Example request body:**
```json
{
  "q": "tesla",
  "gl": "us"
}
```

### POST /bing/v1/videos — 1 credit
Bing video search results — watch-page URL, thumbnail, duration and hosting platform (YouTube/Dailymotion/…) for every result; publisher/channel, view count, publish date and description when Bing exposes them. ~30 videos per page; paginate for more.

**Parameters:**
- `q` (string, required) — Search query (the keywords to look up).
- `mkt` (string, optional) — Bing market as lang-COUNTRY (e.g. en-US, en-GB, de-DE). Controls locale regardless of exit IP. If omitted it is derived from gl + hl.
- `gl` (string, optional) — Country as a 2-letter ISO-3166 code (e.g. us, gb, de) — used to build mkt when mkt is absent.
- `hl` (string, optional) — Language as an ISO-639 code (e.g. en, de) — used to build mkt when mkt is absent.
- `page` (integer, optional) — 1-based result page (each page ≈ 30 items).
- `first` (integer, optional) — Explicit 1-based result offset (alternative to page; first=11 ~ page 2). Best-effort.
- `safe` (enum, optional) — Bing SafeSearch level (search only). An unrecognized value is ignored. [one of: off, moderate, strict]

**Returns:** engine, query, mkt, page_offset, count, videos[] (position/title/url/duration/platform always present; thumbnail_url/publisher/views/published/description best-effort)

**Example request body:**
```json
{
  "q": "how to make pizza",
  "gl": "us"
}
```

### POST /bing/v1/autocomplete — 1 credit
Bing search autocomplete — query suggestions / typeahead from Bing's public suggest endpoint (fast, no anti-bot). Useful for keyword research.

**Parameters:**
- `q` (string, required) — Search query (the keywords to look up).
- `mkt` (string, optional) — Bing market as lang-COUNTRY (e.g. en-US, en-GB, de-DE). Controls locale regardless of exit IP. If omitted it is derived from gl + hl.
- `gl` (string, optional) — Country as a 2-letter ISO-3166 code (e.g. us, gb, de) — used to build mkt when mkt is absent.
- `hl` (string, optional) — Language as an ISO-639 code (e.g. en, de) — used to build mkt when mkt is absent.

**Returns:** engine, query, mkt, count, suggestions[] (ordered list of Bing query suggestions)

**Example request body:**
```json
{
  "q": "best lap",
  "gl": "us"
}
```

## More
- Try it live, no code: https://reefapi.com/playground?engine=bing
- Human docs page: https://reefapi.com/docs/bing
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
