FAQ

Webhooks vs HTTP requests?

We use Webhooks for executing tasks as the expected runtime of these jobs can exceed default HTTP timeouts (1 minute)

How do we handle webhook authentication? (ie how can we handle callbacks?)

import hmac
from fastapi import Request

def validate_skyvern_request_headers(request: Request) -> bool:
    header_skyvern_signature = request.headers["x-skyvern-signature"]
    payload = request.body() # this is a bytes
    hash_obj = hmac.new(SKYVERN_API_KEY.encode("utf-8"), msg=payload, digestmod=hashlib.sha256)
    client_generated_signature = hash_obj.hexdigest()
    return header_skyvern_signature == client_generated_signature

SKYVERN_API_KEY: this is the api key specific to your organization

Webhook common parameters

ParameterTypeRequired?Sample ValueDescription
webhook_callback_urlStringyes