---
title: "Set the account webhook URL (signing secret shown once)"
method: PUT
path: "/requestor/webhook"
tags: ["Webhooks"]
---

# Set the account webhook URL (signing secret shown once)

`PUT /requestor/webhook`

## Request

- Base URL: `https://www.getabrain.ai/api/v1`
- URL: `https://www.getabrain.ai/api/v1/requestor/webhook`
- Auth: one of:
  - API key in header `X-API-Key` and API key in header `X-API-Secret`
  - HTTP bearer

Events response.submitted and query.completed are POSTed as JSON with X-GAB-Signature (HMAC-SHA256 hex of the raw body, keyed with the webhook secret), X-GAB-Event, and X-GAB-Timestamp headers. 10s timeout; non-2xx retried ~every minute up to 5 attempts. Public https URLs only.

## Request body

- object
  - `webhook_url` string, uri, required

## Response `200`

Saved

- object
  - `webhook_url` string
  - `webhook_secret` string: Only present when freshly generated — save it now
  - `secret_last_four` string
  - `message` string
  - `events` string[]

## Other responses

- `400`: Request failed validation
- `401`: Missing or invalid authentication

---

[API](https://skmtc.dev/getabrain/apis/getabrain-ai-api.md) · [All operations](https://skmtc.dev/getabrain/apis/getabrain-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getabrain/apis/getabrain-ai-api/revisions/e9da90b7b72c?raw)
