Skip to content

before_fetch

before_fetch(request, ctx) runs on the executor thread before every HTTP request. Modify the URL, add headers, or return nil to skip this run entirely.

function before_fetch(request, ctx) -> table | nil
Field Type Mutable Description
request.url string yes Target URL
request.method string yes HTTP method (GET, HEAD, DELETE, etc.)
request.headers table yes HTTP headers (string→string)
request.timeout number / nil yes Per-request timeout in seconds (default: 30)
request.proxy string / nil yes Per-request proxy URL (overrides job proxy config)
request.max_body_size number / nil yes Max response body in MB (integer, default: 10)
Return Effect
request table Continue with modified request
nil / false Skip this entire run
function before_fetch(request, ctx)
request.headers["Authorization"] = "Bearer my-token"
return request
end
function before_fetch(request, ctx)
page = page or 1
request.url = request.url .. "?page=" .. page
page = page + 1
if page > 10 then page = 1 end
return request
end