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