Piloterr Bing API
The Bing API from Piloterr — 1 operation(s) for bing.
The Bing API from Piloterr — 1 operation(s) for bing.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/piloterr-com:piloterr-com-bing-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Piloterr API Reference Bing API
description: Complete API reference documentation.
version: 1.0.0
servers:
- url: https://api.piloterr.com
description: API Server
tags:
- name: Bing
paths:
/v2/bing/search:
get:
summary: Bing Search
description: 'Scrape real-time Bing search results with full control over location, language, and pagination.
**Credit cost:** 1 credit per call'
operationId: get-bing-search
security:
- ApiKeyAuth: []
parameters:
- name: query
in: query
required: true
description: "The search query to execute on Bing. Supports all Bing advanced search operators.\n\n**Examples:**\n- `openai`: standard keyword search\n- `site:github.com python scraper`: restrict results to a specific domain\n- `intitle:\"openai\"`: match the page title\n- `inurl:blog python`: match part of the URL\n\n**Example:**\n\n openai"
schema:
type: string
description: "The search query to execute on Bing. Supports all Bing advanced search operators.\n\n**Examples:**\n- `openai`: standard keyword search\n- `site:github.com python scraper`: restrict results to a specific domain\n- `intitle:\"openai\"`: match the page title\n- `inurl:blog python`: match part of the URL\n\n**Example:**\n\n openai"
- name: page
in: query
required: false
description: 'Page number of results to retrieve. Used for pagination.
- `1`: First page (default)
- `2`: Second page
- `3`: Third page, etc.'
schema:
type: number
description: 'Page number of results to retrieve. Used for pagination.
- `1`: First page (default)
- `2`: Second page
- `3`: Third page, etc.'
- name: num
in: query
required: false
description: 'Number of results per page. **Minimum:** `10`, **Maximum:** `50`.
**Note:** This parameter is only a suggestion and might not reflect the actual number of results returned.'
schema:
type: number
description: 'Number of results per page. **Minimum:** `10`, **Maximum:** `50`.
**Note:** This parameter is only a suggestion and might not reflect the actual number of results returned.'
- name: location
in: query
required: false
description: "City or region from which the search should originate. If multiple locations match, the most popular one is selected.\n\n**Note:** Cannot be used together with `lat`/`lon`. It is recommended to specify location at the city level.\n\n**Example:**\n\n Austin"
schema:
type: string
description: "City or region from which the search should originate. If multiple locations match, the most popular one is selected.\n\n**Note:** Cannot be used together with `lat`/`lon`. It is recommended to specify location at the city level.\n\n**Example:**\n\n Austin"
- name: lat
in: query
required: false
description: "GPS latitude coordinate for the search origin.\n\n**Example:**\n\n 48.8566"
schema:
type: number
description: "GPS latitude coordinate for the search origin.\n\n**Example:**\n\n 48.8566"
- name: lon
in: query
required: false
description: "GPS longitude coordinate for the search origin.\n\n**Example:**\n\n 2.3522"
schema:
type: number
description: "GPS longitude coordinate for the search origin.\n\n**Example:**\n\n 2.3522"
- name: mkt
in: query
required: false
description: 'Market code combining language and country, in the form `<language>-<country>`. Defines where the results come from.
- `en-US`: English, United States (default)
- `fr-FR`: French, France
- `de-DE`: German, Germany
- `es-ES`: Spanish, Spain
**Note:** Cannot be used together with `cc`.'
schema:
type: string
description: 'Market code combining language and country, in the form `<language>-<country>`. Defines where the results come from.
- `en-US`: English, United States (default)
- `fr-FR`: French, France
- `de-DE`: German, Germany
- `es-ES`: Spanish, Spain
**Note:** Cannot be used together with `cc`.'
- name: cc
in: query
required: false
description: 'Two-letter ISO 3166-1 country code defining the country to search from.
- `us`: United States
- `de`: Germany
- `gb`: United Kingdom
- `fr`: France
**Note:** Cannot be used together with `mkt`.'
schema:
type: string
description: 'Two-letter ISO 3166-1 country code defining the country to search from.
- `us`: United States
- `de`: Germany
- `gb`: United Kingdom
- `fr`: France
**Note:** Cannot be used together with `mkt`.'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
pagination:
type: object
properties:
next:
nullable: true
current:
type: integer
other_pages:
type: array
items: {}
has_next_page:
type: boolean
organic_results:
type: array
items:
type: object
properties:
link:
type: string
title:
type: string
domain:
type: string
snippet:
type: string
position:
type: integer
displayed_link:
type: string
snippet_matched:
type: array
items:
type: string
search_parameters:
type: object
properties:
q:
type: string
cc:
type: string
lat:
nullable: true
lon:
nullable: true
mkt:
type: string
num:
nullable: true
page:
type: integer
engine:
type: string
location:
nullable: true
bing_domain:
type: string
search_information:
type: object
properties:
total_results:
nullable: true
examples:
Search 'openai'. US/English:
value:
pagination:
next: null
current: 1
other_pages: []
has_next_page: false
organic_results:
- link: https://openai.com/
title: OpenAI
domain: openai.com
snippet: OpenAI is an AI research and deployment company.
position: 1
displayed_link: https://openai.com
snippet_matched:
- openai
- link: https://platform.openai.com/docs
title: OpenAI API documentation
domain: platform.openai.com
snippet: Guides and the API reference for the OpenAI platform.
position: 2
displayed_link: https://platform.openai.com › docs
snippet_matched: []
search_parameters:
q: openai
cc: us
lat: null
lon: null
mkt: en-US
num: null
page: 1
engine: bing
location: null
bing_domain: bing.com
search_information:
total_results: null
Search 'python tutorial' with market 'en-US':
value:
pagination:
next: null
current: 1
other_pages: []
has_next_page: false
organic_results:
- link: https://docs.python.org/3/tutorial/index.html
title: The Python Tutorial. Python 3.14.3 documentation
domain: docs.python.org
snippet: null
position: 1
displayed_link: https://docs.python.org ›tutorial
snippet_matched: []
- link: https://www.tutorialspoint.com/python/index.htm
title: Python Tutorial
domain: tutorialspoint.com
snippet: This Python tutorial gives a complete understanding of Python programming language, starting from basic concepts to advanced concepts.
position: 2
displayed_link: https://www.tutorialspoint.com ›python
snippet_matched:
- python tutorial
- link: https://www.learnpython.org/
title: Learn Python - Free Interactive Python Tutorial
domain: learnpython.org
snippet: Learn Python for data science, web development, or general programming with this website.
position: 3
displayed_link: https://www.learnpython.org
snippet_matched: []
- link: https://realpython.com/
title: 'Python Tutorials: Real Python'
domain: realpython.com
snippet: 'Learn Python online: Python tutorials for developers of all skill levels, Python books and courses, Python news, code examples, articles, and more.'
position: 4
displayed_link: https://realpython.com
snippet_matched:
- python tutorial
search_parameters:
q: python tutorial
cc: null
lat: null
lon: null
mkt: en-US
num: null
page: 1
engine: bing
location: null
bing_domain: bing.com
search_information:
total_results: null
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Bing
post:
summary: Bing Search
description: 'Scrape real-time Bing search results with full control over location, language, and pagination.
**Credit cost:** 1 credit per call'
operationId: post-bing-search
security:
- ApiKeyAuth: []
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
description: "The search query to execute on Bing. Supports all Bing advanced search operators.\n\n**Examples:**\n- `openai`: standard keyword search\n- `site:github.com python scraper`: restrict results to a specific domain\n- `intitle:\"openai\"`: match the page title\n- `inurl:blog python`: match part of the URL\n\n**Example:**\n\n openai"
page:
type: number
description: 'Page number of results to retrieve. Used for pagination.
- `1`: First page (default)
- `2`: Second page
- `3`: Third page, etc.'
num:
type: number
description: 'Number of results per page. **Minimum:** `10`, **Maximum:** `50`.
**Note:** This parameter is only a suggestion and might not reflect the actual number of results returned.'
location:
type: string
description: "City or region from which the search should originate. If multiple locations match, the most popular one is selected.\n\n**Note:** Cannot be used together with `lat`/`lon`. It is recommended to specify location at the city level.\n\n**Example:**\n\n Austin"
lat:
type: number
description: "GPS latitude coordinate for the search origin.\n\n**Example:**\n\n 48.8566"
lon:
type: number
description: "GPS longitude coordinate for the search origin.\n\n**Example:**\n\n 2.3522"
mkt:
type: string
description: 'Market code combining language and country, in the form `<language>-<country>`. Defines where the results come from.
- `en-US`: English, United States (default)
- `fr-FR`: French, France
- `de-DE`: German, Germany
- `es-ES`: Spanish, Spain
**Note:** Cannot be used together with `cc`.'
cc:
type: string
description: 'Two-letter ISO 3166-1 country code defining the country to search from.
- `us`: United States
- `de`: Germany
- `gb`: United Kingdom
- `fr`: France
**Note:** Cannot be used together with `mkt`.'
required:
- query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
pagination:
type: object
properties:
next:
nullable: true
current:
type: integer
other_pages:
type: array
items: {}
has_next_page:
type: boolean
organic_results:
type: array
items:
type: object
properties:
link:
type: string
title:
type: string
domain:
type: string
snippet:
type: string
position:
type: integer
displayed_link:
type: string
snippet_matched:
type: array
items:
type: string
search_parameters:
type: object
properties:
q:
type: string
cc:
type: string
lat:
nullable: true
lon:
nullable: true
mkt:
type: string
num:
nullable: true
page:
type: integer
engine:
type: string
location:
nullable: true
bing_domain:
type: string
search_information:
type: object
properties:
total_results:
nullable: true
examples:
Search 'openai'. US/English:
value:
pagination:
next: null
current: 1
other_pages: []
has_next_page: false
organic_results:
- link: https://openai.com/
title: OpenAI
domain: openai.com
snippet: OpenAI is an AI research and deployment company.
position: 1
displayed_link: https://openai.com
snippet_matched:
- openai
- link: https://platform.openai.com/docs
title: OpenAI API documentation
domain: platform.openai.com
snippet: Guides and the API reference for the OpenAI platform.
position: 2
displayed_link: https://platform.openai.com › docs
snippet_matched: []
search_parameters:
q: openai
cc: us
lat: null
lon: null
mkt: en-US
num: null
page: 1
engine: bing
location: null
bing_domain: bing.com
search_information:
total_results: null
Search 'python tutorial' with market 'en-US':
value:
pagination:
next: null
current: 1
other_pages: []
has_next_page: false
organic_results:
- link: https://docs.python.org/3/tutorial/index.html
title: The Python Tutorial. Python 3.14.3 documentation
domain: docs.python.org
snippet: null
position: 1
displayed_link: https://docs.python.org ›tutorial
snippet_matched: []
- link: https://www.tutorialspoint.com/python/index.htm
title: Python Tutorial
domain: tutorialspoint.com
snippet: This Python tutorial gives a complete understanding of Python programming language, starting from basic concepts to advanced concepts.
position: 2
displayed_link: https://www.tutorialspoint.com ›python
snippet_matched:
- python tutorial
- link: https://www.learnpython.org/
title: Learn Python - Free Interactive Python Tutorial
domain: learnpython.org
snippet: Learn Python for data science, web development, or general programming with this website.
position: 3
displayed_link: https://www.learnpython.org
snippet_matched: []
- link: https://realpython.com/
title: 'Python Tutorials: Real Python'
domain: realpython.com
snippet: 'Learn Python online: Python tutorials for developers of all skill levels, Python books and courses, Python news, code examples, articles, and more.'
position: 4
displayed_link: https://realpython.com
snippet_matched:
- python tutorial
search_parameters:
q: python tutorial
cc: null
lat: null
lon: null
mkt: en-US
num: null
page: 1
engine: bing
location: null
bing_domain: bing.com
search_information:
total_results: null
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Bing
components:
parameters:
fields:
name: fields
in: query
required: false
description: Comma-separated list of response fields to return, with dot notation for nested fields (e.g. `name,location.city`).
schema:
type: string
is_async:
name: is_async
in: query
required: false
description: 'Run the request as a background job: the API answers `202` with a `job_id` to poll on `GET /v1/jobs/{id}`.'
schema:
type: boolean
default: false
soft_fail:
name: soft_fail
in: query
required: false
description: Return HTTP 200 even when the request fails; the error is in the `error` field of the body.
schema:
type: boolean
default: false
schemas:
ErrorResponse:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: Your API key. Include it in the x-api-key header for every request.