Skip to main content

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

HeaderValueDescription
Content-Typeapplication/jsonPayload is sent as JSON
X-Scriptix-Sessionsession_idScriptix session ID
X-Zoom-Sessionsession_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:

AttemptDelay After PreviousTotal Time Elapsed
1stImmediate0 min
2nd+1 minute1 min
3rd+2 minutes3 min
4th+5 minutes8 min
5th+15 minutes23 min
6th+30 minutes53 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:

  1. Use the sessionId from the payload
  2. Make a GET request 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

Best Practices
  • Log all webhook requests for auditing and troubleshooting
  • Use unique session IDs to track jobs
  • Respond quickly with 200 OK to avoid unnecessary retries