Bing Web Search API

The Bing Web Search API provides a comprehensive web search experience by returning relevant web pages, images, videos, news, and more for a given search query.

OpenAPI Specification

microsoft-bing-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bing Search APIs
  description: >-
    Minimal OpenAPI definition for the Bing Search APIs (Web, Image, News,
    Video, Entity, Visual, Custom, Spell Check, Autosuggest).
  version: v7.0
  x-generated-from: https://learn.microsoft.com/en-us/bing/search-apis/bing-web-search/overview
  x-generated-by: claude-crawl-2026-05-08
servers:
  - url: https://api.bing.microsoft.com
    description: Bing Search API host
security:
  - subscriptionKey: []
tags:
  - name: WebSearch
  - name: ImageSearch
  - name: NewsSearch
  - name: VideoSearch
  - name: EntitySearch
  - name: VisualSearch
  - name: CustomSearch
  - name: SpellCheck
  - name: Autosuggest
paths:
  /v7.0/search:
    get:
      tags: [WebSearch]
      summary: Web search
      operationId: webSearch
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Mkt'
        - $ref: '#/components/parameters/SafeSearch'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/images/search:
    get:
      tags: [ImageSearch]
      summary: Image search
      operationId: imageSearch
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Mkt'
        - $ref: '#/components/parameters/SafeSearch'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/news/search:
    get:
      tags: [NewsSearch]
      summary: News search
      operationId: newsSearch
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Mkt'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/news:
    get:
      tags: [NewsSearch]
      summary: Trending news
      operationId: newsTrending
      parameters:
        - $ref: '#/components/parameters/Mkt'
        - in: query
          name: category
          schema: { type: string }
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/videos/search:
    get:
      tags: [VideoSearch]
      summary: Video search
      operationId: videoSearch
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Mkt'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/entities:
    get:
      tags: [EntitySearch]
      summary: Entity search
      operationId: entitySearch
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Mkt'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/images/visualsearch:
    post:
      tags: [VisualSearch]
      summary: Visual search
      operationId: visualSearch
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                image:
                  type: string
                  format: binary
                knowledgeRequest:
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/custom/search:
    get:
      tags: [CustomSearch]
      summary: Custom search
      operationId: customSearch
      parameters:
        - $ref: '#/components/parameters/Query'
        - in: query
          name: customConfig
          required: true
          schema: { type: string }
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/spellcheck:
    get:
      tags: [SpellCheck]
      summary: Spell check
      operationId: spellCheck
      parameters:
        - in: query
          name: text
          required: true
          schema: { type: string }
        - in: query
          name: mode
          schema:
            type: string
            enum: [proof, spell]
        - $ref: '#/components/parameters/Mkt'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
  /v7.0/suggestions:
    get:
      tags: [Autosuggest]
      summary: Autosuggest
      operationId: autosuggest
      parameters:
        - $ref: '#/components/parameters/Query'
        - $ref: '#/components/parameters/Mkt'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
components:
  securitySchemes:
    subscriptionKey:
      type: apiKey
      in: header
      name: Ocp-Apim-Subscription-Key
  parameters:
    Query:
      in: query
      name: q
      required: true
      schema: { type: string }
    Count:
      in: query
      name: count
      schema: { type: integer }
    Offset:
      in: query
      name: offset
      schema: { type: integer }
    Mkt:
      in: query
      name: mkt
      schema: { type: string }
    SafeSearch:
      in: query
      name: safeSearch
      schema:
        type: string
        enum: [Off, Moderate, Strict]
  schemas:
    GenericObject:
      type: object
      additionalProperties: true