swagger: '2.0'
info:
title: Microsoft Azure Spell Check Client
description: >-
The Spell Check API - V7 lets you check a text string for spelling and
grammar errors.
version: '1.0'
parameters:
x-bingapis-sdk:
name: X-BingApis-SDK
description: Activate swagger compliance
x-ms-parameter-location: method
required: true
type: string
in: header
x-ms-enum:
name: XBingApisSDK
modelAsString: true
enum:
- 'true'
x-ms-parameterized-host:
hostTemplate: '{Endpoint}'
useSchemePrefix: false
parameters:
- $ref: ../../../Common/Parameters.json#/parameters/GlobalEndpoint
host: api.cognitive.microsoft.com
basePath: /bing/v7.0
schemes:
- https
produces:
- application/json
securityDefinitions:
apiKeyHeader:
name: Ocp-Apim-Subscription-Key
type: apiKey
in: header
security:
- apiKeyHeader: []
paths:
/spellcheck:
post:
summary: >-
Microsoft Azure The Bing Spell Check Api Lets You Perform Contextual Grammar And Spell Checking Bing Has Developed A Web Based Spell Checker That Leverages Machine Learning And Statistical Machine Translation To Dynamically Train A Constantly Evolving And Highly Contextual Algorithm The Spell Checker Is Based On A Massive Corpus Of Web Searches And Documents
operationId: microsoftAzureSpellchecker
tags:
- SpellCheck
consumes:
- application/x-www-form-urlencoded
parameters:
- $ref: '#/parameters/x-bingapis-sdk'
- name: Accept
in: header
description: >-
The default media type is application/json. To specify that the
response use [JSON-LD](http://json-ld.org/), set the Accept header
to application/ld+json.
required: false
type: string
- name: Accept-Language
x-ms-client-name: AcceptLanguage
in: header
description: >-
A comma-delimited list of one or more languages to use for user
interface strings. The list is in decreasing order of preference.
For additional information, including expected format, see
[RFC2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
This header and the setLang query parameter are mutually exclusive;
do not specify both. If you set this header, you must also specify
the cc query parameter. Bing will use the first supported language
it finds from the list, and combine that language with the cc
parameter value to determine the market to return results for. If
the list does not include a supported language, Bing will find the
closest language and market that supports the request, and may use
an aggregated or default market for the results instead of a
specified one. You should use this header and the cc query parameter
only if you specify multiple languages; otherwise, you should use
the mkt and setLang query parameters. A user interface string is a
string that's used as a label in a user interface. There are very
few user interface strings in the JSON response objects. Any links
in the response objects to Bing.com properties will apply the
specified language.
required: false
type: string
- name: Pragma
in: header
description: >-
By default, Bing returns cached content, if available. To prevent
Bing from returning cached content, set the Pragma header to
no-cache (for example, Pragma: no-cache).
required: false
type: string
- name: User-Agent
x-ms-client-name: UserAgent
in: header
description: >-
The user agent originating the request. Bing uses the user agent to
provide mobile users with an optimized experience. Although
optional, you are strongly encouraged to always specify this header.
The user-agent should be the same string that any commonly used
browser would send. For information about user agents, see [RFC
2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
required: false
type: string
- name: X-MSEdge-ClientID
x-ms-client-name: ClientId
in: header
description: >-
Bing uses this header to provide users with consistent behavior
across Bing API calls. Bing often flights new features and
improvements, and it uses the client ID as a key for assigning
traffic on different flights. If you do not use the same client ID
for a user across multiple requests, then Bing may assign the user
to multiple conflicting flights. Being assigned to multiple
conflicting flights can lead to an inconsistent user experience. For
example, if the second request has a different flight assignment
than the first, the experience may be unexpected. Also, Bing can use
the client ID to tailor web results to that client ID’s search
history, providing a richer experience for the user. Bing also uses
this header to help improve result rankings by analyzing the
activity generated by a client ID. The relevance improvements help
with better quality of results delivered by Bing APIs and in turn
enables higher click-through rates for the API consumer. IMPORTANT:
Although optional, you should consider this header required.
Persisting the client ID across multiple requests for the same end
user and device combination enables 1) the API consumer to receive a
consistent user experience, and 2) higher click-through rates via
better quality of results from the Bing APIs. Each user that uses
your application on the device must have a unique, Bing generated
client ID. If you do not include this header in the request, Bing
generates an ID and returns it in the X-MSEdge-ClientID response
header. The only time that you should NOT include this header in a
request is the first time the user uses your app on that device. Use
the client ID for each Bing API request that your app makes for this
user on the device. Persist the client ID. To persist the ID in a
browser app, use a persistent HTTP cookie to ensure the ID is used
across all sessions. Do not use a session cookie. For other apps
such as mobile apps, use the device's persistent storage to persist
the ID. The next time the user uses your app on that device, get the
client ID that you persisted. Bing responses may or may not include
this header. If the response includes this header, capture the
client ID and use it for all subsequent Bing requests for the user
on that device. If you include the X-MSEdge-ClientID, you must not
include cookies in the request.
required: false
type: string
- name: X-MSEdge-ClientIP
x-ms-client-name: ClientIp
in: header
description: >-
The IPv4 or IPv6 address of the client device. The IP address is
used to discover the user's location. Bing uses the location
information to determine safe search behavior. Although optional,
you are encouraged to always specify this header and the
X-Search-Location header. Do not obfuscate the address (for example,
by changing the last octet to 0). Obfuscating the address results in
the location not being anywhere near the device's actual location,
which may result in Bing serving erroneous results.
required: false
type: string
- name: X-Search-Location
x-ms-client-name: Location
in: header
description: >-
A semicolon-delimited list of key/value pairs that describe the
client's geographical location. Bing uses the location information
to determine safe search behavior and to return relevant local
content. Specify the key/value pair as <key>:<value>. The following
are the keys that you use to specify the user's location. lat
(required): The latitude of the client's location, in degrees. The
latitude must be greater than or equal to -90.0 and less than or
equal to +90.0. Negative values indicate southern latitudes and
positive values indicate northern latitudes. long (required): The
longitude of the client's location, in degrees. The longitude must
be greater than or equal to -180.0 and less than or equal to +180.0.
Negative values indicate western longitudes and positive values
indicate eastern longitudes. re (required): The radius, in meters,
which specifies the horizontal accuracy of the coordinates. Pass the
value returned by the device's location service. Typical values
might be 22m for GPS/Wi-Fi, 380m for cell tower triangulation, and
18,000m for reverse IP lookup. ts (optional): The UTC UNIX timestamp
of when the client was at the location. (The UNIX timestamp is the
number of seconds since January 1, 1970.) head (optional): The
client's relative heading or direction of travel. Specify the
direction of travel as degrees from 0 through 360, counting
clockwise relative to true north. Specify this key only if the sp
key is nonzero. sp (optional): The horizontal velocity (speed), in
meters per second, that the client device is traveling. alt
(optional): The altitude of the client device, in meters. are
(optional): The radius, in meters, that specifies the vertical
accuracy of the coordinates. Specify this key only if you specify
the alt key. Although many of the keys are optional, the more
information that you provide, the more accurate the location results
are. Although optional, you are encouraged to always specify the
user's geographical location. Providing the location is especially
important if the client's IP address does not accurately reflect the
user's physical location (for example, if the client uses VPN). For
optimal results, you should include this header and the X-Search-ClientIP header, but at a minimum, you should include this
header.
required: false
type: string
- name: ActionType
in: query
description: >-
A string that's used by logging to determine whether the request is
coming from an interactive session or a page load. The following are
the possible values. 1) Edit—The request is from an interactive
session 2) Load—The request is from a page load
required: false
type: string
enum:
- Edit
- Load
x-ms-enum:
name: ActionType
modelAsString: true
- name: AppName
in: query
description: >-
The unique name of your app. The name must be known by Bing. Do not
include this parameter unless you have previously contacted Bing to
get a unique app name. To get a unique name, contact your Bing
Business Development manager.
required: false
type: string
- name: cc
x-ms-client-name: CountryCode
in: query
description: >-
A 2-character country code of the country where the results come
from. This API supports only the United States market. If you
specify this query parameter, it must be set to us. If you set this
parameter, you must also specify the Accept-Language header. Bing
uses the first supported language it finds from the languages list,
and combine that language with the country code that you specify to
determine the market to return results for. If the languages list
does not include a supported language, Bing finds the closest
language and market that supports the request, or it may use an
aggregated or default market for the results instead of a specified
one. You should use this query parameter and the Accept-Language
query parameter only if you specify multiple languages; otherwise,
you should use the mkt and setLang query parameters. This parameter
and the mkt query parameter are mutually exclusive—do not specify
both.
required: false
type: string
- name: ClientMachineName
in: query
description: >-
A unique name of the device that the request is being made from.
Generate a unique value for each device (the value is unimportant).
The service uses the ID to help debug issues and improve the quality
of corrections.
required: false
type: string
- name: DocId
in: query
description: >-
A unique ID that identifies the document that the text belongs to.
Generate a unique value for each document (the value is
unimportant). The service uses the ID to help debug issues and
improve the quality of corrections.
required: false
type: string
- name: mkt
x-ms-client-name: Market
in: query
description: >-
The market where the results come from. You are strongly encouraged
to always specify the market, if known. Specifying the market helps
Bing route the request and return an appropriate and optimal
response. This parameter and the cc query parameter are mutually
exclusive—do not specify both.
required: false
type: string
- name: SessionId
in: query
description: >-
A unique ID that identifies this user session. Generate a unique
value for each user session (the value is unimportant). The service
uses the ID to help debug issues and improve the quality of
corrections
required: false
type: string
- name: SetLang
in: query
description: >-
The language to use for user interface strings. Specify the language
using the ISO 639-1 2-letter language code. For example, the
language code for English is EN. The default is EN (English).
Although optional, you should always specify the language.
Typically, you set setLang to the same language specified by mkt
unless the user wants the user interface strings displayed in a
different language. This parameter and the Accept-Language header
are mutually exclusive—do not specify both. A user interface string
is a string that's used as a label in a user interface. There are
few user interface strings in the JSON response objects. Also, any
links to Bing.com properties in the response objects apply the
specified language.
required: false
type: string
- name: UserId
in: query
description: >-
A unique ID that identifies the user. Generate a unique value for
each user (the value is unimportant). The service uses the ID to
help debug issues and improve the quality of corrections.
required: false
type: string
- name: Mode
in: query
description: >-
The type of spelling and grammar checks to perform. The following
are the possible values (the values are case insensitive). The
default is Proof. 1) Proof—Finds most spelling and grammar mistakes.
2) Spell—Finds most spelling mistakes but does not find some of the
grammar errors that Proof catches (for example, capitalization and
repeated words)
required: false
type: string
enum:
- proof
- spell
x-ms-enum:
name: Mode
modelAsString: true
- name: PreContextText
in: query
description: >-
A string that gives context to the text string. For example, the
text string petal is valid. However, if you set preContextText to
bike, the context changes and the text string becomes not valid. In
this case, the API suggests that you change petal to pedal (as in
bike pedal). This text is not checked for grammar or spelling
errors. The combined length of the text string, preContextText
string, and postContextText string may not exceed 10,000 characters.
You may specify this parameter in the query string of a GET request
or in the body of a POST request.
required: false
type: string
- name: PostContextText
in: query
description: >-
A string that gives context to the text string. For example, the
text string read is valid. However, if you set postContextText to
carpet, the context changes and the text string becomes not valid.
In this case, the API suggests that you change read to red (as in
red carpet). This text is not checked for grammar or spelling
errors. The combined length of the text string, preContextText
string, and postContextText string may not exceed 10,000 characters.
You may specify this parameter in the query string of a GET request
or in the body of a POST request.
required: false
type: string
- name: Text
in: query
description: >-
The text string to check for spelling and grammar errors. The
combined length of the text string, preContextText string, and
postContextText string may not exceed 10,000 characters. You may
specify this parameter in the query string of a GET request or in
the body of a POST request. Because of the query string length
limit, you'll typically use a POST request unless you're checking
only short strings.
required: true
type: string
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/SpellCheck'
default:
description: >-
An error has occurred. Check the response type and/or status code
for more details.
schema:
$ref: '#/definitions/ErrorResponse'
x-ms-examples:
Successful query:
$ref: ./examples/SuccessfulSpellModeRequest.json
Successful Proof Mode query:
$ref: ./examples/SuccessfulProofModeRequest.json
description: Needs a more full description created.
definitions:
SpellCheck:
allOf:
- $ref: '#/definitions/Answer'
type: object
required:
- flaggedTokens
properties:
flaggedTokens:
type: array
items:
$ref: '#/definitions/SpellingFlaggedToken'
Answer:
allOf:
- $ref: '#/definitions/Response'
type: object
properties: {}
SpellingFlaggedToken:
x-ms-discriminator-value: Spelling/FlaggedToken
type: object
required:
- offset
- token
- type
properties:
offset:
type: integer
format: int32
token:
type: string
type:
type: string
default: UnknownToken
enum:
- UnknownToken
- RepeatedToken
x-ms-enum:
name: ErrorType
modelAsString: true
suggestions:
readOnly: true
type: array
items:
$ref: '#/definitions/SpellingTokenSuggestion'
pingUrlSuffix:
readOnly: true
type: string
Response:
description: >-
Defines a response. All schemas that could be returned at the root of a
response should inherit from this
allOf:
- $ref: '#/definitions/Identifiable'
type: object
properties: {}
SpellingTokenSuggestion:
x-ms-discriminator-value: Spelling/TokenSuggestion
type: object
required:
- suggestion
properties:
suggestion:
type: string
score:
readOnly: true
type: number
format: double
pingUrlSuffix:
readOnly: true
type: string
Identifiable:
description: Defines the identity of a resource.
allOf:
- $ref: '#/definitions/ResponseBase'
type: object
properties:
id:
description: A String identifier.
readOnly: true
type: string
ErrorResponse:
description: The top-level response that represents a failed request.
allOf:
- $ref: '#/definitions/Response'
type: object
required:
- errors
properties:
errors:
description: A list of errors that describe the reasons why the request failed.
type: array
items:
$ref: '#/definitions/Error'
ResponseBase:
discriminator: _type
type: object
required:
- _type
properties:
_type:
type: string
Error:
description: Defines the error that occurred.
type: object
required:
- code
- message
properties:
code:
description: The error code that identifies the category of error.
type: string
default: None
enum:
- None
- ServerError
- InvalidRequest
- RateLimitExceeded
- InvalidAuthorization
- InsufficientAuthorization
x-ms-enum:
name: ErrorCode
modelAsString: true
subCode:
description: The error code that further helps to identify the error.
readOnly: true
type: string
enum:
- UnexpectedError
- ResourceError
- NotImplemented
- ParameterMissing
- ParameterInvalidValue
- HttpNotAllowed
- Blocked
- AuthorizationMissing
- AuthorizationRedundancy
- AuthorizationDisabled
- AuthorizationExpired
x-ms-enum:
name: ErrorSubCode
modelAsString: true
message:
description: A description of the error.
type: string
moreDetails:
description: A description that provides additional information about the error.
readOnly: true
type: string
parameter:
description: The parameter in the request that caused the error.
readOnly: true
type: string
value:
description: The parameter's value in the request that was not valid.
readOnly: true
type: string
tags:
- name: SpellCheck