Web Hooks - Create
Creates a new web hook.
If the property secret in the configuration is present and contains a non-empty string, it will be used to create a SHA256 hash of the payload with
the secret as HMAC key. This hash will be set as X-MicrosoftSpeechServices-Signature header when calling back into the registered URL.
When calling back into the registered URL, the request will contain a X-MicrosoftSpeechServices-Event header containing one of the registered event types. There will be one request per registered event type.
After successfully registering the web hook, it will not be usable until a challenge/response is completed. To do this, a request with the event type challenge will be made with a query parameter called validationToken. Respond to the challenge with a 200 OK containing the value of the validationToken query parameter as the response body. When the challenge/response is successfully completed, the web hook will begin receiving events.
POST {endpoint}/speechtotext/webhooks?api-version=2024-11-15
URI Parameters
Name | In | Required | Type | Description |
---|---|---|---|---|
endpoint
|
path | True |
string |
Supported Cognitive Services endpoints (protocol and hostname, for example: https://westus.api.cognitive.microsoft.com). |
api-version
|
query | True |
string |
The requested api version. |
Request Header
Name | Required | Type | Description |
---|---|---|---|
Ocp-Apim-Subscription-Key | True |
string |
Provide your cognitive services account key here. |
Request Body
Name | Required | Type | Description |
---|---|---|---|
displayName | True |
string |
The display name of the object. |
events | True |
WebHookEvents |
|
webUrl | True |
string |
The registered URL that will be used to send the POST requests for the registered events to. |
customProperties |
object |
The custom properties of this entity. The maximum allowed key length is 64 characters, the maximum allowed value length is 256 characters and the count of allowed entries is 10. |
|
description |
string |
The description of the object. |
|
properties |
WebHookProperties |
Responses
Name | Type | Description |
---|---|---|
201 Created |
The response contains information about the entity as payload and its location as header. Headers Location: string |
|
Other Status Codes |
An error occurred. |
Security
Ocp-Apim-Subscription-Key
Provide your cognitive services account key here.
Type:
apiKey
In:
header
Examples
Create a web hook
Sample request
POST {endpoint}/speechtotext/webhooks?api-version=2024-11-15
{
"displayName": "TranscriptionCompletionWebHook",
"description": "I registered this URL to get a POST request for each completed transcription.",
"properties": {
"secret": "$CREDENTIAL_PLACEHOLDER$"
},
"webUrl": "https://contoso.com/call/me/back",
"events": {
"transcriptionCompletion": true
}
}
Sample response
Location: https://westus.api.cognitive.microsoft.com/speechtotext/webhooks/2e856efe-ef53-465a-a632-6a084c1d349d?api-version=2024-11-15
{
"self": "https://westus.api.cognitive.microsoft.com/speechtotext/webhooks/2e856efe-ef53-465a-a632-6a084c1d349d?api-version=2024-11-15",
"displayName": "TranscriptionCompletionWebHook",
"description": "I registered this URL to get a POST request for each completed transcription.",
"properties": {
"apiVersion": "2024-11-15",
"secret": "$CREDENTIAL_PLACEHOLDER$"
},
"webUrl": "https://contoso.com/call/me/back",
"events": {
"transcriptionCompletion": true
},
"createdDateTime": "2018-11-11T00:00:00Z",
"lastActionDateTime": "2018-11-28T00:00:00Z",
"status": "NotStarted",
"links": {
"test": "https://westus.api.cognitive.microsoft.com/speechtotext/webhooks/2e856efe-ef53-465a-a632-6a084c1d349d:ping?api-version=2024-11-15",
"ping": "https://westus.api.cognitive.microsoft.com/speechtotext/webhooks/2e856efe-ef53-465a-a632-6a084c1d349d:test?api-version=2024-11-15"
}
}
Definitions
Name | Description |
---|---|
Detailed |
DetailedErrorCode |
Entity |
EntityError |
Error |
Error |
Error |
ErrorCode |
Inner |
InnerError |
Status |
Status |
Web |
WebHook |
Web |
WebHookEvents |
Web |
WebHookLinks |
Web |
WebHookProperties |
DetailedErrorCode
DetailedErrorCode
Name | Type | Description |
---|---|---|
AudioLengthLimitExceeded |
string |
The audio file is longer than the maximum allowed duration. |
BadChannelConfiguration |
string |
There is a mismatch between audio channels in the data, in the configuration, or the requirements of the application. |
DataImportFailed |
string |
Data import failed. |
DeleteNotAllowed |
string |
Delete not allowed. |
DeployNotAllowed |
string |
Deploy not allowed. |
DeployingFailedModel |
string |
Deploying failed model. |
EmptyAudioFile |
string |
The audio file is empty. |
EmptyRequest |
string |
Empty Request. |
EndpointCannotBeDefault |
string |
Endpoint cannot be default. |
EndpointLoggingNotSupported |
string |
Endpoint logging not supported. |
EndpointNotUpdatable |
string |
Endpoint not updatable. |
EndpointWithoutLogging |
string |
Endpoint without logging. |
ExceededNumberOfRecordingsUris |
string |
Exceeded number of recordings uris. |
FailedDataset |
string |
Failed dataset. |
Forbidden |
string |
Forbidden. |
InUseViolation |
string |
In use violation. |
InaccessibleCustomerStorage |
string |
Inaccessible customer storage. |
InvalidAdaptationMapping |
string |
Invalid adaptation mapping. |
InvalidAudioFormat |
string |
The format of input audio is not supported. |
InvalidBaseModel |
string |
Invalid base model. |
InvalidCallbackUri |
string |
Invalid callback uri. |
InvalidChannelSpecification |
string |
The selection of channels in the transcription request is not supported (e.g., neither 0 nor 1 have been selected.) |
InvalidChannels |
string |
Invalid channels. |
InvalidCollection |
string |
Invalid collection. |
InvalidDataset |
string |
Invalid dataset. |
InvalidDocument |
string |
Invalid Document. |
InvalidDocumentBatch |
string |
Invalid Document Batch. |
InvalidLocale |
string |
Invalid locale. |
InvalidLogDate |
string |
Invalid log date. |
InvalidLogEndTime |
string |
Invalid log end time. |
InvalidLogId |
string |
Invalid log id. |
InvalidLogStartTime |
string |
Invalid log start time. |
InvalidModel |
string |
Invalid model. |
InvalidModelUri |
string |
Invalid model uri. |
InvalidParameter |
string |
Invalid parameter. |
InvalidParameterValue |
string |
Invalid parameter value. |
InvalidPayload |
string |
Invalid payload. |
InvalidPermissions |
string |
Invalid permissions. |
InvalidPrerequisite |
string |
Invalid prerequisite. |
InvalidProductId |
string |
Invalid product id. |
InvalidProject |
string |
Invalid project. |
InvalidProjectKind |
string |
Invalid project kind. |
InvalidRecordingsUri |
string |
Invalid recordings uri. |
InvalidRequestBodyFormat |
string |
Invalid request body format. |
InvalidSasValidityDuration |
string |
Invalid sas validity duration. |
InvalidSkipTokenForLogs |
string |
Invalid skip token for logs. |
InvalidSourceAzureResourceId |
string |
Invalid source Azure resource ID. |
InvalidSubscription |
string |
Invalid subscription. |
InvalidTest |
string |
Invalid test. |
InvalidTimeToLive |
string |
Invalid time to live. |
InvalidTopForLogs |
string |
Invalid top for logs. |
InvalidTranscription |
string |
Invalid transcription. |
InvalidWebHookEventKind |
string |
Invalid web hook event kind. |
MissingInputRecords |
string |
Missing Input Records. |
ModelCopyAuthorizationExpired |
string |
Expired ModelCopyAuthorization. |
ModelDeploymentNotCompleteState |
string |
Model deployment not complete state. |
ModelDeprecated |
string |
Model deprecated. |
ModelExists |
string |
Model exists. |
ModelMismatch |
string |
Model mismatch. |
ModelNotDeployable |
string |
Model not deployable. |
ModelVersionIncorrect |
string |
Model Version Incorrect. |
MultipleLanguagesIdentified |
string |
Language Identification recognized multiple languages. No dominant language could be determined. |
NoLanguageIdentified |
string |
Language Identification did not recognize any language. |
NoUtf8WithBom |
string |
No utf8 with bom. |
OnlyOneOfUrlsOrContainerOrDataset |
string |
Only one of urls or container or dataset. |
ProjectGenderMismatch |
string |
Project gender mismatch. |
QuotaViolation |
string |
Quota violation. |
SingleDefaultEndpoint |
string |
Single default endpoint. |
SkuLimitsExist |
string |
Sku limits exist. |
SubscriptionNotFound |
string |
Subscription not found. |
UnexpectedError |
string |
Unexpected error. |
UnsupportedClassBasedAdaptation |
string |
Unsupported class based adaptation. |
UnsupportedDelta |
string |
Unsupported delta. |
UnsupportedDynamicConfiguration |
string |
Unsupported dynamic configuration. |
UnsupportedFilter |
string |
Unsupported filter. |
UnsupportedLanguageCode |
string |
Unsupported language code. |
UnsupportedOrderBy |
string |
Unsupported order by. |
UnsupportedPagination |
string |
Unsupported pagination. |
UnsupportedTimeRange |
string |
Unsupported time range. |
EntityError
EntityError
Name | Type | Description |
---|---|---|
code |
string |
The code of this error. |
message |
string |
The message for this error. |
Error
Error
Name | Type | Description |
---|---|---|
code |
ErrorCode |
|
details |
Error[] |
Additional supportive details regarding the error and/or expected policies. |
innerError |
InnerError |
|
message |
string |
High level error message. |
target |
string |
The source of the error. For example it would be "documents" or "document id" in case of invalid document. |
ErrorCode
ErrorCode
Name | Type | Description |
---|---|---|
Conflict |
string |
Representing the conflict error code. |
Forbidden |
string |
Representing the forbidden error code. |
InternalCommunicationFailed |
string |
Representing the internal communication failed error code. |
InternalServerError |
string |
Representing the internal server error error code. |
InvalidArgument |
string |
Representing the invalid argument error code. |
InvalidRequest |
string |
Representing the invalid request error code. |
NotAllowed |
string |
Representing the not allowed error code. |
NotFound |
string |
Representing the not found error code. |
PipelineError |
string |
Representing the pipeline error error code. |
ServiceUnavailable |
string |
Representing the service unavailable error code. |
TooManyRequests |
string |
Representing the too many requests error code. |
Unauthorized |
string |
Representing the unauthorized error code. |
UnprocessableEntity |
string |
Representing the unprocessable entity error code. |
UnsupportedMediaType |
string |
Representing the unsupported media type error code. |
InnerError
InnerError
Name | Type | Description |
---|---|---|
code |
DetailedErrorCode |
|
details |
object |
Additional supportive details regarding the error and/or expected policies. |
innerError |
InnerError |
|
message |
string |
High level error message. |
target |
string |
The source of the error. For example it would be "documents" or "document id" in case of invalid document. |
Status
Status
Name | Type | Description |
---|---|---|
Failed |
string |
The long running operation has failed. |
NotStarted |
string |
The long running operation has not yet started. |
Running |
string |
The long running operation is currently processing. |
Succeeded |
string |
The long running operation has successfully completed. |
WebHook
WebHook
Name | Type | Description |
---|---|---|
createdDateTime |
string |
The time-stamp when the object was created. The time stamp is encoded as ISO 8601 date and time format ("YYYY-MM-DDThh:mm:ssZ", see https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations). |
customProperties |
object |
The custom properties of this entity. The maximum allowed key length is 64 characters, the maximum allowed value length is 256 characters and the count of allowed entries is 10. |
description |
string |
The description of the object. |
displayName |
string |
The display name of the object. |
events |
WebHookEvents |
|
lastActionDateTime |
string |
The time-stamp when the current status was entered. The time stamp is encoded as ISO 8601 date and time format ("YYYY-MM-DDThh:mm:ssZ", see https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations). |
links |
WebHookLinks |
|
properties |
WebHookProperties |
|
self |
string |
The location of this entity. |
status |
Status |
|
webUrl |
string |
The registered URL that will be used to send the POST requests for the registered events to. |
WebHookEvents
WebHookEvents
Name | Type | Description |
---|---|---|
challenge |
boolean |
|
datasetCompletion |
boolean |
|
datasetCreation |
boolean |
|
datasetDeletion |
boolean |
|
datasetProcessing |
boolean |
|
endpointCompletion |
boolean |
|
endpointCreation |
boolean |
|
endpointDeletion |
boolean |
|
endpointProcessing |
boolean |
|
evaluationCompletion |
boolean |
|
evaluationCreation |
boolean |
|
evaluationDeletion |
boolean |
|
evaluationProcessing |
boolean |
|
modelCompletion |
boolean |
|
modelCreation |
boolean |
|
modelDeletion |
boolean |
|
modelProcessing |
boolean |
|
ping |
boolean |
|
transcriptionCompletion |
boolean |
|
transcriptionCreation |
boolean |
|
transcriptionDeletion |
boolean |
|
transcriptionProcessing |
boolean |
WebHookLinks
WebHookLinks
Name | Type | Description |
---|---|---|
ping |
string |
The URL that can be used to trigger the sending of a ping event to the registered URL of a web hook registration. See operation "WebHooks_Ping" for more details. |
test |
string |
The URL that can be used sending test events to the registered URL of a web hook registration. See operation "WebHooks_Test" for more details. |
WebHookProperties
WebHookProperties
Name | Type | Description |
---|---|---|
apiVersion |
string |
The API version the web hook was created in. This defines the shape of the payload in the callbacks. If the payload type is not supported anymore, because the shape changed and the API version using it is removed (after deprecation), the web hook will be disabled. |
error |
EntityError |
|
secret |
string |
A secret that will be used to create a SHA256 hash of the payload with the secret as HMAC key. This hash will be set as X-MicrosoftSpeechServices-Signature header when calling back into the registered URL. |