---
title: "Register an index-move webhook — Intelligence plan"
method: POST
path: "/account/webhooks"
tags: ["Account"]
---

# Register an index-move webhook — Intelligence plan

`POST /account/webhooks`

## Request

- Base URL: `https://opnplatform.com/api`
- URL: `https://opnplatform.com/api/account/webhooks`
- Auth: HTTP bearer

Register an HTTPS endpoint to receive a POST when any tracked index moves beyond a threshold.

**Intelligence plan required.** Maximum 10 active webhooks per account.

**Payload** (sent to your endpoint):
`{category_id, index_value, change_pct, direction, threshold_pct, as_of, source}`

**Signature verification:** Each delivery includes `X-OPN-Signature: sha256=<hmac>`. Verify with `HMAC-SHA256(secret, raw_body_bytes)`.

## Request body

- object
  - `endpoint_url` string, uri, required: HTTPS URL to POST to
  - `index_codes` string[], nullable: Index codes to watch. null = all indices
  - `threshold_pct` number: Fire when abs(change_pct) >= this

## Response `201`

Webhook registered — secret shown once

- object
  - `endpoint_url` string
  - `id` integer
  - `index_codes` unknown
  - `secret` string: HMAC signing secret — store securely, shown once only
  - `threshold_pct` number

## Other responses

- `400`: Invalid endpoint_url or threshold_pct
- `403`: Intelligence plan required

---

[API](https://skmtc.dev/opnplatform/apis/packindex-packiq-api-open-packaging-network.md) · [All operations](https://skmtc.dev/opnplatform/apis/packindex-packiq-api-open-packaging-network/llms.txt) · [OpenAPI document](https://skmtc.dev/opnplatform/apis/packindex-packiq-api-open-packaging-network/revisions/f427c0467bb2?raw)
