Webhook Resource
Definition
This is an object representing a webhook subscription to receive events from DeepVA. Each webhook contains a single event to subscribe to and a callback URL.
When an event occurs, DeepVA sends a POST request to the callback URL with the event data.
You can retrieve it to see the information of the webhook.
ENDPOINTS
GET /v1/webhooks/
POST /v1/webhooks/
GET /v1/webhooks/{WEBHOOK_ID}
/
PUT /v1/webhooks/{WEBHOOK_ID}
/
PATCH /v1/webhooks/{WEBHOOK_ID}
/
DELETE /v1/webhooks/{WEBHOOK_ID}
/
Attributes
Top level attributes
Name | Type | Description |
---|---|---|
id | string | Global identifier to access the actual resource |
event | string | The name of the event to subscribe to |
url | string | The callback URL from the third-party system |
hmac_secret | string | A secret string to sign the payload for verification |
description | string | An optional textual description |
time_created | string | Creation time of the webhook (ISO Time String) |
exp_backoff | boolean | Currently not used at all. Reserved for the future. |
retry_limit | integer | Currently not used at all. Reserved for the future. |
Available events
The event names follow a hierarchical path structure, with each component separated by a dot.
{namespace}.{event_name}
The path consists of multiple parts: the namespace as path and the specific event name.
These events are available currently:
Event | Description |
---|---|
deepva.transcript.on_created |
The event is triggered whenever a new Transcript is created. |
deepva.transcript.variant.version.on_created |
The event is triggered whenever a new Version of a Transcript Variant is created. It covers the editing of the transcript after hitting the save button in the UI or the creation of the initial version when a new transcript is created. |
deepva.transcript.variant.version.paragraph.on_updated |
The event is triggered whenever a paragraph text is changed |
deepva.export.on_started |
The event is triggered whenever a export has been started |
deepva.export.on_completed |
The event is triggered whenever a export has been completed and is available to the user |
deepva.export.artifact.on_created |
The event is triggered whenever a export artifact (the actual exported file) is created |
Usage example
Here is an example of how to create a new webhook event subscription:
In the following example we are subscribing to the event deepva.transcript.on_created
which is triggered whenever a new transcript is created.
curl -d '{"event": "deepva.transcript.on_created", "url": "{your-endpoint-url-to-receive-callback}", "hmac_secret": "{a-secret-string}" }' -H "Content-Type: application/json" -H "Authorization: Key {your-api-key}" -X POST https://api.deepva.com/api/v1/webhooks/
# coming soon
When the event occurs, DeepVA sends the following POST body to the callback URL:
{
"event": "deepva.transcript.on_created",
"id": "42a1baeb-0919-4589-9d08-2186f567fa38",
"data": {
"transcript": {
"id": "5f9b6eee-c1b6-4bf3-b4f7-d3a6bf450776",
"tag": "",
"job": {
"duration": 214.015,
"errors": [],
"id": "f6a9cf1b-5ff5-4317-be21-73d999d447df",
"is_synced_to_kg": false,
"media_type": "video",
"modules": {
"speech_recognition": {
"detect_silence": true,
"dictionaries": [],
"dump_docx": false,
"dump_srt": false,
"enable_ner": false,
"enable_vad": false,
"format_paragraph": false,
"language": "auto",
"merge_voice_gap_seconds": 0.5,
"mode": "quality",
"progress": 1,
"state": "completed",
"translation_language": "none",
"underline_words_in_srt": false,
"vad_threshold": 0.9,
"word_level_timestamps": false
}
},
"progress": 1,
"result": {
"detailed_link": "https://api.deepva.com/v1/jobs/f6a9cf1b-5ff5-4317-be21-73d999d447df/detailed-results/",
"summary": [
{
"info": {
"duration": 5.76,
"fps": 25,
"resolution": [
960,
540
],
"total_frames": 144
},
"items": [],
"media_type": "video",
"source": "storage://78jTuGOKO15AxHDCQccK"
}
]
},
"sources": [
"storage://78jTuGOKO15AxHDCQccK"
],
"state": "completed",
"tag": "",
"time_completed": "2024-06-13 15:08:26.114000",
"time_created": "2024-06-13 15:04:47.442000",
"time_started": "2024-06-13 15:04:52.099000"
},
"source": "storage://78jTuGOKO15AxHDCQccK",
"time_created": "2024-06-17 10:09:34.376666",
"time_updated": "2024-06-17 10:09:34.380000"
}
},
"timestamp": 1718618974.4123013,
"hmac_signature": "2g9mteNXBFk0tz7eMqUQuu1JOJWfKmSEqSdOPmDsZ3s="
}
The payload contains the event name
, a unique event ID
, the event data
, a timestamp
, and a HMAC signature
for verification.
The data
field contains the actual resource object that triggered the event. In this case, it is a Transcript object.
The HMAC signature
can be used to verify the authenticity of the content of the data field. The HMAC signature is calculated using the HMAC-SHA256 algorithm with the hmac_secret
provided in the webhook object.
The verification process is optional but recommended to ensure the integrity of the data.
A service such as https://webhook.site can be used to test the webhook subscription and receive the POST requests from DeepVA without the need of a server.