Webhook Callback for Batch Jobs
You can configure a webhook to be notified when a batch transcription job has successfully completed. This allows you to retrieve results as soon as they’re ready — without polling the API.
Note: Webhooks only trigger on successful transcription jobs. If a job fails (e.g. due to audio quality, unsupported format, etc.), no webhook will be sent.
Setup & Requirements
To use webhook notifications, you must configure a valid HTTPS callback URL when initializing a batch session.
Callback URL Requirements
Your webhook endpoint must:
- Use
HTTPS - Be externally reachable (no
localhost, internal domains, or IP addresses) - Respond with a 2XX status code within 20 seconds
- Be consistently online (webhooks are not cached or queued indefinitely)
Callback Payload
Once a transcription completes, the Scriptix API will POST the following payload to your webhook URL:
Headers
| Header | Value | Description |
|---|---|---|
Content-Type | application/json | Payload is sent as JSON |
X-Scriptix-Session | session_id | Scriptix session ID |
X-Zoom-Session | session_id | (Deprecated) Same value for legacy use |
Body (JSON)
{
"sessionId": "your-session-id",
"zoom_id": "your-session-id"
}
Both sessionId and zoom_id are currently the same. Future versions may remove zoom_id.
Retry Logic
If the webhook fails (e.g., timeout or non-2XX response), Scriptix will automatically retry delivery with increasing delays:
| Attempt | Delay After Previous | Total Time Elapsed |
|---|---|---|
| 1st | Immediate | 0 min |
| 2nd | +1 minute | 1 min |
| 3rd | +2 minutes | 3 min |
| 4th | +5 minutes | 8 min |
| 5th | +15 minutes | 23 min |
| 6th | +30 minutes | 53 min |
After the final retry fails, the callback is abandoned and no further attempts are made.
Authentication
You can configure custom headers when setting up your webhook (e.g. API keys or tokens). Scriptix will include those headers in the request.
The system headers (
X-Scriptix-Session,Content-Type, etc.) cannot be overridden.
Retrieving Transcription Results
Webhook notifications do not contain transcription results. After receiving the callback:
- Use the
sessionIdfrom the payload - Make a
GETrequest to the results endpoint
Example (cURL)
curl -H "Authorization: YOUR_TOKEN" \
https://api.scriptix.io/api/v2/batch/session/YOUR_SESSION_ID/results
Example (Python)
import requests
url = "https://api.scriptix.io/api/v2/batch/session/YOUR_SESSION_ID/results"
headers = {"Authorization": "YOUR_TOKEN"}
response = requests.get(url, headers=headers)
print(response.json())
Webhook Summary
- Configure webhook URL during session initialization
- Ensure your server meets HTTPS and timing requirements
- Webhooks only fire for successful jobs
- Results must be fetched manually via the session ID
- Automatic retries follow a backoff pattern up to 6 times
- Log all webhook requests for auditing and troubleshooting
- Use unique session IDs to track jobs
- Respond quickly with
200 OKto avoid unnecessary retries